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

Fermé
Lena75 - 7 janv. 2021 à 16:47
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 8 janv. 2021 à 07:45
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
A voir également:

1 réponse

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
Modifié le 8 janv. 2021 à 08:01
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