Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recherche par mot clé

4 réponses
Avatar
Jdel
Bonjour,
J'ai le code ci-dessous dans une Macro qui ramène dans un feuille B les
lignes d'une feuille A contenant un mot saisi dans une InputBox.
Existe-t-il une possibilité pour que la recherche se fasse uniquement
par mot entier.
Par exemple, si je cherche "Table", celle-ci me ramène "Livres
comptables." ou "Récepteurs portables". Il faudrait seulement les lignes
comportant le mot entier "Table".
J'essaie de faire quelque chose avec MatchWholeWord = True (trouvé dans
Word) mais j'ai ma macro qui plante.


LimaX = 1
Set ColMotCle = FTabl.Range(FTabl.Cells(2, 3), FTabl.Cells(8324, 3))
MotCle = InputBox("Saisir un mot clé" & Chr(10) & "(Attention à la
syntaxe)" & Chr(10) & "Vous pouvez utiliser un copier coller" & Chr(10)
& "(Ctrl+V pour coller)", "Recherche par mot clé")
Set c = ColMotCle.Find(MotCle, , , xlPart)
If Not c Is Nothing Then
ResAdr = c.Address
End If
Do
c.EntireRow.Copy
FTabl.Paste Destination:=FTamp_01.Cells(LimaX, 1)
Set c = ColMotCle.FindNext(c)
If ResAdr <> c.Address Then
LimaX = (LimaX + 1)
End If
Loop While Not c Is Nothing And ResAdr <> c.Address

Cordialement
Jean-Pierre

4 réponses

Avatar
JB
Bonsoir,

Dans Find() ,remplacer Xlpart par xlWhole

http://boisgontierjacques.free.fr/pages_site/cellules.htm#find

JB
http://boisgontierjacques.free.fr

On 6 fév, 20:10, Jdel wrote:
Bonjour,
J'ai le code ci-dessous dans une Macro qui ramène dans un feuille B les
lignes d'une feuille A contenant un mot saisi dans une InputBox.
Existe-t-il une possibilité pour que la recherche se fasse uniquement
par mot entier.
Par exemple, si je cherche "Table", celle-ci me ramène "Livres
comptables." ou "Récepteurs portables". Il faudrait seulement les lignes
comportant le mot entier "Table".
J'essaie de faire quelque chose avec MatchWholeWord = True (trouvé dan s
Word) mais j'ai ma macro qui plante.

LimaX = 1
Set ColMotCle = FTabl.Range(FTabl.Cells(2, 3), FTabl.Cells(8324, 3))
  MotCle = InputBox("Saisir un mot clé" & Chr(10) & "(Attention à la
syntaxe)" & Chr(10) & "Vous pouvez utiliser un copier coller" & Chr(10)
& "(Ctrl+V pour coller)", "Recherche par mot clé")
     Set c = ColMotCle.Find(MotCle, , , xlPart)
     If Not c Is Nothing Then
         ResAdr = c.Address
     End If
     Do
     c.EntireRow.Copy
     FTabl.Paste Destination:=FTamp_01.Cells(LimaX, 1)
         Set c = ColMotCle.FindNext(c)
     If ResAdr <> c.Address Then
         LimaX = (LimaX + 1)
     End If
     Loop While Not c Is Nothing And ResAdr <> c.Address

Cordialement
Jean-Pierre


Avatar
JB
J'avais mal compris:

http://cjoint.com/?cguA3Aou7v

Sub Macro1()
[a:a].Interior.ColorIndex = xlNone
mot = InputBox("Mot cherché? ")
If mot = "" Then Exit Sub
Set r = [a:a].Find(What:=mot, LookAt:=xlWhole)
If Not r Is Nothing Then colorie r
Set r = [a:a].Find(What:="* " & mot, LookAt:=xlWhole)
If Not r Is Nothing Then colorie r
Set r = [a:a].Find(What:=mot & " *", LookAt:=xlWhole)
If Not r Is Nothing Then colorie r
Set r = [a:a].Find(What:="* " & mot & " *", LookAt:=xlWhole)
If Not r Is Nothing Then colorie r
End Sub

Sub colorie(r)
premier = r.Address
Do
r.Interior.ColorIndex = 4
Set r = [a:a].FindNext(r)
Loop While Not r Is Nothing And r.Address <> premier
End Sub

JB


On 6 fév, 20:20, JB wrote:
Bonsoir,

Dans Find() ,remplacer Xlpart par xlWhole

http://boisgontierjacques.free.fr/pages_site/cellules.htm#find

JBhttp://boisgontierjacques.free.fr

On 6 fév, 20:10, Jdel wrote:



Bonjour,
J'ai le code ci-dessous dans une Macro qui ramène dans un feuille B le s
lignes d'une feuille A contenant un mot saisi dans une InputBox.
Existe-t-il une possibilité pour que la recherche se fasse uniquement
par mot entier.
Par exemple, si je cherche "Table", celle-ci me ramène "Livres
comptables." ou "Récepteurs portables". Il faudrait seulement les lign es
comportant le mot entier "Table".
J'essaie de faire quelque chose avec MatchWholeWord = True (trouvé d ans
Word) mais j'ai ma macro qui plante.

