Compter les mots dans la cellule, Excel VBA

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 

  1. Ouvrez Excel et appuyez sur Alt + F11 pour accéder à l’éditeur VBA. 
  2. Dans l’éditeur VBA, allez dans Insertion > Module pour ajouter un nouveau module. 
  3. 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 : 

  1. Fermez l’éditeur VBA en appuyant sur Alt + Q. 
  2. 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) 
  3. 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

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x