Filtrer un TCD par date avec une macro

Bonsoir à tous,

J'ai un TCD " tab_dyn_1 " sur la feuille " Rapport consultation " de mon classeur ci-joint, avec des données que j'aimerais filtrer par date en écrivant les date dans les cellules B2 et C2 puis en cliquant sur le bouton filtrer. Il paraît que se serait très facile avec les Userform mais je ne m'y connais pas.

Pour se faire, j'ai pioché une macro sur le forum et je l'ai adapté à mon classeur, je l'y ai nommé "aTrier_tab_dyn_1" mais ça ne marche pas comme je veux. Juste parce que je ne comprend trop bien le langage vba.

Cette macro est censé aller chercher les données sur la feuille "Pour rapport" mais hélas ça ne me donne pas le résultat souhaiter

Voici un aperçu de ma macro

Sub aTrier_tab_dyn_1()
Application.ScreenUpdating = False
'
Dim pi As PivotItem
Dim pt As String
Dim feuille As Worksheet

Set feuille = Worksheets("RAPPORT CONSULTATION")

pt = "tab_dyn_1" 'nom du TCD en A4
With feuille.PivotTables(pt).PivotFields("DATES")
    .ClearAllFilters
    .EnableMultiplePageItems = True
    '.CurrentPage = "(All)" 'ou TOUS
    .AutoSort xlAscending, "DATES"
End With

With Worksheets("POUR RAPPORT")
        For Each pi In feuille.PivotTables(pt).PivotFields("DATES").PivotItems
            On Error Resume Next
            If .Range("A1:A" & .Range("A" & Rows.Count).End(xlUp).Row).Find(pi, LookIn:=xlValues, LookAt:=xlWhole).Row > 0 Then

                If Err = 0 Then
                    pi.Visible = True
                Else: pi.Visible = False
                End If
            End If
        Next pi
    End With

End Sub

Merci de bien vouloir m'aider.

Bonjour, pourquoi ne pas utiliser le filtre avancé ? Avez-vous envisagé cette possibilité ?

Salut machin,

Je ne l'ai pas essayé puisque je ne sais comment le faire pour un TCD...

Pourrais tu m'aider à le faire?

Merci

bonjour en attendant qu'un expert passe par là vous pouvez essayer ceci

Sub test()
  Dim i
  With Feuil2
    For i = .Cells(Rows.Count, 1).End(xlUp).Row To 5 Step -1
      If .Cells(i, 1) <= .[C2] And .Cells(i, 1) >= .[b2] Then
        .Cells(i, 1).Delete
      End If
    Next
  End With
End Sub

ou en b2 et c2 il y a date de debut et de fin

Rechercher des sujets similaires à "filtrer tcd date macro"