VBA EXCEL- Compter le nb d'apparitions d'un mot précis ds une cellule

Signaler
-
Messages postés
2178
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
16 janvier 2021
-
Bonjour,

Je travaille sur Excel 2013, et j'aimerais pouvoir compter le nombre de fois où le mot "ami" (sans tenir compte de la casse) apparaît dans la cellule B1 contenant "amie, amis, amies, famille, (Ami), AMI"

J'ai essayé de plusieurs façons (avec SOMME.PROD, NB.SI, TROUVE, EQUIV, NBCAR(B1)-NBCAR(SUBSTITUE…)...) mais aucune ne m'a permis d'obtenir le résultat: 2, correspondant aux deux derniers de la liste au masculin singulier.

Auriez-vous une piste à explorer ou même une formule à proposer?

Merc

1 réponse

Messages postés
2178
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
16 janvier 2021
302
Bonjour,

Comme vous avez intitulé votre demande VBA EXCEL, voici une solution en VBA
Option Compare Text

Sub Extraire()
    Chaine = Range("B1") ' on récupère le contenu de B1 dans la variable "Chaine"
    Chaine = Application.WorksheetFunction.Substitute(Chaine, "(", "") 'on retire la parenthèse ouvrante
    Chaine = Application.WorksheetFunction.Substitute(Chaine, ")", "") 'on retire la parenthèse fermante
    Cpt = 0 'on initilaise le compteur à 0
    Texte = Split(Chaine, ", ") 'on relève tous les mots sans les séparateur ", "
    For k = 1 To UBound(Texte) 'on boucle sur chaque mot
        If Texte(k) = "ami" Then Cpt = Cpt + 1 'si le mot trouvé est égal à "ami" alors on incrémente le compteur
    Next
    
    MsgBox "Quantité trouvée: " & Cpt 'on affiche le résultat
End Sub



ou par formule


Cdlt