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

Lena75 -  
Frenchie83 Messages postés 2254 Statut Membre -
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

  1. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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
    1