Manipuler Les Chaînes De Caractères, Extraire Texte Par VBA - Dophis
Maybe your like

Manipuler les chaînes de caractères en VBA : Extraire, Mid, Right, Len, Left, Split, Replace … Quelques conseils et astuces pour manipuler les chaînes de caractères avec la programmation VBA.
La manipulation de texte est l’un des piliers de l’automatisation de vos classeurs. Que ce soit pour nettoyer des bases de données, extraire des références produits ou formater des exports comptables, savoir manipuler les chaînes de caractères en VBA est indispensable.
Les fonctions natives de Microsoft Excel (comme Left, Mid, Replace ou Split) offrent une flexibilité totale pour traiter vos données textuelles avec précision. Dans ce guide complet, nous allons explorer les commandes essentielles pour transformer vos données brutes en informations exploitables. Si vous souhaitez gagner en autonomie sur ces outils, nous vous accompagnons également à travers une formation VBA Excel sur mesure, adaptée à vos besoins concrets
La fonction VBA LEN : calculer la longueur d’une chaîne
La fonction VBA LEN permet de renvoyer le nombre de caractère d’un texte.
Len("Dophis") Cette commande renvoie 6La fonction VBA LEFT : extraire du texte par la gauche
La fonction VBA LEFT permet d’extraire les x caractères à gauche d’un texte de départ.
Left(« Dophis »,3) Cette commande renvoie Dop
La fonction VBA RIGHT : extraire du texte par la droite
La fonction VBA RIGHT permet d’extraire les x caractères à droite d’un texte initial.
Copie dans le presse-papiersSurligneur syntaxiqueRight("Dophis", 4)Cette commande renvoie phis
Fonction UCASE : Convertir en majuscule un texte
La fonction VBA UCASE permet de passer en majuscule un texte.
Ucase("Dophis") Cette commande renvoie DOPHIS[/vb]Fonction LCASE : Convertir en minuscule un texte
La fonction VBA LCASE permet de passer en minuscule un texte.
Lcase("Dophis") Cette commande renvoie dophisLa fonction VBA MID : extraire une partie précise d’un texte
La fonction VBA MID permet d’extraire un nombre de caractères déterminés à l’intérieur d’une chaîne de caractères.
Il faut transmettre 3 paramètres à cette fonction :
- texte initial : par exemple « Dophis »
- la position du premier caractère dans la chaîne. Par exemple pour commencer d’extraire à partir de p dans Dophis, la position est : 3
- le nombre de caractères à extraire à partir de p. Prenons par exemple 2
La fonction VBA INSTR : trouver la position d’un caractère
La fonction VBA InStr permet de renvoyer la position de caractères dans un texte.
3 arguments sont transmettre à cette fonction :
- point de départ de la recherche : cet argument est optionnel. S’il n’est pas renseigné, la recherche commence au premier caractère
- texte sur lequel porte la recherche. Par exemple : Dophis
- les caractères recherchés dans la chaîne. Par exemple, nous souhaitons connaître le position de ph dans Dophis
Cette fonction renvoie la première position trouvée. Si la chaîne de caractère que vous recherchez est présente plusieurs fois dans le texte de départ, la fonction ne renvoie que la première position.
Si le texte recherché n’est pas trouvé la fonction renvoie 0.
La fonction VBA REPLACE : remplacer des caractères automatiquement
La fonction VBA Replace permet de remplacer des caractères par d’autres caractères. C’est un outil que nous utilisons systématiquement lors de nos missions de développement Excel VBA pour normaliser des bases de données ou corriger des imports de fichiers complexes.
3 arguments sont à transmettre à cette fonction :
- texte de départ : « Dophis : développement et formation sur mesure Excel et Access »
- texte à remplacer : Par exemple « Excel »
- texte de remplacement
La fonction VBA SPLIT : scinder une chaîne selon un séparateur
Cette fonction permet de récupérer dans un tableau l’ensemble des éléments d’une chaîne de caractères qui sont séparés par un élément à définir.
Par exemple, vous souhaitez récupérer l’ensemble des éléments séparés par ; de la chaîne suivante:
268069955055656;185065156106190;169091505522055;270071027803371;160116690501129
| Function SpliterChaine(valeur As Variant, separateur As String) As Variant Dim Tableau() As String Dim i As Integer SpliterChaine = Split(valeur, separateur) End Function |
Dans cet exemple le séparateur est un ; mais vous pouvez définir n’importe quel caractère comme séparateur.
Pour traiter la chaîne de caractère, vous réalisez ensuite une boucle sur la variable tableau que vous avez générée.
Sub TraitementChaine() Dim i As Integer Dim Var_traitement Var_traitement = SpliterChaine("268069955055656;185065156106190;169091505522055;270071027803371;160116690501129", ";") For i = LBound(Var_traitement) To UBound(Var_traitement) 'Vous réalisez dans la boucle le traitement que vous souhaitez Debug.Print Var_traitement(i) Next i End SubLa fonction StrReverse : inverser l’ordre des lettres
Pour inverser l’ordre des lettres d’une chaîne de caractères, une fonction VBA permet de le faire : StrReverse.
StrReverse("1234";) 'cette fonction renvoie 4321Fonction personnalisée pour supprimer tous les accents en VBA
Cette fonction permet de remplacer tous les accents d’une chaîne de caractères par la même lettre sans accent.
Function SupprAccent(chaine As String) Dim VarCtrl As String * 1 Dim VarRempl As String * 1 Dim i As Integer Const Accent = àáâãäåéêëèìíîïðòóôõöùúûüç" Const SansAccent = "aaaaaaeeeeiiiioooooouuuuc" For i = 1 To Len(Accent) VarCtrl = Mid(Accent, i, 1) VarRempl = Mid(SansAccent, i, 1) chaine = Replace(chaine, VarCtrl, VarRempl) Next SupprAccent = chaine End FunctionGérer les caractères interdits dans les noms de fichiers
Lorsque vous créez des fichiers, certains caractères sont interdits dans le nom du fichier. Cette fonction permet de gérer ces caractères interdits. La fonction détecte les caractères interdits et les remplace par un caractère que vous définissez.
Function CaracteresInterdits(chaine As Variant, ListeCaracInterdit As String, new_caract As String) As Variant '''''' Caractères interdits pour nom de fichier et répertoire : ;/:*?| Dim i As Integer Dim A As String On Error GoTo erreur If IsNull(chaine) Then CaracteresInterdits = Null Exit Function End If For i = 1 To Len(ListeCaracInterdit) A = Mid(ListeCaracInterdit, i, 1) chaine = Replace(chaine, A, new_caract) Next CaracteresInterdits = chaine Exit Function erreur: CaracteresInterdits = chaine End FunctionPour faire appel à cette fonction, vous pouvez utiliser la procédure VBA suivante :
Sub RemplacementCaractere() Debug.Print CaracteresInterdits("nom;fichier_erronne.xlsx", ";/*:?|", "_") End SubIl est possible de changer le caractère de remplacement par rien en précisant « » pour le 3ème paramètre de la fonction.
Identifier la dernière position d’un caractère (Backslash, espace…)
Pour identifier la dernière position d’un caractère dans une chaîne de caractère, il est possible d’utiliser la fonction suivante.
A titre d’exemple vous avez le chemin complet d’accès à un fichier : nom du répertoire nom du fichier. Vous souhaitez récupérer le nom du fichier. Pour cela il faut identifier le dernier antislash () de la chaîne.
Function DernierePosition(VarTexte As Variant, VarStrRecherche As String) As Integer Dim position As Integer position = InStr(1, StrReverse(VarTexte), VarStrRecherche) If position = 0 Then DernierePosition = 0 Else DernierePosition = position End If End FunctionPour identifier l’antislash d’une chaîne de caractère, la fonction précédente va être mise en œuvre.
Function NomFichier(VarRepNom As String) As Variant On Error GoTo erreur Debug.Print DernierePosition(VarRepNom, "\") NomFichier = Right(VarRepNom, DernierePosition(VarRepNom, "\") - 1) Exit Function erreur: NomFichier = Null End Function Sub Exemple() Debug.Print NomFichier("C:DophisExemple\NomFichier.xlsx") 'renvoie NomFichier.xlsx End SubSupprimer les doublons dans une chaîne de caractères VBA
Vous souhaitez supprimer les doublons présents dans une chaine de caractères qui sont séparés par un élément distinctif et répétitif. Par exemple vous avez un texte avec des prénom en double : « Monique Marion Jean Lucien Monique Laura Evan Marion Evan« .
Public Function supp_doublon_chaine(valeur As Variant, separateur As String) As String Dim nbEspaces As String Dim i As Byte Dim c Dim monDico Dim temp If IsNull(valeur) Then supp_doublon_chaine = "" Exit Function End If temp = "" nbEspaces = (Len(valeur) - Len(Replace(valeur, separateur, ""))) / Len(separateur) Set monDico = CreateObject("Scripting.Dictionary") If valeur <> "" Then For i = 0 To nbEspaces c = Split(valeur, separateur)(i) If Not monDico.Exists(c) Then monDico.Add c, c NextFor Each d In monDico.Items If temp <> « » Then temp = temp & separateur & d Else temp = d End If Next End If supp_doublon_chaine = Trim(temp) End Function
En utilisant cette fonction le résultat est le suivant : » Monique Marion Jean Lucien Laura Evan ». Les doublons ont été supprimés.
Sub Test() Debug.Print SuppDoublonChaine("Monique Marion Jean Lucien Monique Laura Evan Marion Evan", " ") End SubBesoin d’un expert pour vos projets VBA sur mesure ?
Maîtriser les fonctions pour manipuler les chaînes de caractères est essentiel, mais leur mise en œuvre sur des fichiers volumineux ou complexes peut s’avérer chronophage.
Si vous avez un besoin spécifique ou si vous souhaitez déléguer l’automatisation de vos outils, notre expert freelance Excel VBA est à votre disposition. Nous créons pour vous des codes sur mesure, optimisés et sécurisés, pour manipuler vos chaînes de caractères et automatiser vos processus métier sans aucune erreur.
Formation
Formation VBA Excel Professionnelle Fichiers VBA prêts à l’emploi
Télécharger les fichiers Les indispensables VBA Extraire et modifier du texte en VBA (Mid, Left, Len) Maîtriser l’objet Range : manipuler des cellules Créer des alertes et messages avec MsgBox Guide complet des fonctions intégrées VBA Gérer les conditions multiples (If… Then… Else) Créer des boucles et répétitions : Do While Articles liés
Articles similaires
Cours VBA gratuitCours VBA gratuit
14/08/2024 Utiliser le module VBA pour organiser votre codeUtiliser le module VBA pour organiser votre code
14/08/2024 Comprendre et maîtriser Function VBAComprendre et maîtriser Function VBA
14/08/2024 Comprendre la différence entre ByVal et ByRef en VBAComprendre la différence entre ByVal et ByRef en VBA
12/08/2024 Apprendre les procédures Sub VBA : Guide pratique avec exemplesApprendre les procédures Sub VBA : Guide pratique avec exemples
12/08/2024 Utiliser des variables VBA : déclaration, portée et types de donnéesUtiliser des variables VBA : déclaration, portée et types de données
12/08/2024 Maîtriser l’utilisation de Range en VBA : Guide completMaîtriser l’utilisation de Range en VBA : Guide complet
12/08/2024 Comprendre les boucles Do While VBA et Do UntilComprendre les boucles Do While VBA et Do Until
12/08/2024 Comment utiliser la boucle For Each en VBA : Guide pas à pas avec exemplesComment utiliser la boucle For Each en VBA : Guide pas à pas avec exemples
11/08/2024 La Boucle For Next en VBA : Guide Complet pour ExcelLa Boucle For Next en VBA : Guide Complet pour Excel
11/08/2024
Contactez-nous[email protected]06 08 00 53 63© 2026 Dophis, 73420 Drumettaz-Clarafond, Numéro de déclaration d'activité : 84730226773 • Tous droits réservés • Mentions légales • Confidentialité • Accueil
Bascule de la zone de la barre coulissante Page load link
Entrez votre adresse e-mail pour recevoir directement le fichier dans votre zone de téléchargement :
TéléchargerVeuillez trouver ci-joint le fichier demandé×Une erreur s'est produite au moment de l'envoi de votre mail. Merci de réessayer plus tard. Vous pouvez aussi nous joindre directement à l'adresse mail suivante: [email protected]×En vous inscrivant, vous acceptez de recevoir des informations sur les nouveaux fichiers mis à disposition de notre part. Vous pouvez vous désabonner à tout moment.

Nous vous accompagnons dans l’optimisation de vos fichiers.
Gagner du temps au quotidien :
– Confiez la modification de vos fichiers à nos experts
– Suivez une formation sur votre lieu de travail ou en ligne
Développement Excel VBA Formation VBA Aller en hautTag » Code Vba Droite
-
Fonction VBA : Right - Excel
-
Right Function (Visual Basic For Applications) - Microsoft Docs
-
Fonction Droite En VBA | Excel-Downloads
-
VBA Right$() : Macro Pour Extraire Des Caractères à Droite
-
MS Excel: How To Use The RIGHT Function (WS, VBA) - TechOnTheNet
-
Excel - Fonction DROITE En VBA
-
Excel VBA Mid Left And Right: A Complete Guide
-
Excel VBA Fonction Len, Right, Left - YouTube
-
VBA RIGHT Function (Syntax + Example) - Excel Champs
-
Right Function In VBA Excel - WallStreetMojo
-
VBA Right Function - Extract Text From Right - Automate Excel
-
How To Use VBA Right Function In Excel? - EduCBA
-
How To Use VBA Right Function In Excel (6 Examples)
-
Manipuler Les Chaines De Caractères En VB6 Et VBA Excel - SilkyRoad