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
Configuration: Windows XP Internet Explorer 7.0

5 réponses

  1. pilas31 Messages postés 1878 Statut Contributeur 648
     
    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
  2. pilas31 Messages postés 1878 Statut Contributeur 648
     
    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
  3. pilas31 Messages postés 1878 Statut Contributeur 648
     
    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
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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