XL 2019 VBA - Autofilter - Prob: Copie toute la plage sans prendre en compte le filtre

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 !

Lolexcel

XLDnaute Nouveau
Bonsoir !

J'ai un souci avec la fonction Autofilter sur VBA. La macro copie toute la plage de données sans prendre en compte le critère. Je ne comprends vraiment pas d'où vient le problème, d'autant plus qu'appliquée sur une autre feuille avec un autre critère, elle fonctionne parfaitement -_-

Sub TAB_LegSelect()

Dim Derlig1&, Derlig2&

Derlig1 = Sheets("LegSelect").Range("A" & Rows.Count).End(xlUp).Row
If Derlig1 <= 2 Then DerligS = 2
Sheets("LegSelect").Range("A2:F" & Derlig1).Clear

With Sheets("ListTotalLeg")
.AutoFilterMode = False
Derlig2 = .Range("A" & Rows.Count).End(xlUp).Row
.Range("A2:E2").AutoFilter
.Range("$A$2:$E$" & Derlig2).AutoFilter Field:=5, Criteria1:="x"
.Range("$A$2:$C$" & Derlig2).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("LegSelect").Range("A2")
.AutoFilterMode = False
End With

End Sub


Une idée de ce qui coince ?

Merci d'avance !!
Lolexcel
 

Pièces jointes

Solution
Re

Quand tu copies copie juste !!! 😉
(CTRL C CTRL V est ton ami !!!) 🤣

Le bon code :

VB:
Sub TAB_LegSelect()

Dim Derlig&, Derlig2&

Derlig = Sheets("LegSelect").Range("A" & Rows.Count).End(xlUp).Row
If Derlig <= 2 Then Derlig = 2
Sheets("LegSelect").Range("A2:F" & Derlig).Clear

With Sheets("ListTotalLeg")
    .AutoFilterMode = False
    Derlig2 = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("A1:E1").AutoFilter
    .Range("$A$1:$E$" & Derlig2).AutoFilter Field:=5, Criteria1:="x"
    .Range("$A$2:$C$" & Derlig2).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("LegSelect").Range("A2")
    .AutoFilterMode = False
End With

End Sub

Et ton erreur :
Range("A2:E2").AutoFilter
.Range("$A$2:$E$"...
Re

Essaye comme ceci :
VB:
Sub TAB_LegSelect()

Dim Derlig1&, Derlig2&

Derlig1 = Sheets("LegSelect").Range("A" & Rows.Count).End(xlUp).Row
If Derlig1 <= 2 Then Derlig1 = 2
Sheets("LegSelect").Range("A2:F" & Derlig1).Clear

With Sheets("ListTotalLeg")
    .AutoFilterMode = False
    Derlig2 = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("A2:E2").AutoFilter
    .Range("$A$2:$E$" & Derlig2).AutoFilter Field:=5, Criteria1:="x"
    .Range("$A$2:$C$" & Derlig2).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("LegSelect").Range("A2")
    .AutoFilterMode = False
End With

End Sub

@Phil69970
 
Re

Quand tu copies copie juste !!! 😉
(CTRL C CTRL V est ton ami !!!) 🤣

Le bon code :

VB:
Sub TAB_LegSelect()

Dim Derlig&, Derlig2&

Derlig = Sheets("LegSelect").Range("A" & Rows.Count).End(xlUp).Row
If Derlig <= 2 Then Derlig = 2
Sheets("LegSelect").Range("A2:F" & Derlig).Clear

With Sheets("ListTotalLeg")
    .AutoFilterMode = False
    Derlig2 = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("A1:E1").AutoFilter
    .Range("$A$1:$E$" & Derlig2).AutoFilter Field:=5, Criteria1:="x"
    .Range("$A$2:$C$" & Derlig2).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("LegSelect").Range("A2")
    .AutoFilterMode = False
End With

End Sub

Et ton erreur :
Range("A2:E2").AutoFilter
.Range("$A$2:$E$" & Derlig2).AutoFilter Field:=5, Criteria1:="x"

au lieu de :
.Range("A1:E1").AutoFilter
.Range("$A$1:$E$" & Derlig2).AutoFilter Field:=5, Criteria1:="x"

@Phil69970
 
Mince, merci, ça fonctionne ! Prochaine fois, je n'essaye pas de trouver ce qui cloche, je copie-colle direct 😛

Par contre, je ne comprends pas pourquoi si l'AutoFilter est mis en ligne 1 ça fonctionne, et pas en ligne 2. Est-ce que tu pourrais m'expliquer stp ^^ ?
 
- 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
442
Réponses
4
Affichages
360
Réponses
10
Affichages
478
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
498
Réponses
6
Affichages
312
Réponses
3
Affichages
453
Retour