Compter le nombre d'une variable pour intégrer une barre de progression

Bonjour au forum,

Je cherche à intégrer une barre de progression pour une macro me permettant de filtrer dans un TCD, la procédure étant longue et les utilisateurs plutôt impatients...

Voici le code me permettant de filtrer :

Sub Filtre()

Dim ptTot As PivotTable
Dim pi As PivotItem
'----------------------------------------------------------------
Application.ScreenUpdating = False
'----------------------------------------------------------------
    Set ptTot = Sheets("Traitement CE").PivotTables("TCDCE_Total")
'----------------------------------------------------------------
        With ptTot.PivotFields("Destination")
            .ClearAllFilters
            .EnableMultiplePageItems = True
            For Each pi In ptTot.PivotFields("Destination").PivotItems
                'On Error Resume Next
                If Not IsNumeric(pi.Name) Then
                    pi.Visible = True
                Else: pi.Visible = False
                End If
                'On Error GoTo 0
            Next pi
        End With
'----------------------------------------------------------------
    Set ptTot = Nothing
'----------------------------------------------------------------
Application.ScreenUpdating = True
'----------------------------------------------------------------
End sub

Auriez-vous une proposition pour cela ?

Merci d'avance !

bonjour,

une proposition (non testée)

Sub Filtre()

Dim ptTot As PivotTable
Dim pi As PivotItem
Dim ctr As Long
Dim npi As Long
'----------------------------------------------------------------
Application.ScreenUpdating = False
'----------------------------------------------------------------
    Set ptTot = Sheets("Traitement CE").PivotTables("TCDCE_Total")
'----------------------------------------------------------------
        With ptTot.PivotFields("Destination")
            .ClearAllFilters
            .EnableMultiplePageItems = True
            ctr = 0
            npi = ptTot.PivotFields("Destination").PivotItems.Count
            For Each pi In ptTot.PivotFields("Destination").PivotItems
            ctr = ctr + 1
            Application.StatusBar = "pourcentage : " & Format(ctr / npi, "0.00 %")
                'On Error Resume Next
                If Not IsNumeric(pi.Name) Then
                    pi.Visible = True
                Else: pi.Visible = False
                End If
                'On Error GoTo 0
            Next pi
        End With
'----------------------------------------------------------------
    Set ptTot = Nothing
'----------------------------------------------------------------
Application.ScreenUpdating = True
'----------------------------------------------------------------
End Sub

Bonjour H2SO4,

Merci pour ta réponse.

J'ai adapté ton code à mon fichier et cela fonctionne très bien !

Merci beaucoup et excellente journée à toi !

Petite question supplémentaire, au cas où...

Serait-il possible d'optimiser la durée de traitement de cette macro ?

elle dure environ 1min30sec et j'en ai 3 à lancer à la suite...

Rechercher des sujets similaires à "compter nombre variable integrer barre progression"