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

re re

ci dessous le code de la macro 23encours jusqu'à la copie (pas touché au reste)
Code:
Sub Macro23encours()
Dim DerLigCible, DerLigSource, DerLigBNP

' copie de la feuille BNP OK
        'affichage de toutes les données
 If Not Sheets("BNP").AutoFilterMode Then Sheets("BNP").Range("A1:I1").AutoFilter
    Sheets("BNP").ShowAllData
        ' calcul dernière ligne BNP
    DerLigBNP = Sheets("BNP").Range("A" & Rows.Count).End(xlUp).Row
    Sheets("BNP").Range("A1:I" & DerLigBNP).Copy
    Sheets("8").Range("A1").PasteSpecial Paste:=xlPasteValues
 ' nous sommes donc toujours sur la feuille 8 donc
        'calcul dernière ligne feuille 8
 DerLigSource = Sheets("8").Range("A" & Rows.Count).End(xlUp).Row
        'activation du filtre
 If Not Sheets("8").AutoFilterMode Then Sheets("8").Range("A1:I1").AutoFilter
' Columns("A:I").AutoFilter
    ActiveSheet.Range("A1:I" & DerLigSource).Sort Key1:=Range("I1"), Order1:=xlAscending, Header:=xlGuess
    ActiveSheet.Range("A1:I" & DerLigSource).AutoFilter Field:=9, Criteria1:="CHEQUE N°"
    'ActiveSheet.Range("A1:I" & DerLigSource).AutoFilter Field:=2, Operator:= _
        xlFilterValues, Criteria2:=Array(0, "1/28/2014")
        
' copie de feuille 8  sur  feuille 7
DerLigCible = Sheets("7").Range("A" & Rows.Count).End(xlUp).Row + 1
Worksheets("8").Range("A1:I" & DerLigSource).SpecialCells(xlCellTypeVisible).Copy Worksheets("7").Range("A" & DerLigCible)
....
....
End sub

J'ai modifié la copie de BNP à 8:
-utilisation de PasteSpecial Paste:=xlPasteValues pour ne plus copier Forms et Boutons
- affichage de toutes les données de la feuille BNP avant copie

J'ai désactivé le tri sur le champ 2 qui posait problème sur Excel 2003.

Par ailleurs, pour éviter des décalages,j'ai complétés les titres absents des colonnes G,H,I de la feuille BNP

A près avoir terminé les tests, je m'aperçois que l'on copie la feuille BNP sur la feuille 8 qu'on filtre et le résultat est copié en feuille 7. On aurait pu directement filtrer la feuille BNP et copier le résultat en feuille 7 !!

A+
 
Dernière édition:
- 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
Retour