Extraire des lignes dans une nouvelle feuille pour chaque critère

toubib

XLDnaute Nouveau
Bonjour,

Après plusieurs semaines d'essais et de tests, je dois considérer que je ne suis pas doué pour le VBA Excel.

Je possède une base de données sur laquelle je dois faire une recherche selon 1 à 3 critères. Pour commencer, j'ai tenté d'écrire une recherche par 1 critère mais je n'y arrive pas. Avant de vous déranger, j'ai consulté toutes les discussions sur le forum autour de ce sujet et c'est celui-ci qui se rapproche le plus de ce dont j'ai besoin (https://www.excel-downloads.com/threads/extraire-des-lignes-contenant-un-mot.68065/).

Néanmoins, en transposant le code, je n'obtiens pas de résultat.
Mon souhait serait :
1 - d'ouvrir une boite de dialogue dans laquelle j'inscrirai mon critère, permettant d'extraire dans la feuille n+1, dont l'onglet prendrait alors le nom du critère, les lignes sélectionnées à partir d'une donnée de la colonne L,
2 - puis d'ouvrir une nouvelle boite de dialogue pour faire une nouvelle extraction à partir de la colonne M de cette feuille, pour extraire les lignes correspondant à un critère de la colonne M et les copier dans une nouvelle feuille nommée par ce deuxième critère.
3 - puis d'ouvrir une dernière boite de dialogue pour faire une dernière extraction dans une nouvelle feuille, à partir d'un critère de la colonne N de la précédente feuille.

J'imagine que c'est lourd mais j'ai espoir ...
J'espère aussi avoir été clair.
Voici où j'en suis

En remerciant par avance toutes les aides
Cordialement,
Toubib
 

Pièces jointes

  • Essai recherche malade.xlsm
    39.8 KB · Affichages: 56

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Extraire des lignes dans une nouvelle feuille pour chaque critère

Bonjour toubib,

Le code est globalement bon. Quelques erreurs à priori (pour ce que j'en ai compris):

les numéros des colonnes pour les différents critères n'étaient pas les bons.

Vous référencez une feuille "Feuil1" qui n'existe pas.

Après l'application du premier critère, vous gardiez la même variable critère pour les critères 2 et 3.
Or pour référencer les feuilles déjà créées, il faut conserver dans d'autres variables les critères (donc le nom des feuilles d'extraction correspondantes) déjà utilisés:
Critere correspond au premier critère et la feuille d'extraction est Sheets(Critere)
Critere2 correspond au deuxième critère et la feuille d'extraction est Sheets(Critere2)
Critere3 correspond au troisième critère et la feuille d'extraction est Sheets(Critere3)

J'ai créé une feuille de menu pour effacer (si on le désire) les feuilles d'extraction déjà créées (sinon c'est vite le bazar me semble-t il)
 

Pièces jointes

  • Essai recherche malade v1.xlsm
    39.4 KB · Affichages: 113

toubib

XLDnaute Nouveau
Re : Extraire des lignes dans une nouvelle feuille pour chaque critère

Bonsoir mapomme, ou devrais-je dire Monsieur mapomme ;-)

Je dois d'abord vous remercier pour votre aide très précieuse, à la fois pour la correction du code, mais aussi pour les explications sur les corrections apportés.
Mais ce n'est pas suffisant !
Je dois aussi avouer que je suis impressionné par la rapidité de votre réponse et la gentillesse dont vous faites preuve par vos explications.

Je voulais, au départ, pouvoir faire une recherche multi-critère pour chacun des trois champs étudiés successivement. En revanche, je ne sais pas si c'est possible avec le VBA Excel.
Sans vouloir aucunement abuser, pourriez-vous me dire si c'est possible et, le cas échéant, me dire comment faire ?

Néanmoins, votre aide est déjà irremplaçable (y compris le petit plus pour faire le ménage du bazar :) et j'espère que le code servira à d'autres personnes qui seront dans le même besoin que moi.

Bien cordialement,
Toubib
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Extraire des lignes dans une nouvelle feuille pour chaque critère

Bonsoir toubib,

Je voulais, au départ, pouvoir faire une recherche multi-critère pour chacun des trois champs étudiés successivement. En revanche, je ne sais pas si c'est possible avec le VBA Excel.
Sans vouloir aucunement abuser, pourriez-vous me dire si c'est possible et, le cas échéant, me dire comment faire ?
Toubib
Je ne comprends pas bien votre demande. Actuellement vous faites trois recherches à la queue-leu-leu. Souhaitez-vous en fait n'avoir qu'une seule fenêtre, saisir les trois critères en même temps et n'avoir qu'une feuille résultat ?
 

toubib

XLDnaute Nouveau
Re : Extraire des lignes dans une nouvelle feuille pour chaque critère

Bonsoir mapomme,

Je suis désolé de n'avoir pas été assez clair.

Effectivement, actuellement mes besoins concernent une requête en trois étapes. Cependant, j'aurai probablement besoin d'effectué pour la première étape une recherche sur deux mots (deux critères présents dans le même champ) voire plus (autrement dit, deux maladies présentes chez le même patient, voire plus), ce qui nécessiterait une boite de dialogue avec deux ou trois cases à remplir (ou une seule à remplir d'ailleurs), ou bien une boite identique à l'actuelle, ou je pourrais remplir deux mots séparés par un signe.
Il en va de même pour l'étape du traitement où j'aurai besoin de faire une recherche sur plusieurs médicaments (jusqu'à trois), pour l'étape deux de la requête.
Et, enfin, il en va de même pour les examens réalisés, qui peuvent être nombreux et dont la recherche peut nécessiter quatre critères.

Je crains que cela ne soit pas possible.

Merci encore une fois pour votre implication et votre gentillesse.
Bien cordialement,
toubib
 

Discussions similaires