Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1987 connectés 

  FORUM HardWare.fr
  Windows & Software
  Logiciels

  Excel - recherche de mot

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Excel - recherche de mot

n°2782107
sas63
Posté le 28-05-2008 à 11:37:28  profilanswer
 

Bonjour
 
Je cherche à décompter le nombre de fois qu'un mot apparait dans une fichier Excel. Ce mot peut être soit "seul" dans une cellule, soit au sein d'une phrase dans cette cellule. J'imagine qu'il existe une formule simple...
 
Merci d'avance
 
 

mood
Publicité
Posté le 28-05-2008 à 11:37:28  profilanswer
 

n°2782110
bingojm
Posté le 28-05-2008 à 11:47:17  profilanswer
 

Salut, tu veux dire... compter? et que le résultat s'affiche dans une cellule que tu auras choisie c'est bien ca?

n°2782116
TAM136
Posté le 28-05-2008 à 12:32:19  profilanswer
 

sas63 a écrit :

Bonjour
 
Je cherche à décompter le nombre de fois qu'un mot apparait dans une fichier Excel. Ce mot peut être soit "seul" dans une cellule, soit au sein d'une phrase dans cette cellule. J'imagine qu'il existe une formule simple...
 
Merci d'avance
 
 


 
Ultrasimple sans formule
Ctrl+H:rechercher mot
Remplacer par mot
Le mot a été remplacé X fois.
 

n°2782191
sas63
Posté le 28-05-2008 à 18:21:44  profilanswer
 

Merci. Je souhaiterais que le chiffre s'affiche dans une cellule.

n°2782459
SuppotDeSa​Tante
Aka dje69r
Posté le 30-05-2008 à 11:47:27  profilanswer
 

Bonjour
 
Un peu plus d'infos seraient les bienvenues...
Combien de feuille de classeur par exemple ?
 
Et non il n'y a pas de formule simple, il faut coder en vba et passer toutes les cellules en revues pour voir si le mot est dedans.
Voir la fonction InStr()
 
Cordialement


---------------
GreenBrown Energy, avec notre partenaire historique greenpeacefr, nous lançons le 1er fournisseur d'électricité SANS nucléaire. Une offre 100% EnR + backup transitoire
n°2782479
Ptit loup
Quand c'est flou, y'a un loup
Posté le 30-05-2008 à 13:56:31  profilanswer
 

Pareil que dje, je ne vois pas d'autre solution...
Non, il n'existe pas de "formule simple" pour compter ce genre de choses... Je ne vois pas bien qui pourrait avoir l'utilité de ça en fait...

n°2782483
blueteen
Posté le 30-05-2008 à 14:06:44  profilanswer
 

Sinon, selon tes besoins et le mot à chercher, tu as cette formule :

Code :
  1. =NB.SI(A1:E12;"*voiture*" )


A1:E12 étant la plage de recherche (voir contour bleu sur capture ci-dessous).

 

Attention, ça ne distingue pas les majuscules/minuscules, et ça prend tous les mots qui contiennent le mot cherché.

 

Par exemple, si tu cherches : voisin, cette formule te ferait ressortir : avoisinner

 

Donc gare aux faux positifs.
C'est une piste parmi d'autres, on ne connaît pas toutes tes contraintes.

 

http://img527.imageshack.us/img527/3636/chercheoccurenceexcelsr8.gif

Message cité 1 fois
Message édité par blueteen le 30-05-2008 à 14:09:04
n°2782484
SuppotDeSa​Tante
Aka dje69r
Posté le 30-05-2008 à 14:08:29  profilanswer
 

Un petit bout de code trouvé dans l'aide d''excel
Modifies les variable  
- ChaineCherche, ChaineRemplace
- LigneD, ColD, LigneF, ColF (ligne de début, colonne de fin etc.)
 

Citation :


Sub RemplaceChaine
'remplacer ici ce que tu souhaites
ChaineCherche = "toto"
ChaineRemplace = "tata"
ColD = "a"
LigneD="1"
ColF = "b"
LigneF = "65536"
Cpte=0
 
'code de l'aide adapté en consequence.
With Worksheets(1).Range(CStr(ColD & LigneD & ":" & ColF & LigneF))
    Set c = .Find(ChaineCherche, lookin:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            c.Value = ChaineRemplace
            Set c = .FindNext(c)
            Cpte=Cpte+1
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
 
End Sub
 


 
Cordialement


Message édité par SuppotDeSaTante le 30-05-2008 à 14:09:21

---------------
GreenBrown Energy, avec notre partenaire historique greenpeacefr, nous lançons le 1er fournisseur d'électricité SANS nucléaire. Une offre 100% EnR + backup transitoire
n°2782486
SuppotDeSa​Tante
Aka dje69r
Posté le 30-05-2008 à 14:10:33  profilanswer
 

blueteen a écrit :

Sinon, selon tes besoins et le mot à chercher, tu as cette formule :

Code :
  1. =NB.SI(A1:E12;"*voiture*" )


A1:E12 étant la plage de recherche (voir contour bleu sur capture ci-dessous).
 
Attention, ça ne distingue pas les majuscules/minuscules, et ça prend tous les mots qui contiennent le mot cherché.
 
Par exemple, si tu cherches : voisin, cette formule te ferait ressortir : avoisinner
 
Donc gare aux faux positifs.
C'est une piste parmi d'autres, on ne connaît pas toutes tes contraintes.
 
http://img527.imageshack.us/img527 [...] celsr8.gif


 
Bonne idée
Peut etre ajouter un espace avant et apres permettrait de ne pas compter avoisinner parmi les bonnes reponses
 
Cordialement


---------------
GreenBrown Energy, avec notre partenaire historique greenpeacefr, nous lançons le 1er fournisseur d'électricité SANS nucléaire. Une offre 100% EnR + backup transitoire
n°2782490
Ptit loup
Quand c'est flou, y'a un loup
Posté le 30-05-2008 à 14:37:12  profilanswer
 

Oui, mais l'espace avant et après voudrait dire qu'il compte seulement les mots avec espaces... la formule avec NB.SI et sans les espaces me paraît être la meilleure.
 
Mais comme toujours et déjà dit... on manque vraiment de contexte... disons que ça s'appliquera ou pas trop en fonction de que tu recherches, savoir si ce texte est seul ou non dans une cellule, etc...

mood
Publicité
Posté le 30-05-2008 à 14:37:12  profilanswer
 

n°2782498
blueteen
Posté le 30-05-2008 à 15:38:14  profilanswer
 

Comme je trouvais ta question intéressante, je viens de faire un test rapide avec ce bout de code

 
Code :
  1. Sub cherchemot()
  2. Dim Cell As Variant
  3. Dim cpt As Integer
  4.     cpt = 0
  5.     For Each Cell In Selection
  6.         If InStr(1, Cell.Value, "voisin", 0) Then
  7.         cpt = cpt + 1
  8.         End If
  9.     Next Cell
  10.     MsgBox (cpt)
  11. End Sub
 

Je sélectionne une plage de cellules (certaines contenant le mot 'voisin'), puis j'exécute la macro, et j'ai une fenêtre qui s'ouvre et qui contient le nombre d'occurences du mot 'voisin'.
La casse est gérée car j'utilise :

Code :
  1. If InStr(1, Cell.Value, "voisin", 0)


Mais on pourrait ne pas gérer la casse en utilisant :

Code :
  1. If InStr(1, Cell.Value, "voisin", 1)
 

Par contre, si j'ai le mot 'voisins' dans ma place de cellule, alors ce sera également compté.
Ca marche aussi si le mot cherché fait partie d'une phrase dans la cellule.

 

Donc ce qu'il resterait à faire, c'est transformer ça en fonction, pour que tu puisses passer la plage de cellules et le mot cherché en paramètres, et afficher le résultat une cellule de ton choix !

 

Il y a aussi cette façon

Code :
  1. Sub cherchemot2()
  2. Dim Cell As Variant
  3. Dim cpt As Integer
  4.     cpt = 0
  5.     For Each Cell In Selection
  6.     If Cell.Value Like "*voisin*" Then
  7.     cpt = cpt + 1
  8.     End If
  9.     Next Cell
  10.     MsgBox (cpt)
  11. End Sub
 

Ce qui permettrait a priori d'utiliser les expressions régulières avec l'opérateur like.


Message édité par blueteen le 30-05-2008 à 15:59:32
n°2782512
sas63
Posté le 30-05-2008 à 16:51:21  profilanswer
 

merci !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Windows & Software
  Logiciels

  Excel - recherche de mot

 

Sujets relatifs
[resolu]recherche sous excel caratère spéciaux[Excel] Recherche de caractères.
Excel: Ajouter une fonction rechercheFonction RECHERCHE sous excel
Excel - recherche fichier[excel] Recherche de données identiques
recherche info excel[Excel] Recherche croisée dans tableau
[Excel] Recherche dans un tableau[excel] recherche de plusieurs occurences dans une matrice
Plus de sujets relatifs à : Excel - recherche de mot


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR