Problème de filtrage

Bonjour tt le monde

j'ai developpé le code suivant qui permet de faire ceci:

  • filtrer les lignes selon un ctitère bien determiné
  • selectionner l'ensemle filtré et le copier dans une autre feuille.
  • retour à la feuille principale et supprimer les resultats de la recherche.

le problème ici, qui m'a cassé la tête d'ailleurs, c'est que l'operation ne s'eefectue pas lorsqu'il n'existe pas d'éléments dans le fichier, qui n'apparaitront pas lors du filtrage et qui n'obeissent pas au critere, j'ai debogué le code , et dans ce cas on aura un saut vers le bout du code de l'erreur (vers la fin)

Sub Test()
Dim WsCible As Worksheet
Dim Plage As Range, PlageFiltree As Range
    Application.ScreenUpdating = False
    Set WsCible = Worksheets("feuille2")
    NextRow = WsCible.Cells(WsCible.Rows.Count, 1).End(xlUp).Row + 1
    With Worksheets("feuille1")
        Set Plage = .Range("A2:D" & .Range("A" & .Rows.Count).End(xlUp).Row)
        .Range("A1").AutoFilter
        .Range("$A$1:$D$3000").AutoFilter Field:=4, Criteria1:="critère1"
        On Error GoTo Gestion_erreur
        'Copier/Coller de la plage filtrée dans "feuille2"
        Plage.SpecialCells(xlCellTypeVisible).Copy WsCible.Cells(NextRow, 1)
    End With
    'Suppression de la plage filtrée dans "feuille1"
    Plage.EntireRow.Delete
    Worksheets("feuille1").Range("A1").AutoFilter
    Application.ScreenUpdating = True
    Exit Sub
Gestion_erreur:
    Worksheets("feuille1").Range("A1").AutoFilter
    Application.ScreenUpdating = True
End Sub

est ce que quelqu'un peut m'aider ? merci

Bonsoir,

Des bouts de code pour compter le nombre de lignes visibles après l'application d'un filtre

Cordialement

MsgBox Range("A1:A" & Range("A65536").End(xlUp).Row).SpecialCells(xlVisible).Count
MsgBox Feuil1.AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count
MsgBox Evaluate("=subtotal(3,A:A)")

un grand merci jean-Eric

Rechercher des sujets similaires à "probleme filtrage"