Moteur de recherche

zvodskaya

XLDnaute Junior
Bonjour a tous,
est il possible de créer un userform dans le quel on inscrit des critères des recherches pour retrouver des données.
Je vous joint un tableau et m'explique....

http://cjoint.com/?hzt3hSq3Mc

Dans ce tableau je selectionne la colonne ou s'effetuera la recherche puis je saisi un mot clef, par exemple destinataire, puis dans mon petit moteur de recherche je saisi "bob l'ep" par exemple et hop il me sort sur une autre feuille toutes les lignes ou "bob l'ep" apparait....
est-ce possible ??suis-je clair???
Merci
 

KIM

XLDnaute Accro
Re : Moteur de recherche

Bonjour Informatixo, et le forum,
Merci pour ta disponibilité et ta version3. Je l'ai testé ce matin.
Si tu as le temps (merci d'avance) est-ce possible de:
1- Dans le cadre Critères Recherchés, rajouter devant chaque mot sélectionné, sa colonne correspondante?
2- J'ai remarqué que je ne peux pas sélectionner plusieurs mots dans une meme colonne, c-à-d je selectionne la colonne "Destinataire" ensuite le mot "Michel", de nouveau la colonne "Destinataire " et un autre mot, il ne trouve rien. Cela correspond -il à la logique de ce moteur de recherche de ne selectionner qu'une seule fois la colonne et un seul mot par colonne?

2a: Dans ce cas est-il possible de remplacer le bouton "Rechercher" par 3 boutons:
Bt1: vider (effacer) tout le contenu de la feuille 2 afin d'initialiser une nouvelle recherche.
Bt2: Rechercher : C'est le module "Rechercher" de la V3 mais sans les totaux des colonnes. Cela permettra de refaire une ou plusieurs selections multicolonnes et rajouter le resultat à la suite dans la feuille 2.
Bt3: qui fait le total des colonnes de la feuille 2.

Cette solution ci-dessus me permet de resoudre une selection multiple par colonne qui est , je pense, plus compliquée à mettre en oeuvre. Exemple je recherche les lignes qui correspondent à:
Destinataire: bob l'ep OU patrick l'et
ET
Descriptif: Ordinateur OU voiture
Qu'en penses-tu?
En tout cas merci, la V3 est plus pratique de la V2
Est-ce possible de me creer les 3 boutons en attendant peut-etre la selection multiple par colonne.
Amicalement
KIM
 

informatixo

XLDnaute Occasionnel
Re : Moteur de recherche

Bonjour le fil,

2- Si, il est possible de sélectionner plusieurs mots dans la même colonne je viens de le vérifier.

2a bt1 Regarde le code et tu verras qu'avant chaque recherche il vide automatiquement la feuille 2.

Le reste je vais regarder.

A plus
 

informatixo

XLDnaute Occasionnel
Re : Moteur de recherche

Re,

Je joint la version 4 où les 2 colonnes sont gérées dans la liste. Ainsi que la correction d'un bug sur le type de données (entier / texte).

Le bouton "Rechercher" permet de nettoyer la feuille 2, lancer la recherche et inscrire les résultats puis de calculer les totaux.

Chaque fonction du code (nettoyage, recherche, etc.) est marqué par des commentaires et peut facilement se retrouver dans le code.

Je ne vois pas trop ce que tu veux obtenir comme résultat, mais avec ce que tu as dans le code tu devrais pouvoir aisément l'adapter à tes besoins.

A plus
 

Pièces jointes

  • Moteur de recherche v4.zip
    23.3 KB · Affichages: 74

KIM

XLDnaute Accro
Re : Moteur de recherche

Re,
Merci Informatixo pour ta reponse rapide, je teste la v4.
Peut etre me manque-t-il qqc pour la selction multiple.
Je selectionne Col Destinataire
ensuite mot Michel,
Rechercher me done les lignes trouvées dans Feuil2
Je selectionne Col Destinataire
ensuite mot Michel, puis patrick l'et
La recherche ne donne rien
J'utilise Excel v2002
Si ce probleme est resoolu, je pense qu'avec ton moteur de recherche on peut faire une recherche multicolonne, multimots.
Merci d'avance
Amicalement
KIM
 

informatixo

XLDnaute Occasionnel
Re : Moteur de recherche

Re,

Voici la version 5 corrigée. Désolé mais j'avais fais une omission dans mon traitement.

Ce classeur permet donc de rechercher un mot sur plusieurs colonnes (exemple : "1", "michel", "mouton") ou bien plusieurs mots sur une seule colonne (exemple : "michel", "patrick l'et").

Je me suis penché sur le problème un bon moment et j'ai laissé mon classeur ainsi car en fait il y a beaucoup de façon de trier et je pense qu'il faudrait voir la finalité que tu en veux.

En effet, une solution unique traitant de tous les cas possibles, serait à mon sens une "usine à gaz".

Regarde si cette version te conviens ou si tu ne peux pas l'adapter à tes besoins.

Si tu n'y arrives vraiment pas, expose-moi clairement ce dont tu as besoin et j'essaierais de trouver une solution.

A plus
 

Pièces jointes

  • Moteur de recherche v5.zip
    30 KB · Affichages: 72

KIM

XLDnaute Accro
Re : Moteur de recherche

Re,
Merci Informatixo,
Pour la version 5,
- Recherche multicolonnes avec 1 mot par colonne => OK
- Rechercher plusieurs mots d'une seule colonne => OK
- Recherche multicolonnes avec plusieurs mots dans une colonne => Aucun resultat.
Exemple Je selectionne :
Destinataire: Michel
Destinataire: bob l'ep
Pays d'origine: fra
==> Rien dans Feuil2
parcontre
Le resultat voulu:
ce sont la ligne 5 et 6 dans feuil2
Est-ce possible de traiter ce cas?
C'est ce qui manque à ma recherche
Merci d'avance
Amicalement
KIM
 

informatixo

XLDnaute Occasionnel
Re : Moteur de recherche

Bonjour le forum,

KIM à dit:
- Recherche multicolonnes avec plusieurs mots dans une colonne => Aucun resultat.

C'est normal c'est ce que j'ai dis dans mon dernier message, il faut l'adapter à tes besoins.

Après tu me parles de ligne 5 et 6 celà veut donc dire que tu veux qu'elle soit copié à chaque fois ?

Le tri peut être compliqué si l'on veut d'où l'idée de savoir précisement ce que tu veux. Par exemple tu peux avoir "michel" et "pat l'et" ou "bob l'ep" et "israel" ou "fra" et "etats unis" ou "maroc" ou "china" ...

Tu m'imagines donc vite sur ce dernier exemple que ce peut-être ingérable sans savoir ce que tu veux faire et là encore il y a que 6 lignes de données !

A plus
 

KIM

XLDnaute Accro
Re : Moteur de recherche

Bonjour Informatixo et le forum,
Effectivement
Tu as raison, le tri peur etre complexe pour une recherche multicolonnes multimots. Je vais me contenter d'une recherche multicolonnes avec 1 mot par colonne ou recherche multimots dans une colonne.
pour resoudre mon probleme, il faut faire plusieurs recherches à la suite et le resultat de chaque recherche doit s'afficher dans la feuil2 à la suite l'une de l'autre et à la fin un bouton pour sommer les colonnes necessaires.
Ainsi
- au demarrage de l'USF, la feuille2 se vide
- le bouton Rechercher rajoute chaque resultat à la suite dans feuille2
- un bouton supplementaire pour faire le total.
Qu'en pense-tu?
Merci d'avance si tu as le temps de modifier ton USF avec les boutons supplementaires, je ne manipule pas bien les USF.
Amicalement
KIM
 

informatixo

XLDnaute Occasionnel
Re : Moteur de recherche

Re,

Et bien oui pourquoi pas ça m'a l'air bien. Je vais donc effectuer les manipulations que tu me demandes.

En revanche, peut-être faudrait-il que je verrouille la recherche à un mot clé sur le multicolonne (qu'on ne puisse en sélectionnez qu'un par colonne) et plusieurs mots par colonne sur l'unicolonne (qu'on ne puisse pas choisir d'autres colonnes) ?

Ainsi, il n'y aurait pas d'erreur possible lors de la sélection des informations. Cependant, tu me dis que tu veux ajouter le résultat des recherches au fur et à mesure dans la feuille 2 mais n'as-tu pas peur d'obtenir des doublons ?

Pour ce qui est des UserForm, si tu as un peu de temps, tu peux regarder le code et essayer à ton tour de programmer quelque chose. Le VBA est très intéressant :D

J'attends donc tes réponses à mes 2 questions pour me mettre à la version 6.

A plus
 

KIM

XLDnaute Accro
Re : Moteur de recherche

Re,
Mille mercis d'avance,
1- oui, je pense qu'il faut verrouiller la recherche selon le mode de selection. avec un message à l'ecran si la saisie n'est pas respectée.
2- Rien ne sert de courir ... je n'ai pas pensé à la gestion des doublons lors de la recopie des lignes trouvées dans la feuille2. Merci d'y avoir pensé et de l'intégrer dans ton code.
Amicalement
KIM
 

informatixo

XLDnaute Occasionnel
Re : Moteur de recherche

Bonjour le forum,

J'ai repris l'analyse du problème de départ et en fait je suis revenu dans l'optique de départ qui est de faire des tris sur plusieurs colonnes et sur une seule à la fois.

Je te joins donc cette version 6 et te demandes de la tester avec tous les tris imaginables que tu voulais effectuer au départ.

Cette fois : "1" (pour code douanier) avec "michel" et "pat l'et" (pour le destinataire fonctionne.

A plus
 

Pièces jointes

  • Moteur de recherche v6.zip
    31.6 KB · Affichages: 75

KIM

XLDnaute Accro
Re : Moteur de recherche

Re,
Mille Mercis, j'ai fait beaucoup de test et ça fonctionne tres bien.
J'ai essayé de lire ton code, il est assz compliqué pour moi.
Je me permets de poser 2 questions si c'est possible:
1- Mes données sont sur plusieurs colonnes (10, 20, d'autres 30 colonnes),
Est-ce que ton moteur de recherche est dynamique, c-a-d dans l'USF, il prend toutes les colonnes existantes de la feuille selectionnée, et pour chaque colonne la liste des mots existants? Cela me permet de generaliser son utilisation sans modif
Sinon je dois modifier le nombre de colonnes de la feuille des données dans ton code. Est-ce possible de declarer le nombre de colonne dans une variable?
Je n'aurais qu'à modifier la valeur de cette variable.
2- Dans un meme classeur, je peux avoir des données sur plusieurs feuilles.
Est-il possible pour ce meme code qui tourne bien sur une feuille, de rajouter dans l'USF le choix de la feuille dans laquelle la recherche doit etre faite?
Merci d'avance
Je vais relire le code pour essayer de le comprendre
Amicalement
KIM
 

informatixo

XLDnaute Occasionnel
Re : Moteur de recherche

Re,

De rien c'est normal de s'entraider !

Bon je vais répondre à tes questions :

1) Oui il est dynamique, mais sur cet exemple et vu que je ne connaissais pas son utilisation, j'ai simplifié en cherchant le titre des colonnes sur la ligne 2 si tu veux que ça recherche le titre des colonnes sur une autre ligne :

Code:
Private Sub UserForm_Initialize()
Dim int_compteur As Integer

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For int_compteur = 1 To Worksheets("Feuil1").Range("[COLOR=Red]A2[/COLOR]").End(xlToRight).Column
    frmMoteurDeRecherche.cmbColonne.AddItem (Worksheets("Feuil1").Cells(2, int_compteur).Value)
Next int_compteur

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

Dans le code ci dessus, il te suffit de changer le A2 en ce que tu veux.

2) Comme c'était à la base pour un exemple simple, j'ai malheureusement codé la nom de la feuille en "dur". Cependant, une solution simple consisterait à remplacer tous les "WorkSheets("Feuil1")" en "ActiveSheet".

ActiveSheet signifie "feuille active" sinon il est effectivement possible de modifier le nom des feuilles mais il faut le temps de le faire (lol).

Sinon pour l'idée du Active sheet ce serait pas mal ! Il te suffirait d'activer (en la sélectionnant) la feuille sur laquelle tu veux effectuer la recherche et après d'appeler le UserForm.

Je trouve que c'est plus simple que de choisir le nom de la feuille au début de l'utilisation de l'UserForm.

Avec l'ActiveSheet, il te suffit de sélectionner la feuille et de lancer l'UserForm.

Dis-moi ce que tu en penses et si tu as des questions n'hésites pas.

PS : pour faire afficher une UserForm en VBA, il te suffit de faire un NomUserForm.Show. Tu peux te servir d'un bouton sur la feuille, d'un bouton personnalisé de macro ou d'un menu pour lancer l'affichage de la feuille.

A plus
 

KIM

XLDnaute Accro
Re : Moteur de recherche

Re,
J'ai continué les tests.
1- les colonnes rajouitées sont prises en compte dynamiquement.
2- Pour faire les totaux de nouvelles colonnes j'ai dû modifier les code et rajouter la colonne à sommer.
en modifiant le code pour les totaux des nouvelles colonnes dans la boucle Select Case.
Dans ta v6, le cas 1 de mon precedent message est dèjà réglé.
Je pense à généraliser ton moteur de recherche pour l'ensemble de mes données sans avoir à modifier lo code. c-à-d le rendre complètement dynamique. Je ne sais pas si c'est possible.
Ton moteur de recherche est utilisable avec peu de modification selon mes données. Merci beaucoup.
Seulemnt si tu es disponible est-il possible:
a- rajouter un bouton dans l'USF qui donne la liste des feuilles du classeur et qui permet de selectionner la feuille source de Recherche.
b- penses-tu qu'il est possible de selctionnes dans l'USF les colonnes à sommer?
Bien amicalement
KIM
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 519
dernier inscrit
Thomas_grc11