Bonjour à toutes et à tous,
ma question porte sur une boucle censée balayer les onglets d'un fichiers et intervenir sur plusieurs TCD.
Bien que je place un For Each WS In Worksheets terminant par un Next WS, mon code ne traite que l'onglet actif : c'est donc que la boucle ne boucle pas …
De plus, comme j'ai dupliqué les TCD par copie d'onglet, le nom est le même donc la boucle devrait appliquer les instruction au TCD nommé , et pourtant rien ne se passe au-delà de l'onglet actif …
Est-ce dû au fait que j'ai des onglets ne contenant pas de TCD (onglet "Ma question", onglet masqué "Source") et/ou à la structure de ma boucle ?
Quelqu'un a-t-il une idée sur la raison de cette paralysie ?
Merci d'avance pour votre sagacité
________________ le code _______________________________________
Sub Test_3()
Dim WS As Worksheet
Dim DateRéponse As Long
DateRéponse = Application.InputBox("A quel mois inclus voulez-vous restreindre l'affichage ?")
For Each WS In Worksheets ' on balaie les onglets
Application.ScreenUpdating = 0
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois")
.PivotItems("Janvier").Visible = True
.PivotItems("Février").Visible = True
.PivotItems("Mars").Visible = True
.PivotItems("Avril").Visible = True
.PivotItems("Mai").Visible = True
.PivotItems("Juin").Visible = True
.PivotItems("Juillet").Visible = True
.PivotItems("Août").Visible = True
.PivotItems("Septembre").Visible = True
.PivotItems("Octobre").Visible = True
.PivotItems("Novembre").Visible = True
.PivotItems("Décembre").Visible = True
If DateRéponse < 2 Then .PivotItems("Février").Visible = False
If DateRéponse < 3 Then .PivotItems("Mars").Visible = False
If DateRéponse < 4 Then .PivotItems("Avril").Visible = False
If DateRéponse < 5 Then .PivotItems("Mai").Visible = False
If DateRéponse < 6 Then .PivotItems("Juin").Visible = False
If DateRéponse < 7 Then .PivotItems("Juillet").Visible = False
If DateRéponse < 8 Then .PivotItems("Août").Visible = False
If DateRéponse < 9 Then .PivotItems("Septembre").Visible = False
If DateRéponse < 10 Then .PivotItems("Octobre").Visible = False
If DateRéponse < 11 Then .PivotItems("Novembre").Visible = False
If DateRéponse < 12 Then .PivotItems("Décembre").Visible = False
End With
Next WS ' on saute à l'onglet suivant
Application.ScreenUpdating = 1
End Sub
ma question porte sur une boucle censée balayer les onglets d'un fichiers et intervenir sur plusieurs TCD.
Bien que je place un For Each WS In Worksheets terminant par un Next WS, mon code ne traite que l'onglet actif : c'est donc que la boucle ne boucle pas …
De plus, comme j'ai dupliqué les TCD par copie d'onglet, le nom est le même donc la boucle devrait appliquer les instruction au TCD nommé , et pourtant rien ne se passe au-delà de l'onglet actif …
Est-ce dû au fait que j'ai des onglets ne contenant pas de TCD (onglet "Ma question", onglet masqué "Source") et/ou à la structure de ma boucle ?
Quelqu'un a-t-il une idée sur la raison de cette paralysie ?
Merci d'avance pour votre sagacité
________________ le code _______________________________________
Sub Test_3()
Dim WS As Worksheet
Dim DateRéponse As Long
DateRéponse = Application.InputBox("A quel mois inclus voulez-vous restreindre l'affichage ?")
For Each WS In Worksheets ' on balaie les onglets
Application.ScreenUpdating = 0
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois")
.PivotItems("Janvier").Visible = True
.PivotItems("Février").Visible = True
.PivotItems("Mars").Visible = True
.PivotItems("Avril").Visible = True
.PivotItems("Mai").Visible = True
.PivotItems("Juin").Visible = True
.PivotItems("Juillet").Visible = True
.PivotItems("Août").Visible = True
.PivotItems("Septembre").Visible = True
.PivotItems("Octobre").Visible = True
.PivotItems("Novembre").Visible = True
.PivotItems("Décembre").Visible = True
If DateRéponse < 2 Then .PivotItems("Février").Visible = False
If DateRéponse < 3 Then .PivotItems("Mars").Visible = False
If DateRéponse < 4 Then .PivotItems("Avril").Visible = False
If DateRéponse < 5 Then .PivotItems("Mai").Visible = False
If DateRéponse < 6 Then .PivotItems("Juin").Visible = False
If DateRéponse < 7 Then .PivotItems("Juillet").Visible = False
If DateRéponse < 8 Then .PivotItems("Août").Visible = False
If DateRéponse < 9 Then .PivotItems("Septembre").Visible = False
If DateRéponse < 10 Then .PivotItems("Octobre").Visible = False
If DateRéponse < 11 Then .PivotItems("Novembre").Visible = False
If DateRéponse < 12 Then .PivotItems("Décembre").Visible = False
End With
Next WS ' on saute à l'onglet suivant
Application.ScreenUpdating = 1
End Sub