Comment utiliser les caractères génériques dans VBA (avec exemples)



Vous pouvez utiliser l’opérateur Like dans VBA avec les caractères génériques intégrés suivants pour rechercher des modèles spécifiques dans les chaînes :

  • * : Correspond à n’importe quel nombre de caractères
  • ? : Correspond à un seul caractère
  • # : correspond à un seul chiffre
  • [] : correspond à n’importe quel caractère à portée

Les exemples suivants montrent comment utiliser ces caractères génériques dans la pratique.

Exemple 1 : utilisez * Wildcard pour rechercher une sous-chaîne

Supposons que nous ayons la liste d’aliments suivante dans la colonne A :

Nous pouvons créer la macro suivante pour rechercher la sous-chaîne « chaude » dans chaque chaîne de la colonne A et afficher les résultats dans la colonne B :

Sub FindString()

    Dim i As Integer
    
    For i = 2 To 10
        If Range("A" & i) Like "*hot*" Then
            Range("B" & i) = "Contains hot"
        Else
            Range("B" & i) = "Does Not Contain hot"
        End If
    Next i
    
End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

Exemple 2 : utilisez le caractère générique * pour rechercher des chaînes se terminant par un motif

Supposons que nous ayons la liste suivante de noms d’équipes de basket-ball dans la colonne A :

Nous pouvons créer la macro suivante pour rechercher des chaînes dans la colonne A qui se terminent par « ets » et afficher les résultats dans la colonne B :

Sub FindEndingString()

    Dim i As Integer
    
    For i = 2 To 10
        If Range("A" & i) Like "*ets" Then
            Range("B" & i) = "Ends in ets"
        Else
            Range("B" & i) = "Does Not End in ets"
        End If
    Next i
    
End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

Exemple 3 : utilisez le caractère générique # pour rechercher des numéros

Supposons que nous ayons la liste de chaînes suivante dans la colonne A :

Nous pouvons créer la macro suivante pour rechercher des chaînes dans la colonne A contenant des nombres et afficher les résultats dans la colonne B :

Sub FindNumbers()

    Dim i As Integer
    
    For i = 2 To 10
        If Range("A" & i) Like "*#*" Then
            Range("B" & i) = "Contains Numbers"
        Else
            Range("B" & i) = "Does Not Contain Numbers"
        End If
    Next i
    
End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

Exemple 4 : utilisez le caractère générique [] pour rechercher plusieurs caractères

Supposons que nous ayons la liste suivante de noms d’équipes de basket-ball dans la colonne A :

Nous pouvons créer la macro suivante pour rechercher dans la colonne A des chaînes contenant un r, s ou t quelque part dans le nom de l’équipe et afficher les résultats dans la colonne B :

Sub FindSpecificLetters()

    Dim i As Integer
    
    For i = 2 To 10
        If Range("A" & i) Like "*[r-t]*" Then
            Range("B" & i) = "Contains r, s, or t"
        Else
            Range("B" & i) = "Does Not Contain r, s or t"
        End If
    Next i
    
End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

Remarque : Vous pouvez trouver la documentation complète sur les caractères génériques VBA ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes à l’aide de VBA :

VBA : Comment compter les occurrences de caractères dans une chaîne
VBA : comment vérifier si une chaîne contient une autre chaîne
VBA : Comment compter les cellules avec un texte spécifique

Ajouter un commentaire

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