Ce didacticiel montrera comment utiliser les caractères génériques dans VBA.
Les caractères génériques sont utilisés dans tous les langages de programmation et applications de base de données comme SQL Server. Un caractère générique peut être défini comme un symbole utilisé pour remplacer un ou plusieurs caractères dans une chaîne de texte. Par exemple, cette chaîne de texte - "mo*" - trouvera les mots maman, souris, orignal, maman etc. tandis que cette chaîne de texte "mo?" trouvera seulement le mot maman comme joker ? remplace un seul caractère.
Nous utilisons des caractères génériques avec l'opérateur Like qui est une alternative plus simple à VBA Regex.
Utilisation du joker Astérix (*) en VBA
Le caractère générique Astérix remplace un ou plusieurs caractères dans une chaîne VBA.
Examinons la plage de cellules suivante dans Excel :
En utilisant un joker Astérix dans notre code VBA, nous pouvons retrouver tous les prénoms qui commencent par « M » et changer la couleur du texte en rouge.
12345678 | Sous-CheckForM()Dim x en tant qu'entierPour x = 3 à 8If Range("B" & x).Valeur comme "M*" ThenRange ("B" & x).Font.Color = vbRedFin siSuivant xFin du sous-marin |
Nous avons donc parcouru la plage en boucle et trouvé tous les prénoms qui commencent par la lettre M car notre chaîne générique est "M*”
Le résultat de l'exécution du code ci-dessus est indiqué ci-dessous.
Si nous devions utiliser la chaîne générique "Ma*" - alors seuls les prénoms en B3 et B4 changeraient.
Utilisation du caractère générique Point d'interrogation (?) dans VBA
Le point d'interrogation remplacera un seul caractère dans une chaîne VBA.
Considérez les données suivantes :
Nous pouvons utiliser la chaîne générique « ?im » pour rechercher les prénoms qui se terminent par « im »
12345678 | Sous-CheckForIM()Dim x en tant qu'entierPour x = 3 à 8If Range("B" & x).Value Like "?im" ThenRange ("B" & x).Font.Color = vbRedFin siSuivant xFin du sous-marin |
Le résultat de l'exécution de ce code est indiqué ci-dessous :
Utilisation de [char list] comme caractère générique
L'exemple ci-dessus peut être légèrement modifié pour nous permettre d'utiliser le point d'interrogation, en plus d'une liste de caractères autorisés. La chaîne de caractères génériques peut donc être modifiée en "?[e-i]m" où le premier caractère peut être n'importe quoi, le deuxième caractère doit être un caractère entre e et i et la dernière lettre doit être le caractère "m". Seuls 3 caractères sont autorisés.
12345678 | Sous-CharListTest()Dim x en tant qu'entierPour x = 3 à 8Si Plage("B" & x).Valeur Comme "?[e-i]m" AlorsRange ("B" & x).Font.Color = vbRedFin siSuivant xFin du sous-marin |
Le résultat de ce code serait :
Programmation VBA | Le générateur de code fonctionne pour vous !
Utilisation du caractère générique de hachage (#) dans VBA
Le caractère générique dièse (#) remplace un seul chiffre dans une chaîne VBA. Nous pouvons faire correspondre entre 0 et 9.
12345678910 | Sous-CheckForNumber()Dim x en tant qu'entier, y en tant qu'entierPour x = 3 à 8Pour y = 2 à 5Si ActiveSheet.Cells(x, y) comme "##" alorsActiveSheet.Cells(x, y).Font.Color = vbRedFin siY suivantSuivant xFin du sous-marin |
Le code ci-dessus parcourra toutes les cellules de la plage ("B3:E8") et changera la couleur du texte dans une cellule en ROUGE si un nombre à deux chiffres est trouvé dans cette cellule.
Dans l'exemple ci-dessous, le code ne changera le numéro que si le dernier numéro est un 9.
12345678910 | Sous-CheckFor9()Dim x en tant qu'entier, y en tant qu'entierPour x = 3 à 8Pour y = 2 à 5Si ActiveSheet.Cells(x, y) Like "#9" ThenActiveSheet.Cells(x, y).Font.Color = vbRedFin siY suivantSuivant xFin du sous-marin |