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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *