Compter le nombre d'occurrence d'un mot dans une cellule

Fermé
Amba - 11 févr. 2014 à 08:12
Ambakane Messages postés 5 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 5 avril 2018 - 11 févr. 2014 à 09:55
Bonjour,
Je sollicite un peu d'aide après avoir pas mal écumée les Forum. Je suis en train de réalisé une thèse en médecine et je dois analysé une base de donnée de 44'000 entrée contenant des messages "pager". En gros une phrase contenant le motif d'engagement d'une équipe d'urgence.

P.ex. " P1, sans smur, rue du ... 12, xxxville, enfant de 3 ans, trb resp., connu pour de l'asthme, témoin fait signe sur place"
Je dois extraire un certain nombreux d'information du message, notamment l'age. J'utilise la commande dans VBA
"If cellule Like terme" ou cellule contient le message et terme la string "ans"

Mon problème, dans ce cas il répond par un booléen positif alors que je cherche à savoir le nombre de fois que les caractère "ans" aparait dans la cellule pour pouvoir ensuite enlever tout les massage contenant seulement "sans" ou "dans" mais ne contenant pas "ans" seul pour déignée l'age.

Ma question : comment compter le nombre de fois qu'apparit une chaîne de caractère dans UNE cellule.

Merci beaucoup pour vos réponses !

A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 11/02/2014 à 09:00
Bonjour,

on peut le faire par formule mais sur 44 000 cellules, je te propose une fonction

Option Explicit
Function compter_mot(phrase As String, mot As String) As Byte
Dim Tablo, Cptr As Byte, Nbre As Byte
Tablo = Split(phrase)
For Cptr = 0 To UBound(Tablo)
If UCase(Tablo(Cptr)) = UCase(mot) Then Nbre = Nbre + 1
Next
compter_mot = Nbre
End Function

Nota
en supposant qu'il y ait toujours une séparation entre le nombre d'années et " ans"

de m^me, pour ne pas durer "un certain temps", tu as intér^t à passer par une variable tableau : tu dis si tu ne connais pas en précisant sur quelle colonne il faut travailler
Michel
0
Ambakane Messages postés 5 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 5 avril 2018
11 févr. 2014 à 09:04
Wahou ! quel rapidité ! merci d'avoir pris la peine de me réponde si vite !

Malheureusement les régulateurs (les personnes qui engage les moyen d'urgence en suisse) on une orthographe et une syntaxe non "standardisé" et l'espace entre l'age et "ans" est aléatoire...

je ne peut donc pas utilisé la fonction split (que je ne connaissait pas et que j'apprend grâce à votre réponse, merci !)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
11 févr. 2014 à 09:38
EN ATTENDANT, IL EST PARTICULIÈREMENT DÉPLORABLE DE POSER LA MÊME DEMANDE DANS PLUSIEURS FORUMS


Abandon
0
Ambakane Messages postés 5 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 5 avril 2018
11 févr. 2014 à 09:55
Veuillez m'excuser pour ce doublon,
j'ai poster sur le forum concernant Exel comme sur celui sur le VBA car une solution par fonction directement dans exel ou une fonction VBA me conviendrai. Je pensais donc m'adresser à deux "population" différentes.
Mon but n'était ni de froisser ni de surcharger les forum (de ce site que je consulte extrêmement fréquemment pour ces soucis de programmation) mais juste d'obtenir une réponse à mon problème.
0