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