Fonctions de chaînes et de sous-chaînes VBA

VBA a de nombreuses fonctions de chaîne qui vous permettront de manipuler et de travailler avec du texte et des chaînes dans votre code. Dans ce tutoriel, nous allons couvrir les fonctions qui vous permettront d'extraire des sous-chaînes de chaînes, de supprimer des espaces de chaînes, de convertir la casse d'un texte ou d'une chaîne, de comparer des chaînes et d'autres fonctions de chaîne utiles.

Extraction d'une sous-chaîne

La fonction de chaîne gauche VBA

La fonction VBA Left vous permet d'extraire une sous-chaîne d'un texte ou d'une chaîne en partant du côté gauche. La syntaxe de la fonction de chaîne gauche VBA est :

Left(String, Num_of_characters) où :

  • Chaîne - Le texte d'origine.
  • Nombre_de_caractères - Entier qui spécifie le nombre de caractères à extraire du texte d'origine à partir du début.

Le code suivant vous montre comment utiliser la fonction de chaîne gauche pour extraire les quatre premiers caractères de la chaîne donnée :

1234567891011 Sub UsingTheLeftStringFunction()Dim valueOne As StringDim valueDeux en tant que chaînevalueOne = "Automate Excel"valeurDeux = Gauche(valeurUn, 4)MsgBox valueDeuxFin du sous-marin

Le résultat est:

La fonction de gauche a extrait les quatre premières lettres de AutomateExcel, qui sont Auto.

La fonction de chaîne droite VBA

La fonction VBA Right vous permet d'extraire une sous-chaîne d'un texte ou d'une chaîne en commençant par le côté droit. La syntaxe de la fonction de chaîne de droite VBA est :

Right(String, Num_of_characters) où :

  • Chaîne - Le texte d'origine.
  • Nombre_de_caractères - Entier qui spécifie le nombre de caractères à extraire du texte original à partir de la fin.

Le code suivant vous montre comment utiliser la fonction Right String pour extraire les quatre derniers caractères de la chaîne :

1234567891011 Sub UsingTheRightStringFunction()Dim valueOne As StringDim valueDeux en tant que chaînevalueOne = "Automate Excel"valeurDeux = Droit(valeurUn, 4)MsgBox valueDeuxFin du sous-marin

Le résultat est:

La fonction de droite a extrait les quatre dernières lettres d'AutomateExcel, qui sont xcel.

La fonction VBA Mid String

La fonction VBA Mid vous permet d'extraire une sous-chaîne d'un texte ou d'une chaîne, à partir de n'importe quelle position dans la chaîne que vous spécifiez. La syntaxe de la fonction VBA Mid String est :

Mid(String, Starting_position, [Num_of_characters]) où :

  • Chaîne - Le texte d'origine.
  • Starting_position - La position dans le texte d'origine, à partir de laquelle la fonction commencera à extraire.
  • Nombre_de_caractères (Optionnel) - Entier qui spécifie le nombre de caractères à extraire du texte d'origine à partir de Starting_position. S'il est vide, la fonction MID renverra tous les caractères de Starting_position.

Le code suivant vous montre comment utiliser la fonction Mid String pour extraire quatre caractères, à partir de la deuxième position ou caractère de la chaîne :

1234567891011 Sub UsingTheMidStringFunction()Dim valueOne As StringDim valueDeux en tant que chaînevalueOne = "Automate Excel"valeurDeux = Moyen (valeurUn, 2, 4)MsgBox valueDeuxFin du sous-marin

Le résultat est sorti dans une msgbox :

La fonction Mid a extrait les quatre lettres de AutomateExcel à partir du deuxième caractère/position/lettre qui sont utom.

Trouver la position d'une sous-chaîne

La fonction de chaîne d'instr VBA

La fonction VBA Instr renvoie la position de départ d'une sous-chaîne dans une autre chaîne. Cette fonction est sensible à la casse. La syntaxe de la fonction de chaîne VBA Instr est :

Instr([Démarrer], Chaîne, Sous-chaîne, [Comparer]) où :

  • Début (Optionnel) - Ceci spécifie la position de départ de la fonction à rechercher. Si vide, la valeur par défaut de 1 est utilisée.
  • Chaîne - Le texte d'origine.
  • Sous-chaîne- La sous-chaîne dans le texte d'origine dont vous voulez trouver la position.
  • Comparer (Optionnel)- Ceci spécifie le type de comparaison à effectuer. Si vide, la comparaison binaire est utilisée.

-vbBinaryCompare - Comparaison binaire (les majuscules et les minuscules sont considérées comme différentes)
-vbTextCompare - Comparaison de texte (les majuscules et les minuscules sont considérées comme identiques)
-vbDatabaseCompare - Comparaison de base de données (Cette option est utilisée uniquement dans Microsoft Access et est une comparaison basée sur la base de données)

