Créer un bouton de recherche spécifique par mot clé
Bonjour!
Je suis débutante sur Excel. J'ai commencé à créer une base de données qui répertorie des documents (livre, mail, fichier) d'une consultante.
J'ai créé une colonne "mot-clé" dans laquelle j'ai écris tout les mots clés contenu dans chaque documents, j'ai séparé ces mots par des virgules. Chaque cellule "mot clé" de chaque ligne comprend donc les mots clés du document dont il est question sur la ligne.
Je me suis servie des formulaires pour rentrer les données et je voudrais créer un "bouton de recherche"ou il soit possible de chercher un mot clé (seul et que cela sorte tout les formulaires contenant ce mot clé. Je voudrais aussi pouvoir renseigner un deuxième mot clé qui viendrait compléter le premier mot clé si besoin.
Je donne un exemple:
Mot clé 1: programme , Résultat recherche: Tout les formulaires qui ont parmis tout les mots de la cellule "mot clé" le mot programme.
Mot clé 2: (pour affiner la recherche): alimentaire, Résultat: Tout les formulaires qui en plus d'avoir le mot programme, ont aussi le mot alimentaire.
J'espere que c'est assez clair!!! C'est compliqué!!!!
Je joints ma base de données, la saisie n'est pas finie mais je dois rencontrer la consultante mardi matin, afin qu'elle me valide le masque de saisie, je voudrais lui présenter le système de recherche en même temps.
Je vous remercies Beaucoup!
Bonjour Amorelia
Avec un peu de code VBA dans une feuille "Recherche" créée spécialement
Pour voir le code ALT+F11
A+
Bonjour BrunoM45 et merci beaucoup pour votre précieuse réponse qui correspond parfaitement à ce que je veux. C'est vraiment super!! Il y a un petit Hic. Par exemple, j'ai tapé le mot "projet" dans recherche/ mot clé 1 et dans les résultats qu'il me sort, il y a des fiches qui ne compte pas le mot projet (j'ai vérifié dans chaque colonne). Ceci est valable pour d'autres mots que j'ai tapé au hazard. Peut-on y faire quelque chose?? Je n'ai rien compris au code VBA!!!!!!!!!!!!!!!!!!
Encore un grand merci pour le temps que vous m'accordez!!!!
Re-bonjour !! Bon, j'ai testé le fichier que vous m'avez fait parvenir et je m'appercois qu'il faudrait que la recherche de mot clé se fasse dans toutes les colonnes parceque je me suis apercue que si je tape une date par exemple (et je n'ai rentré aucunes dates dans la colonne mot clé!) forcément la recherche ne peut pas aboutir. J'ai cherché un peu en regardant les macros, mais sincèment, je n'y comprend ABSOLUMENT rien et j'ai surtout peur de faire une bétise sur ce que vous m'avez envoyé!!
Je vous remercies encore...
Bonjour Amorelia
amorelia a écrit :Bonjour BrunoM45 et merci beaucoup pour votre précieuse réponse qui correspond parfaitement à ce que je veux. C'est vraiment super!! Il y a un petit Hic. Par exemple, j'ai tapé le mot "projet" dans recherche/ mot clé 1 et dans les résultats qu'il me sort, il y a des fiches qui ne compte pas le mot projet (j'ai vérifié dans chaque colonne). Ceci est valable pour d'autres mots que j'ai tapé au hazard. Peut-on y faire quelque chose?? Je n'ai rien compris au code VBA!!!!!!!!!!!!!!!!!!
Encore un grand merci pour le temps que vous m'accordez!!!!
Si, je t'assure il y a le mot projet dans les lignes affichées ... c'est Excel qui te le dis
En fait mon code utilise simplement le menu -> Données -> Filtrer -> Avancé
Quand tu saisi une valeur dans la cellule A3 ou B3, celle-ci est encadré par 2 étoiles
Ce qui fait que l'on dit à Excel, filtre moi la colonne B contenant le terme
Voilà
Re,
amorelia a écrit :Re-bonjour !! Bon, j'ai testé le fichier que vous m'avez fait parvenir et je m'appercois qu'il faudrait que la recherche de mot clé se fasse dans toutes les colonnes parceque je me suis apercue que si je tape une date par exemple (et je n'ai rentré aucunes dates dans la colonne mot clé!) forcément la recherche ne peut pas aboutir
Normal effectivement, le filtre ne se fait que sur la colonne "Mots clés", j'ai donc modifié le code
amorelia a écrit :J'ai cherché un peu en regardant les macros, mais sincèment, je n'y comprend ABSOLUMENT rien et j'ai surtout peur de faire une bétise sur ce que vous m'avez envoyé!!
Ce n'est pas grave, le fichier sera toujours disponible sur le forum
En tout cas voici le fichier modifié
A+
Merci, Merci, Merci et encore Merci!!!
C'est parfait en ce qui me concerne. Merci aussi pour les explications, cela m'éclaire un peu. J'ai rendez vous demain matin avec la consultante, je vous ferez un retour sur son appréciation et si jamais vous êtes dispo et qu'elle voit une modif à réaliser quand au système de recherche, je reviendrez vers vous.
En tout cas, heureusement que l'entraide existe toujours...
A demain
Bonjour!! Et veuillez m'excuser pour le retard mais nous avons beaucoup de coupures de courant avec la saison des pluies qui est arrivée!!! (J'habites au Sénégal depuis 5 ans maintenant...)! Bon je me dépeche avant que le courant ne copupe à nouveau.
Alors, la consultante a bien aimé le système de recherche et la base dans son ensemble
Bonjour Amorelia
Des termes de recherche sur une même ligne correspondent à un filtrage avec une comparaison par "et"
En ajoutant une ligne dans la recherche, la comparaison se fait par "ou"
Le code correspondant
Private Sub Worksheet_Change(ByVal Target As Range)
Dim DLig As Long, Ind As Integer, ShtR As Worksheet
Dim Critère1 As String, Critère2 As String, MotsClés As String
' Sort de la procédure si le nombre de cellules modifiées > 1
If Target.Count > 1 Then Exit Sub
' Si la modification n'est pas effectuée dans une des 2 cellules B1:B2, on sort
If Intersect(Target, Range("A3:O4")) Is Nothing Then Exit Sub
' Sinon
' inscrire le critère correctement
Application.EnableEvents = False
If Target.Value <> "" Then
If Not IsDate(Target) Then
Target = "*" & Replace(Target, "*", "") & "*"
End If
End If
Application.EnableEvents = True
' Définir la feuille contenant les critères de recherche
Set ShtR = Sheets("Recherche")
' Avec la feuille BDD
With Sheets("BDD")
' Supprimer le filtrage
On Error Resume Next
.ShowAllData
On Error GoTo 0
' Trouver le numéro de la dernière ligne remplie
DLig = .Range("A" & Rows.Count).End(xlUp).Row
' Filtrer les lignes
.Range("A1:O" & DLig).AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=ShtR.Range("A2:O4"), Unique:=False
' Activer la feuille
.Activate
End With
End SubFichier avec code modifié ci-joint
A+
ReBonjour!
Ce que tu veux me dire, c'est que pour avoir une recherche par "et" (mot clé 1 affiné par mot clé 2), j'ai juste a copier, coller la colone mot clé??? Est ce que c'est possible de faire ca???
Je récapitule: si on rajoute une ligne avec la formule en dessous (comme tu l'as fait dans le fichier joint) automatiquement ca fera une recherche de mot clé par "ou",(mot clé 1 OU mot clé 2).
Moi ce qui m'interresse c'est le ET pour affiner la recherche (quoi qu'il est très interressant d'avoir les deux "OU et ET en fait). Donc si je copie la colone de recherche "mot clé" et que je l'insere juste apres, est ce que automatiquement ca va prendre en compte la formule ET??? Si non peux tu me faire un tout petit tutoriel pour que j'essaye de le faire par moi même? si tu as le temps bien sûr!!!!!! Suis exeptionnelement nulle (je pense à acheter Excel pour les nuls!)
Cordialement
BrunoM45 a écrit :Bonjour Amorelia
Avec un peu de code VBA dans une feuille "Recherche" créée spécialement
Pour voir le code ALT+F11
A+
Bonjour,
ce que vous avez fait sur ce fichier excel m'interesse mais quand je regarde en détaille le VBA, je suis dans l'incipacité de le reproduire pour l'appliquer à ma situation. Pourriez vous, de manière simple, détailler comment vous le faite pour que je puisse le reproduire, ce serait top!!!
Bonjour Claire et
Parce-que mon code n'est pas assez détaillé
Je ne sais pas comment faire plus
bonjour,
Je cherche à faire la même chose mais avec un fichier excel à plusieurs onglets en guise de base de données. est-il possible de supprimer les deux étoiles pour avoir le mot clé. Pouvez vous m'envoyez le code avec le nom du fichier à compléter.