Bonjour à toutes et à tous,
je cherche à automatiser la mise à jour de l'année dans des TCD (2 années superposées). Comme j'en ai en très grand nombre (1 par feuille), c'est terriblement fastidieux de devoir activer la feuille et sélectionner les deux années …
Je compte donc (ultérieurement) mettre dans une boucle le code ci-dessous mais ça coince quand l'année n'existe pas …
Question 1
Même avec une année présente dans la base, j'obtiens un bug (ex : année 2011)
Je ne trouve pas pourquoi … (car pour d'autres, ça marche)
Question 2
Y a-t-il moyen de restreindre la saisie aux seules années présentes dans "Source"
Je pensais définir la colonne F de la feuille "Source" comme par ex Periode puis mettre en œuvre une boucle du type for each cellule in Periode … mais je ne m'en sors pas …
Quelqu'un a-t-il une idée comme faire ?
PS : ma question est une adaptation du fil ouvert hier et auquel francedemo (que je salue au passage) avait répondu. Mais comme ça n'est plus exactement le même besoin, j'ai préféré ouvrir une nouvelle question
Merci d'avance
je cherche à automatiser la mise à jour de l'année dans des TCD (2 années superposées). Comme j'en ai en très grand nombre (1 par feuille), c'est terriblement fastidieux de devoir activer la feuille et sélectionner les deux années …
Je compte donc (ultérieurement) mettre dans une boucle le code ci-dessous mais ça coince quand l'année n'existe pas …
Question 1
Même avec une année présente dans la base, j'obtiens un bug (ex : année 2011)
Je ne trouve pas pourquoi … (car pour d'autres, ça marche)
Question 2
Y a-t-il moyen de restreindre la saisie aux seules années présentes dans "Source"
Je pensais définir la colonne F de la feuille "Source" comme par ex Periode puis mettre en œuvre une boucle du type for each cellule in Periode … mais je ne m'en sors pas …
Quelqu'un a-t-il une idée comme faire ?
PS : ma question est une adaptation du fil ouvert hier et auquel francedemo (que je salue au passage) avait répondu. Mais comme ça n'est plus exactement le même besoin, j'ai préféré ouvrir une nouvelle question
Merci d'avance
Code:
Sub Question_Année()
Dim pItem As PivotItem
Dim AnnéeRéponse As Long
Dim AnnéeAvantRéponse As Long
AnnéeRéponse = Application.InputBox("Donnez l'année souhaitée", Type:=1)
AnnéeAvantRéponse = AnnéeRéponse - 1
With ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Année")
For Each pItem In .PivotItems
If pItem.Name = AnnéeRéponse Or pItem.Name = AnnéeAvantRéponse Then
pItem.Visible = True
Else
pItem.Visible = False
End If
Next
End With
End Sub