OVH Cloud OVH Cloud

TCD et VBA

2 réponses
Avatar
coco74
Bonsoir à tous,

Dans un TCD ou je gère (entre autres) des années en ligne, je cherche à
faire la chose suivante :
- l'utilisateur choisi une année dans une liste déroulante puis clique
sur un bouton : ca, c'est fait !
- je voudrais que n'apparaisse automatiquement QUE l'année choisie + n-1
+ n-2.

Pour l'instant, rien ne fonctionne !

Qui peut m'aider ?

2 réponses

Avatar
Mytå
Salut le Forum

Coco74 une façon de faire

Sub Macro()

Dim Annee As Byte

Trouve = 2005 'Valeur liste déroulante

With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Ligne")

For Annee = 1 To .PivotItems().Count
If Val(.PivotItems(Annee).Name) = Trouve Or _
Val(.PivotItems(Annee).Name) = Trouve - 1 Or _
Val(.PivotItems(Annee).Name) = Trouve - 2 _
Then
.PivotItems(Annee).Visible = True
Else
.PivotItems(Annee).Visible = False
End If
Next Annee

End With

End Sub

Mytå
Avatar
coco74
Merci de ton concours Mytå,

En executant ton code, voilà ce qui se passe :
- il efface tous les items des années et plante sur
Then
.PivotItems(Annee).Visible = True

Je suis débutant en VBA et je ne trouve pas ou ça coince !

Une idée ?


"Mytå" a écrit dans le message de news:

Salut le Forum

Coco74 une façon de faire

Sub Macro()

Dim Annee As Byte

Trouve = 2005 'Valeur liste déroulante

With ActiveSheet.PivotTables("Tableau croisé
dynamique1").PivotFields("Ligne")

For Annee = 1 To .PivotItems().Count
If Val(.PivotItems(Annee).Name) = Trouve Or _
Val(.PivotItems(Annee).Name) = Trouve - 1 Or _
Val(.PivotItems(Annee).Name) = Trouve - 2 _
Then
.PivotItems(Annee).Visible = True
Else
.PivotItems(Annee).Visible = False
End If
Next Annee

End With

End Sub

Mytå