Créer un moteur de recherche excel

Créer un moteur de recherche excel - VB/VBA/VBS - Programmation

Marsh Posté le 11-04-2014 à 11:21:50    

Bonjour
 
J'ai un tableau excel de plus de 20 000 lignes et je veux créer un moteur de recherche pour filtrer
 
ex:
dupond dentiste paris 75003 etc ...
albert plombier paris 75008
bernard dentiste serris 77700
etc...
 
Je veux mettre une case pour chaque critère afin que lorsque je tape paris
la ligne dupond et albert sorte ou que si je tape dentiste bernard et dupond sorte,
 
La fonction filtre ne répond pas à ma demande vu que je me suis retrouver avec plus de 300 critères de filtre et c'est pas évident pour les clients qui vont l'utiliser .....
 
merci pour votre aide

Reply

Marsh Posté le 11-04-2014 à 11:21:50   

Reply

Marsh Posté le 11-04-2014 à 11:38:59    

 
           Bonjour,
 
           effectuer un filtre manuellement en utilisant l'Enregistreur de macros pour avoir une base de code.
 
           Ensuite reste à remplacer le critère du filtre dans le code ainsi obtenu
           par le contenu de la case via  Target.Value  dans l'évènement de la feuille de calculs  Worksheet_Change
           en y testant l'adresse de la cellule modifiée via  Target.Address  …
 

Reply

Marsh Posté le 11-04-2014 à 11:39:41    

Sur les versions d'Excel >= 2007, dans les filtres, on peut saisir du texte et sélectionner un opérateur au lieu de passer par la sélection d'une valeur :/ Ca devrait le faire.
 
Après, Excel, c'est pas une BD :o Si on veut faire de la recherche d'infos un peu pointue, faut passer par un SGBD, type Mysql par ex ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 11-04-2014 à 11:41:12    

Marc L a écrit :

 
           Bonjour,
 
           effectuer un filtre manuellement en utilisant l'Enregistreur de macros pour avoir une base de code.
 
           Ensuite reste à remplacer le critère du filtre dans le code ainsi obtenu
           par le contenu de la case via  Target.Value  dans l'évènement de la feuille de calculs  Worksheet_Change
           en y testant l'adresse de la cellule modifiée via  Target.Address  …
 


Attention avec l'emploi de Worksheet_Change, on peut vite arriver à faire ramer grave Excel si on ne prend pas garde au code VBA qu'on met sur cet événement, surtout s'il s'agit de faire des recherches sur de nombreuses valeurs :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 11-04-2014 à 11:49:18    

 
           Je suis d'accord, il n'y a rien besoin de créer car Excel dispose déjà de tout le nécessaire !
 
           En ce qui concerne l'évènement, si l'adresse de la cellule modifiée est bien testée, pas de souci.
           Le mieux étant de nommer la cellule puis de comparer l'adresse du nom de cellule avec celle du Target.
           Utiliser un filtre étant rapide … Je me demande même si dans son cas le mieux ne serait pas un filtre avancé / élaboré …
 
           Et s'il y a une autre macro modifiant les données de la feuille de calculs en question,
           suffit de désactiver la détection d'évènements le temps de la macro …

Message cité 1 fois
Message édité par Marc L le 11-04-2014 à 11:50:01
Reply

Marsh Posté le 11-04-2014 à 12:21:09    

Bonjour tout le monde,
 
 
Merci pour votre retour,
franchement je ne m'y connais pas trop en VBA ni en excel ,si ce n'est pas trop demandé ....  :ange: est ce que quelqu'un pourra me donner les étapes à suivre ou m'envoyer un exemple de fichier
 
 
Merci encore

Reply

Marsh Posté le 11-04-2014 à 12:43:31    

Marc L a écrit :

 
           Je suis d'accord, il n'y a rien besoin de créer car Excel dispose déjà de tout le nécessaire !
 
           En ce qui concerne l'évènement, si l'adresse de la cellule modifiée est bien testée, pas de souci.
           Le mieux étant de nommer la cellule puis de comparer l'adresse du nom de cellule avec celle du Target.
           Utiliser un filtre étant rapide … Je me demande même si dans son cas le mieux ne serait pas un filtre avancé / élaboré …
 
           Et s'il y a une autre macro modifiant les données de la feuille de calculs en question,
           suffit de désactiver la détection d'évènements le temps de la macro …


Je pensais justement aux filtres avancés ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 11-04-2014 à 12:46:10    

medben a écrit :

Bonjour tout le monde,
 
 
Merci pour votre retour,
franchement je ne m'y connais pas trop en VBA ni en excel ,si ce n'est pas trop demandé ....  :ange: est ce que quelqu'un pourra me donner les étapes à suivre ou m'envoyer un exemple de fichier
 
 
Merci encore


On t'as donné la piste des filtres élaborés, donc pas de VBA. Rien empêche, quand tu distribues ton fichier aux utilisateurs, de leur donner une petite explication sur comment rechercher facilement tel ou tel type d'infos. En même temps, en entreprise, savoir se servir des fonctions de base de Word/Excel/Powerpoint, ça devrait être obligatoire :/
Quand je vois le temps que certains perdent pour faire une tâche qui serait torchée en  fois moins de temps s'ils savaient se servir de ces outils... :o


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 11-04-2014 à 17:25:08    

 
           C'est pas faux !
 
           Et j'ai l'impression qu'il cherche à ce qu'on lui fasse son travail car il a fait du cross posting un peu partout !
 
           Donc je m'en tiens aux filtres élaborés, il y a un tutoriel sur l'un des autres sites et un peu partout sur le web …
 

Reply

Marsh Posté le 11-04-2014 à 17:37:04    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed