Macro Rechercher un Mot

Résolu
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

5 réponses

pilas31 Messages postés 1878 Statut Contributeur 647
 
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+
1
pilas31 Messages postés 1878 Statut Contributeur 647
 
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+
0
pilas31 Messages postés 1878 Statut Contributeur 647
 
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é !
0
abdo_alg Messages postés 9 Statut Membre
 
ce que je veut, c'est de selectionner la cellule où se trouve le Mot rechercher
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
abdo_alg Messages postés 9 Statut Membre
 
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
0