PROBLcréer un 'moteur de recherche' sur excel

Fermé
nathou63 Messages postés 2 Date d'inscription jeudi 13 décembre 2007 Statut Membre Dernière intervention 14 décembre 2007 - 13 déc. 2007 à 17:11
 quattropiloctomie - 10 déc. 2010 à 16:49
Bonjour,

J'ai un menu sur excel, et je cherche à créer une macro pour rechercher des mots dans l'ensemble de mon document.

En gros, j'ai un menu qui s'apelle 'logigramme' avec des liens vers 14 onglets qui contiennent chacun une liste de noms de documents avec les liens vers les documents en question, et je souhaiterai, en première page, pouvoir entrer le nom du fichier que je recherche, et qu'il me le trouve dans les onglets.

J'ai fait ça :

'
Sheets(Array("chap 1", "chap 2", "chap 3", _
"chap 4", "chp 4 bis", "chap 5", "chap 6", "chap 6 bis", "chap 7", "chap 8", "chap 9", _
"Chapitre 10", "Chapitre 11", "Chap 12", "Contrats", "Procédures")).Select
Cells.Select
Selection.Find(What:=Range("'LOGIGRAMME'!Q3"), After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate

"'LOGIGRAMME'!Q3" étant la case dans laquelle je souhaite entrer le mot que je veux rechercher.

Ca marche en partie, mais j'ai deux problèmes :
1) Il reste sur la page 'chap 1' et ne me sélectionne pas la page qui contient le mot que je recherche.
2) Si plusieurs fichiers contiennent le même mot, il ne me sélectionne que le premier.

Si vous pouviez m'aider, ce serait vraiment chouette!
Merci
A voir également:

4 réponses

BJR

vOICI UNE MACRO QUI PEUX D'aider


celle-ci recherche un mot clé dans tout ton classeur avec l'option suivant



Sub recherche7()
texte_a_rechercher = InputBox("Texte à rechercher", "Recherche")
If texte_a_rechercher = "" Then Exit Sub
For Each feuille In Worksheets
feuille.Select
With feuille.Cells
Set C = .Find(texte_a_rechercher, LookIn:=xlValues)
If Not C Is Nothing Then
firstAddress = C.Address
Do
C.Select
rep = MsgBox("Recherche du suivant", vbYesNo, "Recherche")
If rep = vbNo Then Exit Sub
Set C = .FindNext(C)
If C Is Nothing Then
Adresse_encours = 0
Else
Adresse_encours = C.Address
End If
Loop While Not (C Is Nothing) And (Adresse_encours <> firstAddress)
End If
End With
Next
MsgBox "Texte non trouvé ou recherche terminée ou essayez une autre orthographe", vbInformation, "Recherche" 'Message si rien n'ai trouvé
End Sub
0
nathou63 Messages postés 2 Date d'inscription jeudi 13 décembre 2007 Statut Membre Dernière intervention 14 décembre 2007
14 déc. 2007 à 09:40
Ca marche, c'est super.

J'ai plus qu'à créer mon bouton. Magique!!

Vraiment merci beaucoup pour ton aide!
0
Bonjour,

Ca fait 3 jours que je cherche désespérément à régler mon problème, et Eureka ! je viens de trouver un gros début de solution grace à ce post.
J'ai donc pu créer mon bouton de recherche qui marche presque parfaitement. L'ennui, c'est que ce code fait une recherche sur tout le classeur.
Je vous eplique mon fichier :
J'ai une première feuille d'accueil, sur laquelle j'ai mon bouton de recherche, une 2è feuille sur laquelle j'ai toute ma liste de produits, et toutes les autres feuilles correspondent chacune à une fiche produit (de ceux listés dans la feuil2). Or, je voudrais que ma recherche ne se fasse que dans la cellule C1 de chaque fiche produit (donc dans toutes les feuilles sauf la 1 et la 2).

Est-ce que quelqu'un pourrait m'aider ??

Merci par avance.

Pris
0
quattropiloctomie
10 déc. 2010 à 16:49
Moi aussi, j'ai séché là-dessus ! MERCI !!!
0