Macro Rechercher un Mot
Résolu
abdo_alg
Messages postés
9
Statut
Membre
-
abdo_alg Messages postés 9 Statut Membre -
abdo_alg Messages postés 9 Statut Membre -
Bonjour,
Je suis un débutant dans la programmation VBA, je veux créer une macro qui me permet de faire une recherche par mot.
j'ai inseré une CommandButton (Chermot) et une TextBox (textFind) dans la feuil2
j'ai ecris le programme suivant:
Sub Chermot_Click()
Dim Mot As String
Mot = textFind.Text
With Sheets("Feuil2").Range("B6:E500")
Set c = .find(Mot, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub
Mais le problème, c'est que ma macro ne marche pas!!!!! :(
pouvez vous m'aider SVP
Merci à l'avance
Je suis un débutant dans la programmation VBA, je veux créer une macro qui me permet de faire une recherche par mot.
j'ai inseré une CommandButton (Chermot) et une TextBox (textFind) dans la feuil2
j'ai ecris le programme suivant:
Sub Chermot_Click()
Dim Mot As String
Mot = textFind.Text
With Sheets("Feuil2").Range("B6:E500")
Set c = .find(Mot, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub
Mais le problème, c'est que ma macro ne marche pas!!!!! :(
pouvez vous m'aider SVP
Merci à l'avance
Configuration: Windows XP Internet Explorer 7.0
5 réponses
-
Bonjour,
Je te propose alors de modifier légérement la macro pour qu'elle selectionne la ou les cellules contenant le mot et qu'elle affiche un message si le mot n'est pas trouvé :Private Sub Chermot_Click() Dim Mot As String Dim c As Range Mot = textFind.Text With Sheets("Feuil2").Range("B6:E500") Set c = .Find(Mot, LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address c.Select Do Union(Selection, c).Select Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress End If End With If c Is Nothing Then MsgBox "le texte '" & Mot & "' n'a pas été trouvé" End If End Sub
Dis moi si cela convient.
A+ -
Bonjour,
Qu'elle est la signification de Mot = textFind.Text ?
car si textFind est le nom d'une cellule nommée alors il faut écrire : Mot = [textFind].Text
A priori le reste de la syntaxe doit -être correcte
A+ -
euh! pardon j'avais pas bien lu bien sur textFind est une text box au temps pour moi !!!
Je ne vois donc pas d'erreur, quelle est l'erreur et sur quelle ligne ?
car la macro ne donne pas de résultat mais c'est normal mais elle trouve bien l'adresse de la première cellule dans laquelle est le mot recherché ! -
ce que je veut, c'est de selectionner la cellule où se trouve le Mot rechercher
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
oui, cela me convient
Merci beaucoups pilas31 :)
puisque je suis maniaque (je le sais et je sais que vous ne le savez pas), j'ai retouché un peu le programme en introduisant un compteur (K), et ça donne:
Private Sub Chermot_Click()
k = 0
Dim Mot As String
Dim c As Range
Mot = textFind.Text
With Sheets("Feuil2").Range("A6:K500")
Set c = .find(Mot, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
c.Select
Do
Union(Selection, c).Select
Set c = .FindNext(c)
k = k + 1
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
If k = 0 Then
MsgBox "Pas de résultat "
Else:
MsgBox k & " résultat(s) retrouvé(s)"
End If
End Sub
encors une autre fois, un grand merci pour toi Pilas 31
cordialement