La fonction Trim en VBA est une fonction utile pour nettoyer les chaînes de caractères. Elle permet d'éliminer les espaces inutiles en début et en fin de chaîne. Il s'agit d'une fonction très pratique, voir indispensable, si vous travaillez avec des textes en VBA (ou en Excel). Pour information, cette fonction correspond à la fonction Excel SUPPRESPACE.
Dans ce tutoriel, nous allons voir comment utiliser cette fonction, comment l'implémenter dans vos projets VBA, ainsi que les erreurs que vous pourriez rencontrer lors de son utilisation.
Sommaire
- Syntaxe de la fonction VBA Trim()
- Exemple d'utilisation de la fonction Trim dans VBA
- Variantes de cette fonction: LTrim et RTrim
- Utilisation pratique de la fonction Trim dans un projet VBA
- Erreurs potentielles lors de l'utilisation de la fonction Trim
- Caractères supprimés par la fonction Trim
- Conclusion
- Pour aller plus loin en VBA…
Syntaxe de la fonction VBA Trim()
La fonction a une syntaxe très simple ne contenant que 1 seul paramètre.
x = Trim(Texte)
Dans l'éditeur VBA (VBE), ce paramètres de la fonction Trim() s'affiche en anglais:
x = Trim(String)
Le détail des paramètres de la fonction
Texte
("string"): La chaîne de caractères dont vous souhaitez supprimer les espaces en début et en fin.
Exemple d'utilisation de la fonction Trim dans VBA
Prenons l'exemple suivant:
1 2 3 4 5 |
Sub ExempleTrim() Dim chaine As String chaine = " Bonjour tout le monde! " Debug.Print Trim(chaine) End Sub |
Dans cet exemple, la chaîne " Bonjour tout le monde! " contient des espaces en début et en fin. En utilisant la fonction Trim, ces espaces sont supprimés et la chaîne devient "Bonjour tout le monde!".
Variantes de cette fonction: LTrim et RTrim
En plus de la fonction Trim, VBA propose également deux autres fonctions similaires pour supprimer les espaces:
- LTrim(texte): Supprime les espaces en début de chaîne.
123456789Sub Exemple_LTrim()Dim chaine As Stringchaine = " Bonjour tout le monde! "' Utilisation de LTrim pour supprimer les espaces en début de chaînechaine = LTrim(chaine)' La chaîne sera maintenant "Bonjour tout le monde! "MsgBox chaineEnd Sub - RTrim(texte): Supprime les espaces en fin de chaîne.
123456789Sub Exemple_RTrim()Dim chaine As Stringchaine = " Bonjour tout le monde! "' Utilisation de RTrim pour supprimer les espaces en fin de chaînechaine = RTrim(chaine)' La chaîne sera maintenant " Bonjour tout le monde!"MsgBox chaineEnd Sub
Ces deux fonctions peuvent être utilisées pour supprimer les espaces uniquement d'un côté de la chaîne, selon vos besoins.
Utilisation pratique de la fonction Trim dans un projet VBA
Supposons que vous avez une liste de noms dans un classeur Excel, et que certains d'entre eux contiennent des espaces inutiles en début et en fin. Vous pouvez utiliser la fonction Trim pour nettoyer ces noms.
Voici un exemple de code VBA pour illustrer ce cas:
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub NettoyerNoms() Dim MaFeuille As Worksheet Dim Cellule As Range Dim MaListe As Range Set MaFeuille = ThisWorkbook.Worksheets("Feuil1") Set MaListe = MaFeuille.Range("A2:A120") ' Ajustez la plage selon vos besoins For Each Cellule In MaListe Cellule.Value = Trim(Cellule.Value) Next Cellule End Sub |
Dans cet exemple, le code parcourt les cellules de la plage A2:A120 (modifiable selon vos besoins) et utilise la fonction Trim pour supprimer les espaces inutiles en début et en fin de chaque nom.
Erreurs potentielles lors de l'utilisation de la fonction Trim
Si cette fonction est assez simple et ne génère généralement pas d'erreurs, il y a certaines situations où des erreurs pourraient survenir:
- Type de donnée incorrect
Si vous essayez d'utiliser la fonction Trim sur une valeur qui n'est pas une chaîne de caractères, vous pouvez obtenir une erreur de type "Type Mismatch" (erreur 13). Pour éviter cette erreur, assurez-vous que la valeur sur laquelle vous utilisez la fonction Trim est bien une chaîne de caractères. - Utilisation de Trim sur une variable non initialisée
Si vous essayez d'utiliser cette fonction sur une variable qui n'a pas été initialisée, vous obtiendrez une erreur de type "Object Required" (erreur 424). Pour éviter cela, assurez-vous de vérifier que la variable est initialisée avant de l'utiliser avec Trim. Par exemple, vous pouvez utiliser une condition pour vérifier si la variable n'est pas vide :
123If Not IsEmpty(maVariable) ThenmaVariable = Trim(maVariable)End If - Fonction Trim utilisée sur un objet
Si vous essayez d'utiliser la fonction Trim sur un objet, par exemple une cellule ou une plage de cellules, vous obtiendrez également une erreur de type "Type Mismatch" (erreur 13). Pour éviter cela, assurez-vous d'utiliser la fonction Trim sur la propriété Value de la cellule ou de la plage, et non sur l'objet lui-même. Par exemple, au lieu de :
1MaCellule = Trim(MaCellule)
1MaCellule.Value = Trim(MaCellule.Value)
Caractères supprimés par la fonction Trim
Attention: La fonction Trim supprime les espaces en début et en fin de chaîne, mais elle ne supprime pas les autres caractères non imprimables. En VBA, les espaces sont représentés par le code ASCII 32
.
Si vous souhaitez supprimer également d'autres caractères non imprimables en début et en fin de chaîne. Vous pouvez créer une fonction personnalisée ("UDF") pour le faire.
Par exemple, voici une fonction qui supprime les espaces et les caractères de tabulation (code ASCII 9
):
1 2 3 |
Function TrimEtTabulation(chaine As String) As String TrimEtTabulation = Trim(Replace(chaine, Chr(9), " ")) End Function |
Avec la fonction ci-dessus, vous supprimerez les espaces et les tabulations en début et en fin de chaîne. Vous pouvez l'adapter pour supprimer d'autres caractères non imprimables en fonction de vos besoins, en ajoutant des instructions Replace avec les codes ASCII correspondants.
Conclusion
La fonction Trim en VBA est un outil simple mais puissant pour nettoyer les chaînes de caractères en supprimant les espaces inutiles en début et en fin. Dans ce tutoriel, nous avons vu comment l'utiliser, comment l'intégrer dans vos projets VBA, ainsi que les erreurs potentielles lors de son utilisation. En gardant ces conseils à l'esprit, vous pourrez l'utiliser efficacement et éviter les erreurs courantes.
Pour aller plus loin en VBA…
Voici quelques autres articles & tutoriels VBA qui pourraient vous être utiles…
- Liste de toutes les fonctions VBA
- VBA: Extraire une chaîne délimitée
- Lire le contenu d'un fichier texte en VBA
- SOMME en VBA (plusieurs méthodes)
- Comment utiliser RECHERCHEV en VBA
- La page de la fonction Trim() sur le site de Microsoft n'est hélas pas très garnie…
Commentaire sur “Fonction TRIM en VBA: Supprimez facilement les espaces inutiles”
C'est pratique. Merci pour l'information.
On voit que vous maîtrisez le sujet 🙂