Macro recherche par inputbox

Ptitgoud

XLDnaute Nouveau
Bonjour,

Je suis débutant en vba et je souhaiterais réaliser la recherche d'un mot dans un fichier excel grâce à l'inputbox. J'ai lu les tutos présents sur les forums, mais malgré tout je n'arrive pas à créer cette macro - j'arrive juste à me servir de l'inputbox pour remplir une cellule du texte que l'on inscrit dans la boite.

J'ai pensé au principe suivant :
1) Créer l'inputbox

Code:
Valeur = inputbox("Texte recherché ?")

Ceci permettrait donc de récupérer le mot recherché ... (Valeur)?

2) Rechercher ce mot (Valeur)
C'est la que ca se complique pour ma part ...
Comment je peux faire pour effectuer la recherche dans tout le classeur?

Code:
Range("A1").Select 
For I = 1 To 65536 
If ActiveCell.Value = Valeur Then ActiveCell.Select
If ActiveCell.Value = "" Then GoTo Fin 
Next 
Fin :
End Sub

Forcement tout ça ne fonctionne pas ... et n'était prévu que pour recherché dans la colonne A1
Si quelqu'un pourrait m'expliquer comment associer la fonction recherche à l'inputbox et comment effectuer la recherche sur tout le classeur, je le remercie d'avance!
 
G

Guest

Guest
Re : Macro recherche par inputbox

Bonjour,

Peut-être que la méthode .Find serait plus judicieuse qu'un parcours de toutes les cellules de toute les feuilles.

Pour en avoir un exemple, lance l'enregistreur de macro, fait CTRL+F et remplit le formulaire de recherche avec toutes les options voulues.

Une fois la recherche éffectuée, arrête l'enregistreur de macro et regarde la tout ce qui concerne .FIND. Regarde l'aide (F1) sur find, il y a un exemple très bien fait.

Ensuite il te faudra apprendre à parcourir toutes les feuilles de ton classeur pour lancer la recherche. Tu trouveras plein d'exemples sur le forum et la FAQ.

A+
 

Ptitgoud

XLDnaute Nouveau
Re : Macro recherche par inputbox

Merci beaucoup d'avoir répondu si rapidement, je vais regarder ce que tu m'as dit!

EDIT : j'ai effectué la macro suivante :

Code:
Sub Test()
Valeur = InputBox("Texte recherché")
    Cells.Find(What:=Valeur, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
End Sub

Elle fonctionne correctement lorsque le texte est présent sur la première feuille, neanmoins il y a un message d'erreur lorsque le texte n'est pas présent. (Erreur de variable ou White bloc non défini)
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Macro recherche par inputbox

Bonjour ptitgoud, Hasco:)

essaye avec ceci :
Code:
Dim valeur As String, c As Range
valeur = InputBox("Texte recherché")
Set c = Cells.Find(What:=valeur, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False)
If Not c Is Nothing Then c.Select

bon après midi
@+
 

Ptitgoud

XLDnaute Nouveau
Re : Macro recherche par inputbox

Bonjour ptitgoud, Hasco:)

essaye avec ceci :
Code:
Dim valeur As String, c As Range
valeur = InputBox("Texte recherché")
Set c = Cells.Find(What:=valeur, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False)
If Not c Is Nothing Then c.Select

bon après midi
@+

Merci pour ta réponse! Ceci fonctionne très bien, mais uniquement sur la feuille affichée, quel paramètre doit-on modifier pour élargir sa rechercher à tout le classeur?
 
G

Guest

Guest
Re : Macro recherche par inputbox

Bonjour Ptigoud,
Salut Pierrot:)

Comme je te le disais dans mon post précédent, il te faut apprendre à parcourir toutes les feuilles du classeur, éventuellement dans une boucle For...Next pour lancer la recherche sur chacune d'elles.

Fais une recherche sur le forum avec "Liste feuilles" ou regarde dans la FAQ. Il y a plein d'exemples.

A+
 

Discussions similaires

Réponses
8
Affichages
501
Réponses
3
Affichages
301

Statistiques des forums

Discussions
312 315
Messages
2 087 170
Membres
103 490
dernier inscrit
zatougraf