Sélection de lignes suivant plusieurs critères

jlbox

XLDnaute Nouveau
Bonjour à tous,

Novice dans le monde des macros, je voudrais savoir comment sélectionner des lignes qui respectent certaines conditions pour les copier et les coller dans une autre feuille.

Ci-joint un exemple de ce que je voudrais obtenir.

J'ai mis une ligne de macro qui fonctionne correctement mais je voudrais aller plus loin càd que je voudrais que la macro aille cherche le ou les critières dans une cellule d'une feuille que l'on appelera "critère".

Merci pour votre aide
 

Pièces jointes

  • Extraction de ligne suivant une ou plusieurs variables.xls
    19 KB · Affichages: 81

job75

XLDnaute Barbatruc
Re : Sélection de lignes suivant plusieurs critères

Bonjour jlbox,

Il est bien sûr toujours possible d'écrire, avec le critère en critere!A2 :

Code:
Range("A1").AutoFilter Field:=69, Criteria1:= Sheets("critere").Range("A2").Value

Possible aussi d'ajouter plusieurs lignes semblables avec des Field différents et d'autres critères.

A+

Edit : à la place de Range("A1") dans votre formule, j'imagine que vous mettez une plage...
 
Dernière édition:

jlbox

XLDnaute Nouveau
Re : Sélection de lignes suivant plusieurs critères

Bonjour Job 75,

Merci pour ta réponse. Cela correspond exactement à ce que je recherche.

Ci-joint ma macro avec ta suggestion.

Sans vouloir abuser de ton temps, peux-tu m'aider à améliorer cette macro càd :

Je dispose de 3 feuilles :
- PTEST0
- CRITERE
- EXTRACTION PTEST

--> La feuille active est donc CRITERE puisque c'est là que je rentre les conditions

Comment faire pour qu'il prenne les conditions de CRITERE, qu'il les applique à PTEST0 et qu'il mette le résultat dans EXTRACTION PTEST ?




Sub ExtraitVersExtractionPTEST0()

Sheets("EXTRACTION PTEST").Cells.Clear
If Not ActiveSheet.AutoFilterMode Then
Range("A8").AutoFilter Field:=69, Criteria1:=Sheets("PTEST0").Range("D2").Value

End If
ActiveSheet.AutoFilter.Range.Copy Sheets("EXTRACTION PTEST").Range("A1")
ActiveSheet.AutoFilterMode = False

End Sub

A +
 

job75

XLDnaute Barbatruc
Re : Sélection de lignes suivant plusieurs critères

Bonsoir,

Je ne vois pas ce que vous souhaitez faire. Le mieux serait de joindre une copie de votre fichier.

Les points suivants ne sont pas clairs :

1. Où se trouve le code de la macro ? Comment la lancez-vous ? A priori la feuille active peut-être quelconque...

2. Le critère est maintenant dans la feuille "PTEST0" et non pas dans la feuille "CRITERE". Qu'y a-t-il en D2 ?

3. Quel autre critère voulez-vous appliquer et sur quel champ ?

A+
 

jlbox

XLDnaute Nouveau
Re : Sélection de lignes suivant plusieurs critères

Bonsoir,

Ci-joint une copie de mon fichier.

La macro telle qu'elle est écrite actuellement prend les critères définis dans la feuille PTEST0 pour son extraction.

Je voudrais qu'elle aille prendre les critères dans la feuille CRITERE de façon à ce que PTEST0 ne contienne que des données.

Merci.

A+
 

Pièces jointes

  • TEST.xls
    30.5 KB · Affichages: 80
  • TEST.xls
    30.5 KB · Affichages: 81
  • TEST.xls
    30.5 KB · Affichages: 80

job75

XLDnaute Barbatruc
Re : Sélection de lignes suivant plusieurs critères

Bonjour jlbox, le forum,

Ci-joint le fichier modifié.

Le critère se trouve maintenant en CRITERE!B1.
J'ai mis la macro dans la feuille 'PTEST0". Elle se lance par Ctrl+A.
Dans le code j'ai supprimé If/End If qui à mon avis ne sert à rien, mais vous pouvez le remettre si vous y tenez.

Code:
Sub ExtraitVersExtractionPTEST0()
Sheets("EXTRACTION PTEST").Cells.Clear
AutoFilterMode = False
Range("A1").AutoFilter Field:=9, Criteria1:=Sheets("CRITERE").Range("B1").Value
AutoFilter.Range.Copy Sheets("EXTRACTION PTEST").Range("A1")
AutoFilterMode = False
End Sub
A+

Nota : vous avez bien vu que le champ "CELLULE" de "PTEST0" doit contenir du texte, bravo.
 

Pièces jointes

  • TEST.xls
    29.5 KB · Affichages: 115
  • TEST.xls
    29.5 KB · Affichages: 110
  • TEST.xls
    29.5 KB · Affichages: 116

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 089
Membres
103 464
dernier inscrit
Inconnu2