Le code suivant vous montre comment utiliser la fonction de chaîne Instr pour déterminer la première occurrence de la sous-chaîne « Th » dans la chaîne principale :

123456789101112 Sub UsingTheInstrStringFunction()Dim valueOne As StringDim positionofSubstring As IntegervalueOne = "Ceci est le texte"positionofSubstring = InStr(1, valueOne, "Th")Debug.Print positionofSubstringFin du sous-marin

Le résultat (sorti dans la fenêtre d'exécution) est :

La fonction Instr a renvoyé la position de la première occurrence de la sous-chaîne « Th », qui est 1. Notez que cette fonction inclut les espaces dans le compte.

La fonction de chaîne VBA InstrRev

La fonction VBA InstrRev renvoie la position de départ d'une sous-chaîne dans une autre chaîne, mais elle commence à compter la position, à partir de la fin de la chaîne. Cette fonction est sensible à la casse. La syntaxe de la fonction de chaîne VBA InstrRev est :

InstrRev(Chaîne, Sous-chaîne, [Démarrer], [Comparer]) où :

  • Chaîne - Le texte d'origine.
  • Sous-chaîne- La sous-chaîne dans le texte d'origine dont vous voulez trouver la position.
  • Début (Optionnel) - Ceci spécifie la position à partir de laquelle commencer la recherche. Si vide, la fonction commence la recherche à partir du dernier caractère.
  • Comparer (Optionnel)- Ceci spécifie le type de comparaison à effectuer. Si vide, la comparaison binaire est utilisée.

-vbBinaryCompare - Comparaison binaire (les majuscules et les minuscules sont considérées comme différentes)
-vbTextCompare - Comparaison de texte (les majuscules et les minuscules sont considérées comme identiques)
-vbDatabaseCompare - Comparaison de base de données (Cette option est utilisée uniquement dans Microsoft Access et est une comparaison basée sur la base de données)

Le code suivant vous montre comment utiliser la fonction de chaîne InstrRev pour déterminer la première occurrence de la sous-chaîne « Th » dans la chaîne principale, à partir de la fin de la chaîne :

1234567891011 Sous utilisantTheInstrRevStringFunction()Dim valueOne As StringDim positionofSubstring As IntegervalueOne = "Ceci est le texte"positionofSubstring = InStrRev(valueOne, "Th")Debug.Print positionofSubstringFin du sous-marin

Le résultat est sorti dans la fenêtre d'exécution :

La fonction InstrRev a renvoyé la position de la première occurrence de la sous-chaîne « Th », mais en commençant le comptage à partir de la fin qui est 9. Notez que cette fonction inclut les espaces dans le nombre.

Supprimer les espaces d'une chaîne

La fonction de chaîne VBA LTrim

La fonction VBA LTrim supprime tous les espaces de début d'un texte ou d'une chaîne. La syntaxe de la fonction de chaîne VBA LTrim est :

LTrim(String) où :

  • Chaîne - Le texte d'origine.

Le code suivant vous montre comment utiliser la fonction VBA LTrim pour supprimer les espaces de début dans la chaîne donnée :

123456789101112 Sub UsingTheLTrimStringFunction()Dim valueOne As StringDim valueDeux en tant que chaînevalueOne = " Ceci est l'adresse du site https://easyexcel.net/excel/"valeurDeux = LTrim(valeurUn)MsgBox valueOneMsgBox valueDeuxFin du sous-marin

Les résultats sont :

La fonction LTrim a supprimé les espaces de début pour valuetwo, qui est affiché dans la deuxième boîte de message.

La fonction de chaîne VBA RTrim

La fonction VBA RTrim supprime tous les espaces de fin d'un texte ou d'une chaîne. La syntaxe de la fonction de chaîne VBA RTrim est :

RTrim(String) où :

  • Chaîne - Le texte d'origine.

Le code suivant vous montre comment utiliser la fonction VBA RTrim pour supprimer les espaces de fin dans la chaîne donnée :

123456789101112 Sub UsingTheRTrimStringFunction()Dim valueOne As StringDim valueDeux en tant que chaînevalueOne = "Ceci est l'adresse du site https://easyexcel.net/excel/ "valeurDeux = RTrim(valeurUn)MsgBox valueOneMsgBox valueDeuxFin du sous-marin

Les résultats livrés sont :

La fonction RTrim a supprimé les espaces de fin pour valuetwo, qui est affiché dans la deuxième boîte de message.

La fonction VBA Trim String

La fonction VBA Trim supprime tous les espaces de début et de fin d'un texte ou d'une chaîne. La syntaxe de la fonction VBA Trim String est :

Trim(String) où :

  • Chaîne - Le texte d'origine.

Le code suivant vous montre comment utiliser la fonction VBA Trim pour supprimer les espaces de début et de fin dans la chaîne donnée :

123456789101112 Sub UsingTheTrimStringFunction()Dim valueOne As StringDim valueDeux en tant que chaînevalueOne = " Ceci est l'adresse du site https://easyexcel.net/excel/ "valeurDeux = Trim(valeurUn)MsgBox valueOneMsgBox valueDeuxFin du sous-marin

Les résultats sont :

La fonction Trim a supprimé les espaces de début et de fin pour valuetwo, qui est affiché dans la deuxième boîte de message.

Fonctions de cas VBA

La fonction de chaîne VBA LCase

La fonction VBA LCase convertit les lettres d'un texte ou d'une chaîne en minuscules. La syntaxe de la fonction de chaîne VBA LCase est :

LCase(String) où :

  • Chaîne - Le texte d'origine.

Le code suivant vous montre comment utiliser la fonction de chaîne LCase pour convertir toutes les lettres de la chaîne donnée en minuscules :

1234567891011 Sub UsingTheLCaseStringFunction()Dim valueOne As StringDim valueDeux en tant que chaînevalueOne = "CECI EST LE PRODUIT"valeurDeux = LCase(valeurUn)MsgBox valueDeuxFin du sous-marin

Le résultat est:

La fonction LCase a converti toutes les lettres de la chaîne en minuscules.

La fonction de chaîne VBA UCase

La fonction VBA UCase convertit les lettres d'un texte ou d'une chaîne en majuscules. La syntaxe de la fonction de chaîne VBA UCase est :

UCase(String) où :

  • Chaîne - Le texte d'origine.

Le code suivant vous montre comment utiliser la fonction de chaîne UCase pour convertir toutes les lettres de la chaîne donnée en majuscules :

1234567891011 Sub UsingTheUCaseStringFunction()Dim valueOne As StringDim valueDeux en tant que chaînevalueOne = "ceci est le produit"valeurDeux = UCase(valeurUn)MsgBox valueDeuxFin du sous-marin

Le résultat est:

La fonction UCase a converti toutes les lettres de la chaîne en majuscules.

La fonction VBA StrConv

La fonction VBA StrConv peut convertir les lettres d'un texte ou d'une chaîne en majuscules, minuscules, casse correcte ou unicode selon le type de conversion que vous spécifiez. La syntaxe de la fonction de chaîne VBA StrConv est :

StrConv(Chaîne, Conversion, [LCID]) où :

  • Chaîne - Le texte d'origine.
  • Conversion - Le type de conversion que vous souhaitez.
  • [LCID] (Optionnel) -Un paramètre facultatif qui spécifie le LocaleID. Si vide, le système LocaleID est utilisé.

Le code suivant vous montre comment utiliser la fonction de chaîne StrConv pour convertir la chaîne en casse appropriée :

1234567891011 Sous utilisantTheStrConvStringFunction()Dim valueOne As StringDim valueDeux en tant que chaînevalueOne = "c'est LE produit"valueDeux = StrConv(valueOne, vbProperCase)MsgBox valueDeuxFin du sous-marin

Le résultat est:

Vous spécifiez le type de conversion que vous souhaitez effectuer à l'aide du paramètre de conversion :

  • vbLowerCase convertit toutes les lettres du texte en minuscules.
  • vbUpperCase convertit toutes les lettres du texte en majuscules.
  • vbProperCase convertit la première lettre de chaque mot du texte en majuscule, tandis que toutes les autres lettres sont conservées en minuscule.
  • vbUnicode convertit une chaîne en Unicode.
  • vbFromUnicode convertit une chaîne unicode en page de codes par défaut du système.

Comparer des chaînes

La fonction VBA StrComp

La fonction VBA StrComp String vous permet de comparer deux chaînes. La fonction renvoie :

  • 0 si les deux chaînes correspondent
  • -1 si chaîne1 est inférieur à chaîne2
  • 1 si chaîne1 est supérieur à chaîne2
  • Une valeur nulle si l'une des chaînes était Null

Le code suivant vous montre comment utiliser la fonction StrComp pour comparer deux chaînes :

123456789101112 Sous utilisantTheStrCompStringFunction()Dim valueOne As StringDim valueDeux en tant que chaîneRésultat faible de la comparaison en tant qu'entiervalueOne = "Automate Excel"valueTwo = "Automate Excel"resultofComparison = StrComp(valueOne, valueDeux)Debug.Print resultofComparisonFin du sous-marin

Le résultat est:

La fonction StrComp a trouvé une correspondance exacte entre les deux chaînes et a renvoyé 0.

L'opérateur VBA Like

L'opérateur VBA Like vous permet de comparer un texte ou une chaîne à un modèle et de voir s'il existe une correspondance. Vous utiliserez généralement l'opérateur Like en conjonction avec des caractères génériques. Le code suivant vous montre comment utiliser l'opérateur Like :

123456789101112 Sub UsingTheLikeOperatorInVBA()Dim valueOne As StringvalueOne = "Regardons le résultat"Si valueOne Like "*view*" ThenMsgBox "Il y a une correspondance, cette chaîne contient le mot vue"AutreMsgBox "Aucune correspondance n'a été trouvée"Fin siFin du sous-marin

Le résultat est:

Les caractères génériques que vous pouvez utiliser avec l'opérateur Like pour rechercher des correspondances de modèle incluent :

  • ? qui correspond à un seul caractère
  • # qui correspond à un seul chiffre
  • * qui correspond à zéro ou plusieurs caractères

Le code suivant vous montre comment utiliser l'opérateur Like et le ? joker pour correspondre à un modèle dans votre code :

123456789101112 Sub UsingTheLikeOperatorWithAWildcardInVBA()Dim valueOne As StringvalueOne = "Le"Si valueOne Like "??e" ThenMsgBox "Il y a une correspondance, un motif correspondant a été trouvé"AutreMsgBox "Aucune correspondance n'a été trouvée"Fin siFin du sous-marin

Le résultat livré est :

Autres fonctions de chaîne VBA utiles

La fonction de remplacement de chaîne de VBA

La fonction de remplacement VBA remplace un jeu de caractères dans une chaîne par un autre jeu de caractères. La syntaxe de la fonction VBA Replace String est :

Replace(String, Find, Replace, [Start], [Count], [Comparer]) où :

  • Chaîne - Le texte d'origine.
  • Rechercher - La sous-chaîne à rechercher dans le texte d'origine.
  • Remplacer - La sous-chaîne par laquelle remplacer la sous-chaîne Rechercher.
  • Début (Optionnel)- La position pour commencer la recherche à partir du texte original. S'il est vide, la valeur 1 est utilisée et la fonction démarre à la première position du caractère.
  • Compter (Optionnel)- Le nombre d'occurrences de la sous-chaîne Rechercher dans le texte d'origine à remplacer. Si vide, toutes les occurrences de la sous-chaîne Find sont remplacées.
  • Comparer (Optionnel)- Ceci spécifie le type de comparaison à effectuer. Si vide, la comparaison binaire est utilisée.

    -vbBinaryCompare - Comparaison binaire
    -vbTextCompare - Comparaison de texte
    -vbDatabaseCompare - Comparaison de base de données (Cette option est utilisée uniquement dans Microsoft Access et est une comparaison basée sur la base de données.)

Le code suivant vous montre comment utiliser la fonction Replace String :

1234567891011 Sub UsingTheReplaceStringFunction()Dim valueOne As StringDim valueDeux en tant que chaînevalueOne = "ProduitABC"valeurDeux = Remplacer (valeurUn, "ABC", "XYZ")MsgBox valueDeuxFin du sous-marin

Le résultat est:

La fonction de remplacement a trouvé la sous-chaîne ABC dans ProductABC et l'a remplacée par la sous-chaîne XYZ.

La fonction VBA StrReverse

La fonction VBA StrReverse inverse les caractères d'un texte ou d'une chaîne donnés. La syntaxe de la fonction de chaîne VBA StrReverse est :

StrReverse(String) où :

  • Chaîne - Le texte d'origine.

Le code suivant vous montre comment utiliser la fonction VBA StrReverse pour inverser les caractères de la chaîne Product :

1234567891011 Sub UsingTheStrReverseStringFunction()Dim valueOne As StringDim valueDeux en tant que chaînevalueOne = "Produit"valueDeux = StrReverse(valueOne)MsgBox valueDeuxFin du sous-marin

Le résultat est:

La fonction VBA Len String

La fonction VBA Len renvoie le nombre de caractères dans une chaîne de texte. La syntaxe de la fonction VBA Len String est :

Len(Chaîne) où :

  • Chaîne - Le texte d'origine.

Le code suivant vous montre comment utiliser la fonction Len String pour déterminer la longueur de la chaîne AutomateExcel :

1234567891011 Sous utilisantTheLenFunction()Dim valueOne As StringDim stringLength As IntegervalueOne = "Automate Excel"stringLength = Len(valueOne)Debug.Print stringLengthFin du sous-marin

Le résultat est:

La fonction Len a compté tous les caractères du texte AutomateExcel, soit 13 lettres.

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

wave wave wave wave wave