Macro filtre sur tcd

Bonjour à tous,

Dans le cadre de mon travail je réalise divers indicateurs , je souhaiterais faire évoluée une macro, me permettant d'actualisé le TCD et de filtrer sur contient "2021".

Malheureusement je n'arrive pas a la faire marcher , en décortiquant via l'enregistreur de macro et divers recherche sur les forums… je pense qu'il faut rajouter des variable ?

Public Sub Archiver_chargecapar()
Dim ws As Worksheet
Dim a, b()
Dim Answer As VbMsgBoxResult
Dim i As Long
    Set ws = Worksheets("INDICATEUR CHARGE-CAPA REALISA")
    a = Split("F5 F7 I12 J2 k3")
    For i = 0 To UBound(a)
        If IsEmpty(ws.Range(a(i))) Then
            MsgBox "Pour archiver la semaine merci de remplir tous les champs.", 64, "Information"
            Exit Sub
        End If
    Next i
    Answer = MsgBox("Etes-vous certain de vouloir archiver la semaine ?", vbYesNo, "Demande de confirmation")
    If Answer = vbNo Then Exit Sub
    ReDim b(UBound(a))
    For i = 0 To UBound(a)
        b(i) = ws.Range(a(i)).Value
    Next i
    With ws
        i = .Cells(.Rows.Count, 15).End(xlUp).Row + 1
        .Cells(i, 14).Resize(, UBound(a) + 1).Value = b
    End With
    MsgBox ("Semaine archivée")

    ' permet actualiser le tcd taux de charge

ActiveWorkbook.RefreshAll

End Sub

et

    ActiveSheet.PivotTables("Tableau croisé dynamique16").PivotCache.Refresh
    With ActiveSheet.PivotTables("Tableau croisé dynamique16").PivotFields("N° sem" _
        )
        .PivotItems("2021/S19").Visible = True
    End With

Comment faire pour compiler les 2? svp

Merci d'avance

Cordialement

Bonjour,

Sans le fichier ....

Essayez en remplaçant la ligne

ActiveWorkbook.RefreshAll

par

    With ActiveSheet.PivotTables(1)
        .ClearAllFilters
        .PivotFields("N° sem").PivotItems("2021/S19").Visible = True
        .PivotCache.Refresh
    End With

Cordialement

Bonjour Dan,

merci pour ton aide ,

Je vient de changée la phrase , malheureusement , il me marque impossible de lire la Pivot Tables..

Dsl, effectivement je vais travail sur une version test , sans données confidentiels .

je continue les recherches , ^^

Dan,

j'ai trouvée ^^

voici le code

With Worksheets("INDICATEUR CHARGE-CAPA REALISA").Select

    ActiveSheet.PivotTables("r").PivotCache.Refresh
    ActiveSheet.PivotTables("r").PivotFields("N° sem").ClearAllFilters
    ActiveSheet.PivotTables("r").PivotFields("N° sem").PivotFilters.Add2 Type:= _
        xlCaptionContains, Value1:="2021"

    End With

j'ai rajouter le

Worksheets

Merci encore 

bonne journée 

re

Avec le select dans la ligne WITH, pas sûr que cela fonctionne. Par contre vous pouvez mettre le code comme ceci

With Worksheets("INDICATEUR CHARGE-CAPA REALISA")
    .Select
    .PivotTables("r").PivotCache.Refresh
    .PivotTables("r").PivotFields("N° sem").ClearAllFilters
    .PivotTables("r").PivotFields("N° sem").PivotFilters.Add2 Type:=xlCaptionContains, Value1:="2021"
End With

ou mieux sans le SELECT dont vous pouvez vous passer

With Worksheets("INDICATEUR CHARGE-CAPA REALISA").PivotTables("r")
    .PivotCache.Refresh
    With .PivotFields("N° sem")
        .ClearAllFilters
        .PivotFilters.Add2 Type:=xlCaptionContains, Value1:="2021"
    End With
End With

Cordialement

Rechercher des sujets similaires à "macro filtre tcd"