Macro filtrer supprimer les lignes

Bonjour,

Est ce que quelqu'un peut m'aider pour une macro SVP

J'au une base de données que je doit alimenter tous les jours. Idéalement je voudrais faire un filtre sur le mois en cours, supprimer les données filtrées pour recoller les données actualiser à la suite.

Alors je voudrais filtrer sur l'onglet "DATA" avec les critères dans l'onglet "Saisi" " C5 et C6 et supprimer les lignes .

j'ai essayé d'adapté un code que j'ai trouvé sur le forum mais ça marche pas pour moi.

Application.ScreenUpdating = False

Dim file As String

sh = Sheets("Saisie").Range("C5").Text

Th = Sheets("Saisie").Range("C6").Text

derlig = Cells(Rows.Count, 1).End(xlUp)

Set plage = Range("A3", Cells(derlig, 1))

critere1 = “sh”

critere2 = “Th”

With plage

.AutoFilter Field:=1, Criteria1:="sh" & critere1, Operator:=xlOr, Criteria2:="Th" & critere2

Rows(plage.Row + 1 & ":" & plage.Row + plage.Rows.Count - 1).Delete

.AutoFilter Field:=1

.AutoFilter

9test-macro.xlsb (9.26 Ko)

Bonjour,

Essayez ceci:

Sub Filtre()
    Dim file As String
    Dim Plage As Range
    Dim f1 As Worksheet, f2 As Worksheet
    Dim DerLig As Long, Annee As Long, mois As Long

    Application.ScreenUpdating = False
    On Error GoTo Sortie
    Set f1 = Sheets("Saisie")
    Set f2 = Sheets("DATA")
    DerLig = f2.Range("A" & Rows.Count).End(xlUp).Row
    Annee = f1.Range("C5").Value
    mois = f1.Range("C6").Value
    Set Plage = Range("A3", Cells(DerLig, 1))
    f2.Select
    If AutoFilterMode = False Then Range("A2:D2").AutoFilter
    With Plage
        .AutoFilter Field:=3, Criteria1:=mois
        .AutoFilter Field:=4, Criteria1:=Annee
         ActiveSheet.Rows("3:" & DerLig).SpecialCells(xlCellTypeVisible).Delete
        .AutoFilter
    End With
Sortie:
    Set Plage = Nothing
    Set f1 = Nothing
    Set f2 = Nothing
End Sub

Cdlt

Merci beaucoup pour l'aide. dsl d'avoir mis du temps pour répondre.

J'ai testé et ça marche bien.

top

Je relance le sujet paracerque j'ai un souci qui s'est pas déclaré tout de suite.

si un filtre est déjà présent sur la ligne de titre de la base de données. la macro ne marche pas.

est ce que c'est possible de m'aider sur ça SVP.

Merci

Bonjour,

Quelques petits ajustements:

Sub Filtre()
    Dim file As String
    Dim Plage As Range
    Dim f1 As Worksheet, f2 As Worksheet
    Dim DerLig As Long, Annee As Long, mois As Long

    Application.ScreenUpdating = False
    On Error GoTo Sortie
    Set f1 = Sheets("Saisie")
    Set f2 = Sheets("DATA")
    DerLig = f2.Range("A" & Rows.Count).End(xlUp).Row
    Annee = f1.Range("C5").Value
    mois = f1.Range("C6").Value
    Set Plage = f2.Range("A3", Cells(DerLig, 1))
    f2.Select
    If f2.AutoFilterMode Then
        isOn = "On"
    Else
        isOn = "Off"
        f2.Range("A2:D2").AutoFilter
    End If
    With Plage
        .AutoFilter Field:=3, Criteria1:=mois
        .AutoFilter Field:=4, Criteria1:=Annee
         ActiveSheet.Rows("3:" & DerLig).SpecialCells(xlCellTypeVisible).Delete
        .AutoFilter
    End With
Sortie:
    Set Plage = Nothing
    Set f1 = Nothing
    Set f2 = Nothing
End Sub

Cdlt

super, ça marche mieux. Merci beaucoup pour cette aide précieuse.

d'après ce que j'ai compris. maintenant il test s'il y a un filtre activé sinon il l'active .

Merci

Rechercher des sujets similaires à "macro filtrer supprimer lignes"