VBA : Comment compter les occurrences de caractères dans une chaîne
Vous pouvez utiliser la syntaxe de base suivante pour compter le nombre d’occurrences d’un caractère dans une chaîne à l’aide de VBA :
Sub CountOccurrences()
Dim i As Integer
'Specify character to look for
my_char = "/"
'Count occurrences in each string in B2:B12 and display results in C2:C12
For i = 2 To 12
Count = (Len(Range("B" & i)) - Len(Replace(Range("B" & i), my_char, ""))) / Len(my_char)
Range("C" & i) = Count
Next i
End Sub
Cet exemple particulier compte le nombre d’occurrences d’une barre oblique ( / ) dans chaque cellule de la plage B2:B12 et affiche les résultats dans la plage C2:C12 .
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : compter les occurrences de caractères dans une chaîne à l’aide de VBA
Supposons que nous ayons l’ensemble de données suivant dans Excel qui montre les noms de différents joueurs de basket-ball et les positions qu’ils peuvent jouer dans un match :
Supposons que nous souhaitions compter le nombre de barres obliques ( / ) dans chaque chaîne de la colonne Position.
Nous pouvons créer la macro suivante pour ce faire :
Sub CountOccurrences()
Dim i As Integer
'Specify character to look for
my_char = "/"
'Count occurrences in each string in B2:B12 and display results in C2:C12
For i = 2 To 12
Count = (Len(Range("B" & i)) - Len(Replace(Range("B" & i), my_char, ""))) / Len(my_char)
Range("C" & i) = Count
Next i
End Sub
Lorsque nous exécutons cette macro, nous recevons le résultat suivant :
Les valeurs de la colonne C affichent le nombre d’occurrences de barres obliques dans les chaînes correspondantes de la colonne B.
Par exemple:
- La chaîne Guard /Forward contient 1 barre oblique.
- La chaîne Guard contient 0 barre oblique.
- La chaîne Guard contient 0 barre oblique.
- La chaîne Forward / Center contient 1 barre oblique.
Et ainsi de suite.
Pour compter les occurrences d’un caractère différent, changez simplement le caractère de la variable my_char dans la macro.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :
VBA : comment vérifier si une chaîne contient une autre chaîne
VBA : Comment compter le nombre de lignes dans la plage
VBA : Comment écrire les fonctions COUNTIF et COUNTIFS