Moteur de recherche excel [Fermé]

Signaler
-
 pablo -
Bonjour,

Je suis en train de faire un fichier excel de suivi pour des documents avec différents champs de références.
Titre, thème, situation, auteur, type de document...
J'aurai voulu savoir comment je pouvais faire pour créer un genre de moteur de recherche sur excel.
On tape un mot clé dans une case, on clique sur un bouton rechercher et il trouve le mot dans toute la page excel et fait apparaitre les lignes qui contiennent ce mot. (Les mots sont situés au milieu de phrase ou d'expression).

Je suis pas très douée en programmation mais là, c'est mon chef qui m'a demandé d'essayer de faire ça.
Merci

Audrez

2 réponses

Bonjour

Il me semble que ce que tu cherches existe déja sous Excel.

Il faut aller dans Edition Rechercher.

De plus on peut mettre dans la barre d'outils les jumelles qui permettent d'ariver directement à la grille de recherche.

Cordialement
Michel
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
64
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
29 juillet 2008
64
Bonjour,

Je pense que la macro suivante va répondre a ton besoin...

'_______________________________________________
Sub FindAndColor()
'Définir la plage de recherche: ici les données sont contenues dans la feuilles 3 du classeur, et dans les Cellules A1 à B500
With Worksheets(3).Range("a1:B500") 'tu peux aussi rendre cette plage variable pour plus de souplesse...

'dans cet exemple la cellule de recherche sera la case D1 de la page active... A toi definir une autre cellule si besoin
'On défini une variable c qui servira d'index et permettra de localiser les coordonnées des cellules trouvées.
Set c = .Find(What:=Range("D1").Value, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows)
If Not c Is Nothing Then
'On mémorise l'adresse de l'index de départ
firstAddress = c.Address
Do
'J'active la cellule qui contient la valeur de D1...
c.Activate
'...et je colore la cellule en jaune
ActiveCell.Interior.ColorIndex = 6
'Je passe a la cellule suivante tant que l'index de recherche n'est pas revenu a son adresse de départ
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With

End Sub
'_______________________________________________


Te voila avec toutes les cellules qui contiennent le texte dans D1 colorées en jaune... Tu peux améliorer cette macro en colorant toute la ligne par exemple... et en créant un bouton qui lance cette macro!

@+
Je recherche exactement ce type de macro que tu as écrite, seul soucis elle ne fonctionne pas.

Sub MoteurDeRecherche()

With Worksheets(3).Range("C5:G500")
Set c = .Find(What:=Range("E2").Value, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Activate
ActiveCell.Interior.ColorIndex = 5
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With

End Sub

Est-il possible d'utiliser le nom donné à la feuille au lieu du numéro 3 : Worksheets(3)?

Aussi ce que j'aimerai arriver à faire serait plus poussé :
- créer 3 cellules où tu renseignes un ou plusieurs mots clefs
- ces 3 moteurs de recherche cumulent l'association avec ces 3 mots clefs
- affichage des réponses par affichage automatique des lignes correspondantes et non par couleur

Merci d'avance
Bonjour ami, j'ai trouvé un blog qui peut vous aider. Ce très bon
Le lien est: http://excelminiapps.blogspot.com.ar/