Bonjour,

Ma précédente demande n'a pas rencontré un franc succès, j'espère que celle-ci ne subira pas le même outrage.

Ci-dessous une portion de programme qui me permet de sélectionner dans un TCD l'exercice (année) à imprimer.
Tout fonctionne bien excepté si pour une quelconque raison (sortie brutale) toutes les années n'ont pas été ré affichées en sortant.
Exemple : si j'ai 2011 ,2012 , 2013 , 2014 et que je suis sorti avec seulement 2014 visible, il y a plantage.

Ce que fait ce programme:
- Il masque toutes les années dans la boucle
- Il affiche l'année demandée (v_annee) hors de la boucle

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Années")
        ShtO.Activate     ' Feuille base de données
        n_annee = Year(Cells(vDebutImpr, 3)) 'initialisation à la première année dans TCD ' n_année $ première année dans base de donnée
        ShtS.Activate  ' feuille YCD
        Do While n_annee < Year(Date)
            .PivotItems(CStr(n_annee)).Visible = False
            n_annee = n_annee + 1
        Loop
        .PivotItems(CStr(vAnnee)).Visible = True  'v_annee = année à imprimer préalablement sélectionné
    End With
Avant de quitter je ré affiche bien entendu toutes les années en situation normale.

QUESTION : Y a-t-il une méthode plus simple voire plus propre de faire ce travail

Merci
Paul