Caractères génériques VBA

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

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave