Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

deux filtres silmutanément par VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

andrekn13

XLDnaute Occasionnel
Bonjour
je recherche syntaxe , si cela existe, pour sur seule instruction, obtenir le résultat de deux filtres et réduire au possible la syntaxe
ex:
With Sheets("1")
.Activate
Columns("A:I").Select
Selection.AutoFilter
Selection.AutoFilter Field:=9, Criteria1:="BONBON"
.Range(.[A2], .[A2].SpecialCells(xlLastCell)).Copy Destination:=Sheets("6").[A2]
.Range("A1").AutoFilter
End With
et ajouter Selection.AutoFilter un "et" "autre filtre sur colonne 2"
MERCI GRANDEMENT (je suis passé au début par FOR NEXT avec "like" et j' en passe !)
à celui qui peut me faire avancer
 
Re : deux filtres silmutanément par VBA

Bonjour,

Utilise l'enregistreur de macro avec tes deux conditions de filtre et tu en trouveras la syntaxe. Ensuite il suffira éventuellement d'adapter.

A+
 
Re : deux filtres silmutanément par VBA

Bonjour
j'avais fait cette solution dès le début, mais mon problème vient du fait que ma macro va devoir mesurer 1 km, vu ce que je doit faire. ça fait une semaine que je tourne en rond avec pleins de post sur d' autres questions, mais en fait c'est le même problème que je n' arrive pas à contourner.
 
Re : deux filtres silmutanément par VBA

Pour te répondre :
Selection.AutoFilter Field:=9, Criteria1:="FACTURE CARTE", Field:=2, Operator:= _
xlFilterValues, Criteria2:=Array(0, "1/31/2014")
cette syntaxe je l'ai inventé en supposant qu'elle est bonne .....
Si tu vois une solution je suis preneur
cordialement
 
Re : deux filtres silmutanément par VBA

bonjour à tous

je recherche syntaxe , si cela existe, pour sur seule instruction, obtenir le résultat de deux filtres et réduire au possible la syntaxe
une seule instruction pour filtrer selon deux valeurs sur une seule colonne : pas de problème
une seule instruction pour filtrer selon deux valeurs sur deux colonnes : pas possible
Il faut filtrer une fois la première colonne avec la première valeur et une deuxième fois sur l'autre colonne avec l'autre valeur comme l'indique le résultat de l'enregistreur de macro.

Au niveau syntaxe:
WorkSheets("Feuil1").Range("A1").AutoFilter Field:=N°Col, Criteria1:=moncritère

A+
 
Re : deux filtres silmutanément par VBA

ouah.. merci
et justement j' étais en train de me casser les dents sur le problème suivant en attendant de trouver mieux :
mon but est , après chaque "double filtre" , de copier ce résultat sur une autre feuille ( plus simple à mon niveau)
et ensuite, de refaire ce double filtre sur une date et catégorie différent, et ensuite de le mettre à la suite du 1er résultat
et encore......je tourne en rond

entre temps , je reprends ton code. c'est justement , plus un code est simplifié, moins on s' embrouille !
merci
 
Re : deux filtres silmutanément par VBA

re bonjour
Paf
merci de me répondre
en d' autres termes comment récupérer le résultat (le nommer) pour ensuite le recoller à la dernière ligne :
WorkSheets("Feuil1").Range("A1").AutoFilter Field:=N°Col, Criteria1:=moncritère
WorkSheets("Feuil1").Range("A6").AutoFilter Field:=N°Col, Criteria1:=moncritère

Selection.Copy
Sheets("8").Select
Cells(derligne, 1).Select
Selection.Copy
ne marche pas
 
Re : deux filtres silmutanément par VBA

Bonjour.
Il n'est pas évident qu'il faille passer par un filtre pour pouvoir coller successivement les lignes issues de plusieurs séries de choix à plusieurs critères. Un Userform pour sélectionner ces choix serait apprécié dans votre classeur joint au format .xls.
Je ne répondrai aux suites n'observant ma signature.
 
Re : deux filtres silmutanément par VBA

je comprends tout à fait
pour éviter de chercher ( un million d'essais) :

feuille BNP est mon model source
feuil8 est la copie de BNP (pour éviter de tout perdre)
feuil 7 est mon résultat souhaité
feuil 6 est une chouette présentation qui pourra me servir

dernier essai : macro "macro 16"
avant dernier "Sub essai_TRI_BNP_21()

merci
 

Pièces jointes

Re : deux filtres silmutanément par VBA

Bonjour DANREB
cela me fait plaisir d'avoir ton soutien, je te voit régulièrement sur le forum
Yaloo s'y est penché ( cf sa jolie macro) en page 6, mais depuis une semaine , je ne pensais pas que c'était si compliqué
cordialement
 
Re : deux filtres silmutanément par VBA

Faire un classeur modèle plus simple, avec une feuille source d'où on doit extraire certaines lignes, une feuille cible où il faut les empiler et Userform comportant un ComboBox pour chaque critère à sélectionner.
 
Re : deux filtres silmutanément par VBA

re bonjour à tous


Si le tableau en filtre automatique commence en A1, c'est le N° de la colonne à filtrer qui change
WorkSheets("Feuil1").Range("A1").AutoFilter Field:=1, Criteria1:=monpremiercritère
WorkSheets("Feuil1").Range("A1").AutoFilter Field:=6, Criteria1:=mondeuxièmecritère

une fois le tableau filtré, pour copier les éléments ( sur une seule ligne):

Worksheets("FeuilSource").Range("A1").SpecialCells(xlCellTypeVisible).Copy Worksheets("FeuilCible").Range("A2")
où A2 est la position du coin supérieur gauche de la copie

A+
 
Dernière édition:
Re : deux filtres silmutanément par VBA

Worksheets("FeuilSource").Range("A1").SpecialCells (xlCellTypeVisible).Copy Worksheets("FeuilCible").Range("A2")
Range("A2") : mais justement , à ce niveau je cherche "la dernière cellule vide de cette colonne"
mais comme la phrase est déjà compliquée je n' arrive pas à le faire, à chaque fois ma syntaxe est refusée
Sheets("8").Range(("A65535").End(xlUp)).Row + 1.select

en tout cas ton début de phrase est géniale
je t' envoie mon fichier
sur la feuille 8 il faut juste appeler la macro : Macro23encours()
de plus me copie les boutons 😡
 

Pièces jointes

Re : deux filtres silmutanément par VBA

re bonjour
j'essaye ça à la place (de range("A2") , et la franchement je panne :
Range("A" & Rows.Count).End(xlUp).Row
Merci de me répondre, je viens de transposer ton code sur la première étape : NICKEL !
 
Re : deux filtres silmutanément par VBA

Re

Code:
DerLigSource = Sheets("8").Range("A" & Rows.Count).End(xlUp).Row
...
...
DerLigCible = Sheets("7").Range("A" & Rows.Count).End(xlUp).Row + 1
Worksheets("8").Range("A2:I" & DerLigSource).SpecialCells(xlCellTypeVisible).Copy Worksheets("7").Range("A" & DerLigCible)

attention avec les nom de feuille type : "7", "8" ... si on oublie les guillemets

WorkSheets("8") et WorkSheets(8) ne donne pas forcément la même feuille.

A
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
653
Réponses
12
Affichages
1 K
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
615
Z
Réponses
1
Affichages
602
Réponses
1
Affichages
552
G
Réponses
7
Affichages
1 K
gfgghbhg
G
A
Réponses
2
Affichages
1 K
AntoineLTO
A
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…