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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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å
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
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å
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å
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å" <Myt@discussions.microsoft.com> a écrit dans le message de news:
FA3E66AC-8F33-4D6D-BCB0-A4DF88997449@microsoft.com...
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
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