XL 2019 Ma fonction copier/coller en VBA ignore le filtre :/

casualexcel

XLDnaute Nouveau
Bonjour à toutes et à tous !

J'utilise un classeur composé de deux feuilles.
Sur une des feuilles j'importe des données grâce à un export internet.
Sur ma deuxième feuille j'utilise une macro qui va:
- appliquer un tri dans l'export
- copier des données et les coller dans l'autre feuille

J'utilise ce classeur depuis un moment et il a toujours fonctionné, cependant depuis que j'ai eu à décaler quelques colonnes cela ne fonctionne plus, le filtre est bien appliqué sur l'export mais le copier/coller copie toutes les données de l'export, même celles "cachées" par le filtre.

Merci pour votre temps !
 
Dernière édition:
Solution
Essaie ce code

VB:
Sub Macro1()

With Sheets("sheet2")
    fin = .Range("A" & .Rows.Count).End(xlUp).Row 'dernière ligne non vide de la colonne A
    .Range("A6:AZ" & fin).AutoFilter Field:=29, Criteria1:="YELLOW", Operator:=xlOr, Criteria2:="RED"
    .Range("A6:AZ" & fin).AutoFilter Field:=24, Criteria1:="YES"
    .Range("A6:AZ" & fin).AutoFilter Field:=28, Criteria1:="<75"

    .Range("F7:F" & fin).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets(1).Range("A11")
    .Range("AB7:AB" & fin).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets(1).Range("F11")
    .Range("AC7:AC" & fin).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets(1).Range("G11")
End With

End Sub

casualexcel

XLDnaute Nouveau
@vgendron
Ci joint le fichier exemple
En sheet 1 le tableau ou je viens coller mes données, le bouton run lance la macro (filtre la Sheet 2 + copie/colle des données de la Sheet 2 vers la Sheet 1)
le bouton clear sert à effacer les données

Je me retrouve avec des milliers de ligne au lieu d'une seule (seule ligne visible sur la sheet 2 après avoir lancé la macro)
Même si le vba employé ici est relativement primaire il fonctionnait parfaitement et ne prenait que les lignes filtrées

Merci à vous !
 

Pièces jointes

  • Book1.xlsm
    939.5 KB · Affichages: 6

casualexcel

XLDnaute Nouveau
Au fait, si le fichier exemple est trop complexe à utiliser je peux peut-être faire mieux, mais il n'y a que sur ce tableau que je rencontre un problème de filtre/vba, j'utilise les mêmes fonctions de filtre et de c/c pour d'autres tableaux et cela fonctionne à chaque fois
 

vgendron

XLDnaute Barbatruc
Essaie ce code

VB:
Sub Macro1()

With Sheets("sheet2")
    fin = .Range("A" & .Rows.Count).End(xlUp).Row 'dernière ligne non vide de la colonne A
    .Range("A6:AZ" & fin).AutoFilter Field:=29, Criteria1:="YELLOW", Operator:=xlOr, Criteria2:="RED"
    .Range("A6:AZ" & fin).AutoFilter Field:=24, Criteria1:="YES"
    .Range("A6:AZ" & fin).AutoFilter Field:=28, Criteria1:="<75"

    .Range("F7:F" & fin).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets(1).Range("A11")
    .Range("AB7:AB" & fin).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets(1).Range("F11")
    .Range("AC7:AC" & fin).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets(1).Range("G11")
End With

End Sub
 

casualexcel

XLDnaute Nouveau
Essaie ce code

VB:
Sub Macro1()

With Sheets("sheet2")
    fin = .Range("A" & .Rows.Count).End(xlUp).Row 'dernière ligne non vide de la colonne A
    .Range("A6:AZ" & fin).AutoFilter Field:=29, Criteria1:="YELLOW", Operator:=xlOr, Criteria2:="RED"
    .Range("A6:AZ" & fin).AutoFilter Field:=24, Criteria1:="YES"
    .Range("A6:AZ" & fin).AutoFilter Field:=28, Criteria1:="<75"

    .Range("F7:F" & fin).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets(1).Range("A11")
    .Range("AB7:AB" & fin).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets(1).Range("F11")
    .Range("AC7:AC" & fin).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets(1).Range("G11")
End With

End Sub
c'est bon pour moi merci !
J'ai réussi a refaire marcher mon code également, j'étais persuadé qu'il était OK mais il devait y avoir une typo...
 

Discussions similaires

Réponses
18
Affichages
1 K
Réponses
5
Affichages
387