Recherche de positions de caractères formatés dans une cellule (Microsoft Excel)
Gary a une feuille de calcul qui contient des chaînes de texte non structurées dont il a besoin pour analyser les éléments de composant. Parfois, il a besoin de rechercher des types de texte plutôt qu’un caractère spécifique. Par exemple, il peut souhaiter rechercher la première, la Nième ou la dernière occurrence de tout caractère gras (ou de tout caractère italique) dans la cellule.
Il n’existe aucune fonction ou outil intrinsèque dans Excel pour accomplir cette tâche.
La fonction Rechercher et remplacer standard renvoie des correspondances pour la mise en forme, mais pas la position à laquelle ces correspondances se produisent. Pour obtenir des informations spécifiques sur ce que vous recherchez, vous devez utiliser une macro. Vous pouvez récupérer les informations de positionnement dans votre feuille de calcul si vous implémentez la macro en tant que fonction définie par l’utilisateur.
La macro suivante accepte une plage (destinée à être une cellule spécifique), un indicateur indiquant si vous voulez du gras ou de l’italique (ou les deux) et l’occurrence de cette mise en forme.
Function FindNth(r As Range, sType As String, N As Integer) As Integer Dim J As Integer Dim iCount As Integer Dim sStyle As String If r.Count = 1 Then FindNth = 0 iCount = 0 For J = 1 To Len(r.Text) sStyle = r.Characters(J, 1).Font.FontStyle If LCase(sStyle) = LCase(sType) Then iCount = iCount + 1 If N = 0 Then FindNth = J Else If N = iCount Then FindNth = J Exit For End If End If End If Next J Else FindNth = -1 End If End Function
Pour utiliser la macro, utilisez l’une des formules suivantes dans votre feuille de calcul:
=FindNth(A1, "bold", 2) =FindNth(A1, "italic", 3) =FindNth(A1, "bold italic", 1)
Dans chaque cas, le troisième paramètre spécifie l’occurrence de la mise en forme donnée que vous souhaitez rechercher. La fonction renvoie la position du caractère de cette occurrence dans la cellule. S’il n’y a pas une telle occurrence, alors 0 est renvoyé. Si vous spécifiez plusieurs cellules dans le premier paramètre de la fonction, elle renvoie -1. Si vous spécifiez une occurrence de 0, la position du caractère de la dernière occurrence du format spécifié est renvoyée.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (13402) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.