LimaX = 1
Set ColMotCle = FTabl.Range(FTabl.Cells(2, 3), FTabl.Cells(8324, 3))
  MotCle = InputBox("Saisir un mot clé" & Chr(10) & "(Attention à la
syntaxe)" & Chr(10) & "Vous pouvez utiliser un copier coller" & Chr(10)
& "(Ctrl+V pour coller)", "Recherche par mot clé")
     Set c = ColMotCle.Find(MotCle, , , xlPart)
     If Not c Is Nothing Then
         ResAdr = c.Address
     End If
     Do
     c.EntireRow.Copy
     FTabl.Paste Destination:=FTamp_01.Cells(LimaX, 1)
         Set c = ColMotCle.FindNext(c)
     If ResAdr <> c.Address Then
         LimaX = (LimaX + 1)
     End If
     Loop While Not c Is Nothing And ResAdr <> c.Address

Cordialement
Jean-Pierre- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
Modeste
Bonsour® Jdel avec ferveur ;o))) vous nous disiez :

Bonjour,
J'ai le code ci-dessous dans une Macro qui ramène dans un feuille B
les lignes d'une feuille A contenant un mot saisi dans une InputBox.
Existe-t-il une possibilité pour que la recherche se fasse uniquement
par mot entier.
Par exemple, si je cherche "Table", celle-ci me ramène "Livres
comptables." ou "Récepteurs portables". Il faudrait seulement les
lignes comportant le mot entier "Table".
J'essaie de faire quelque chose avec MatchWholeWord = True (trouvé
dans Word) mais j'ai ma macro qui plante.


il suffit de saisir un espace devant le mot-clé : " table"
par contre il ne trouvera plus : "table à langer", mais trouvera : "lampe à
tableaux"

le parametre xlWhole en lieu de xlPart ne fonctionnera que si la cellule ne
contient que : "Table"

--
@+
;o)))

Avatar
Jdel
Merci JB, je pense que ça va le faire je teste demain et je vous dit ça
demain soir
@+
Jean-Pierre

J'avais mal compris:

http://cjoint.com/?cguA3Aou7v

Sub Macro1()
[a:a].Interior.ColorIndex = xlNone
mot = InputBox("Mot cherché? ")
If mot = "" Then Exit Sub
Set r = [a:a].Find(What:=mot, LookAt:=xlWhole)
If Not r Is Nothing Then colorie r
Set r = [a:a].Find(What:="* " & mot, LookAt:=xlWhole)
If Not r Is Nothing Then colorie r
Set r = [a:a].Find(What:=mot & " *", LookAt:=xlWhole)
If Not r Is Nothing Then colorie r
Set r = [a:a].Find(What:="* " & mot & " *", LookAt:=xlWhole)
If Not r Is Nothing Then colorie r
End Sub

Sub colorie(r)
premier = r.Address
Do
r.Interior.ColorIndex = 4
Set r = [a:a].FindNext(r)
Loop While Not r Is Nothing And r.Address <> premier
End Sub

JB


On 6 fév, 20:20, JB wrote:
Bonsoir,

Dans Find() ,remplacer Xlpart par xlWhole

http://boisgontierjacques.free.fr/pages_site/cellules.htm#find

JBhttp://boisgontierjacques.free.fr

On 6 fév, 20:10, Jdel wrote:



Bonjour,
J'ai le code ci-dessous dans une Macro qui ramène dans un feuille B les
lignes d'une feuille A contenant un mot saisi dans une InputBox.
Existe-t-il une possibilité pour que la recherche se fasse uniquement
par mot entier.
Par exemple, si je cherche "Table", celle-ci me ramène "Livres
comptables." ou "Récepteurs portables". Il faudrait seulement les lignes
comportant le mot entier "Table".
J'essaie de faire quelque chose avec MatchWholeWord = True (trouvé dans
Word) mais j'ai ma macro qui plante.
LimaX = 1
Set ColMotCle = FTabl.Range(FTabl.Cells(2, 3), FTabl.Cells(8324, 3))
MotCle = InputBox("Saisir un mot clé" & Chr(10) & "(Attention à la
syntaxe)" & Chr(10) & "Vous pouvez utiliser un copier coller" & Chr(10)
& "(Ctrl+V pour coller)", "Recherche par mot clé")
Set c = ColMotCle.Find(MotCle, , , xlPart)
If Not c Is Nothing Then
ResAdr = c.Address
End If
Do
c.EntireRow.Copy
FTabl.Paste Destination:=FTamp_01.Cells(LimaX, 1)
Set c = ColMotCle.FindNext(c)
If ResAdr <> c.Address Then
LimaX = (LimaX + 1)
End If
Loop While Not c Is Nothing And ResAdr <> c.Address
Cordialement
Jean-Pierre- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -