Bonsoir à toutes et à tous,
Je ne comprends pas pourquoi ma boucle ne permet pas d’intervenir une feuille sur deux. Je pensais qu’avec STEP 2, on instaurait un pas de 2 … c’est d’autant plus râlant que le contrôle placé m’indique bien qu’on traîte la feuille 1, 3, 5, …, n+1…
Qui peut me dire ce qui cloche dans le code suivant ? (je passe volontairement par for wks=1 to … plutôt que par une boucle for each … car avec ma solution, je peux mettre un pas de 2)
(je précise que si j’enlève STEP 2, le code s’applique bien à tout, donc il effectue bien ce que je lui demande …).
Merci pour vos lumières
_______________ Code _______________________________________________________
Sub Intervenir_une_feuille_sur_deux()
Dim wks As Long
Dim pt As PivotTable
Dim pf As PivotField
For wks = 1 To Sheets.Count Step 2 ' on intervient une feuille sur 2, sur tout le fichier
Sheets(wks).Activate
MsgBox "Je traîte actuellement la feuille n° " & wks ' permet de contrôler qu'on alterne bien les feuilles
If ActiveSheet.PivotTables.Count > 0 Then ' on s'assure qu'on a bien un tcd
Set pt = ActiveSheet.PivotTables(1)
For Each pf In pt.ColumnFields
pf.EnableItemSelection = False
Next
End If
Next
End Sub
Je ne comprends pas pourquoi ma boucle ne permet pas d’intervenir une feuille sur deux. Je pensais qu’avec STEP 2, on instaurait un pas de 2 … c’est d’autant plus râlant que le contrôle placé m’indique bien qu’on traîte la feuille 1, 3, 5, …, n+1…
Qui peut me dire ce qui cloche dans le code suivant ? (je passe volontairement par for wks=1 to … plutôt que par une boucle for each … car avec ma solution, je peux mettre un pas de 2)
(je précise que si j’enlève STEP 2, le code s’applique bien à tout, donc il effectue bien ce que je lui demande …).
Merci pour vos lumières
_______________ Code _______________________________________________________
Sub Intervenir_une_feuille_sur_deux()
Dim wks As Long
Dim pt As PivotTable
Dim pf As PivotField
For wks = 1 To Sheets.Count Step 2 ' on intervient une feuille sur 2, sur tout le fichier
Sheets(wks).Activate
MsgBox "Je traîte actuellement la feuille n° " & wks ' permet de contrôler qu'on alterne bien les feuilles
If ActiveSheet.PivotTables.Count > 0 Then ' on s'assure qu'on a bien un tcd
Set pt = ActiveSheet.PivotTables(1)
For Each pf In pt.ColumnFields
pf.EnableItemSelection = False
Next
End If
Next
End Sub