Compter les mots dans la cellule, Excel VBA
Voici un exemple détaillé d’un code VBA qui permet de compter le nombre de mots dans une cellule d’Excel. Je vais également expliquer chaque étape du code.
Code VBA pour compter les mots dans une cellule
- Ouvrez Excel et appuyez sur Alt + F11 pour accéder à l’éditeur VBA.
- Dans l’éditeur VBA, allez dans Insertion > Module pour ajouter un nouveau module.
- Copiez et collez le code suivant dans ce module.
Code :
Function CompterMots(rng As Range) As Long Dim texte As String Dim mots() As String Dim i As Long Dim compteur As Long ' Vérifie si la cellule est vide If IsEmpty(rng.Value) Then CompterMots = 0 Exit Function End If ' Récupère le texte de la cellule et supprime les espaces inutiles texte = Trim(rng.Value) ' Remplace les espaces multiples par un espace unique texte = Application.WorksheetFunction.Trim(texte) ' Sépare le texte en mots en utilisant l'espace comme délimiteur mots = Split(texte, " ") ' Compte le nombre de mots compteur = 0 For i = LBound(mots) To UBound(mots) If Len(Trim(mots(i))) > 0 Then compteur = compteur + 1 End If Next i ' Renvoie le nombre de mots CompterMots = compteur End Function
Explication du code :
1. Déclaration des variables :
- texte: Contient le texte de la cellule.
- mots(): Tableau qui contiendra les mots séparés par des espaces.
- i: Variable pour parcourir le tableau de mots.
- compteur: Compteur pour calculer le nombre de mots.
2. Vérification si la cellule est vide :
- Si la cellule est vide (IsEmpty(rng.Value)), la fonction renvoie 0 immédiatement.
3. Traitement du texte de la cellule :
- texte = Trim(rng.Value) : Supprime les espaces en début et en fin du texte.
- texte = Application.WorksheetFunction.Trim(texte) : Supprime les espaces multiples à l’intérieur du texte, en ne laissant qu’un seul espace entre les mots.
4. Séparation du texte en mots :
- mots = Split(texte, » « ) : Utilise la fonction Split pour découper le texte en un tableau de mots, en utilisant l’espace comme délimiteur.
5. Comptage des mots :
- La boucle For parcourt chaque élément du tableau mots.
- If Len(Trim(mots(i))) > 0 Then : Vérifie si le mot n’est pas une chaîne vide (pour ignorer les espaces).
- Si le mot n’est pas vide, le compteur est incrémenté.
6. Retour du nombre de mots :
- La fonction renvoie le nombre de mots comptés dans la cellule.
Utilisation dans Excel :
- Fermez l’éditeur VBA en appuyant sur Alt + Q.
- Dans une cellule d’Excel, vous pouvez maintenant utiliser la fonction CompterMots. Par exemple, si vous souhaitez compter les mots dans la cellule A1, vous pouvez entrer la formule suivante dans une autre cellule :
=CompterMots(A1)
- Le résultat sera le nombre de mots présents dans la cellule A1.
Exemple :
- Si A1 contient le texte « Bonjour tout le monde », la fonction retournera 4 car il y a 4 mots.
Cela vous permet de compter facilement le nombre de mots dans n’importe quelle cellule