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?
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