Bonjour,
Je voudrais crée une boucle pour que si le valeur en D1 vaut 5 alors :
j'ai "= true" jusqu'au 5.
.PivotItems("1").Visible = True
.PivotItems("2").Visible = False
.PivotItems("3").Visible = False
.PivotItems("4").Visible = False
.PivotItems("5").Visible = False
.PivotItems("6").Visible = False
.PivotItems("7").Visible = False
.PivotItems("8").Visible = False
.PivotItems("9").Visible = False
.PivotItems("10").Visible = False
.PivotItems("11").Visible = False
.PivotItems("12").Visible = False
Voici le code complet mais c'est un peu long et je suis persuader que l'on peut reduire :
Sub Macro3()
'
' Macro3 Macro
'
'
Dim i As Long
For i = 1 To 12
Sheets("Feuil1").Select
If Range("D1") = 1 Then
ActiveSheet.PivotTables("Tableau croisé dynamique" & i).PivotFields("Mois"). _
CurrentPage = "(All)"
With ActiveSheet.PivotTables("Tableau croisé dynamique" & i).PivotFields("Mois")
.PivotItems("1").Visible = True
.PivotItems("2").Visible = False
.PivotItems("3").Visible = False
.PivotItems("4").Visible = False
.PivotItems("5").Visible = False
.PivotItems("6").Visible = False
.PivotItems("7").Visible = False
.PivotItems("8").Visible = False
.PivotItems("9").Visible = False
.PivotItems("10").Visible = False
.PivotItems("11").Visible = False
.PivotItems("12").Visible = False
End With
End If
If Range("D1") = 2 Then
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois"). _
CurrentPage = "(All)"
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois")
.PivotItems("1").Visible = True
.PivotItems("2").Visible = True
.PivotItems("3").Visible = False
.PivotItems("4").Visible = False
.PivotItems("5").Visible = False
.PivotItems("6").Visible = False
.PivotItems("7").Visible = False
.PivotItems("8").Visible = False
.PivotItems("9").Visible = False
.PivotItems("10").Visible = False
.PivotItems("11").Visible = False
.PivotItems("12").Visible = False
End With
End If
If Range("D1") = 3 Then
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois"). _
CurrentPage = "(All)"
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois")
.PivotItems("1").Visible = True
.PivotItems("2").Visible = True
.PivotItems("3").Visible = True
.PivotItems("4").Visible = False
.PivotItems("5").Visible = False
.PivotItems("6").Visible = False
.PivotItems("7").Visible = False
.PivotItems("8").Visible = False
.PivotItems("9").Visible = False
.PivotItems("10").Visible = False
.PivotItems("11").Visible = False
.PivotItems("12").Visible = False
End With
End If
If Range("D1") = 4 Then
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois"). _
CurrentPage = "(All)"
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois")
.PivotItems("1").Visible = True
.PivotItems("2").Visible = True
.PivotItems("3").Visible = True
.PivotItems("4").Visible = True
.PivotItems("5").Visible = False
.PivotItems("6").Visible = False
.PivotItems("7").Visible = False
.PivotItems("8").Visible = False
.PivotItems("9").Visible = False
.PivotItems("10").Visible = False
.PivotItems("11").Visible = False
.PivotItems("12").Visible = False
End With
End If
If Range("D1") = 5 Then
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois"). _
CurrentPage = "(All)"
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois")
.PivotItems("1").Visible = True
.PivotItems("2").Visible = True
.PivotItems("3").Visible = True
.PivotItems("4").Visible = True
.PivotItems("5").Visible = True
.PivotItems("6").Visible = False
.PivotItems("7").Visible = False
.PivotItems("8").Visible = False
.PivotItems("9").Visible = False
.PivotItems("10").Visible = False
.PivotItems("11").Visible = False
.PivotItems("12").Visible = False
End With
End If
If Range("D1") = 6 Then
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois"). _
CurrentPage = "(All)"
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois")
.PivotItems("1").Visible = True
.PivotItems("2").Visible = True
.PivotItems("3").Visible = True
.PivotItems("4").Visible = True
.PivotItems("5").Visible = True
.PivotItems("6").Visible = True
.PivotItems("7").Visible = False
.PivotItems("8").Visible = False
.PivotItems("9").Visible = False
.PivotItems("10").Visible = False
.PivotItems("11").Visible = False
.PivotItems("12").Visible = False
End With
End If
If Range("D1") = 7 Then
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois"). _
CurrentPage = "(All)"
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois")
.PivotItems("1").Visible = True
.PivotItems("2").Visible = True
.PivotItems("3").Visible = True
.PivotItems("4").Visible = True
.PivotItems("5").Visible = True
.PivotItems("6").Visible = True
.PivotItems("7").Visible = True
.PivotItems("8").Visible = False
.PivotItems("9").Visible = False
.PivotItems("10").Visible = False
.PivotItems("11").Visible = False
.PivotItems("12").Visible = False
End With
End If
If Range("D1") = 8 Then
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois"). _
CurrentPage = "(All)"
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois")
.PivotItems("1").Visible = True
.PivotItems("2").Visible = True
.PivotItems("3").Visible = True
.PivotItems("4").Visible = True
.PivotItems("5").Visible = True
.PivotItems("6").Visible = True
.PivotItems("7").Visible = True
.PivotItems("8").Visible = True
.PivotItems("9").Visible = False
.PivotItems("10").Visible = False
.PivotItems("11").Visible = False
.PivotItems("12").Visible = False
End With
End If
If Range("D1") = 9 Then
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois"). _
CurrentPage = "(All)"
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois")
.PivotItems("1").Visible = True
.PivotItems("2").Visible = True
.PivotItems("3").Visible = False
.PivotItems("4").Visible = True
.PivotItems("5").Visible = True
.PivotItems("6").Visible = True
.PivotItems("7").Visible = True
.PivotItems("8").Visible = True
.PivotItems("9").Visible = True
.PivotItems("10").Visible = False
.PivotItems("11").Visible = False
.PivotItems("12").Visible = False
End With
End If
If Range("D1") = 10 Then
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois"). _
CurrentPage = "(All)"
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois")
.PivotItems("1").Visible = True
.PivotItems("2").Visible = True
.PivotItems("3").Visible = True
.PivotItems("4").Visible = True
.PivotItems("5").Visible = True
.PivotItems("6").Visible = True
.PivotItems("7").Visible = True
.PivotItems("8").Visible = True
.PivotItems("9").Visible = True
.PivotItems("10").Visible = True
.PivotItems("11").Visible = False
.PivotItems("12").Visible = False
End With
End If
If Range("D1") = 11 Then
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois"). _
CurrentPage = "(All)"
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois")
.PivotItems("1").Visible = True
.PivotItems("2").Visible = True
.PivotItems("3").Visible = True
.PivotItems("4").Visible = True
.PivotItems("5").Visible = True
.PivotItems("6").Visible = True
.PivotItems("7").Visible = True
.PivotItems("8").Visible = True
.PivotItems("9").Visible = True
.PivotItems("10").Visible = True
.PivotItems("11").Visible = True
.PivotItems("12").Visible = False
End With
End If
If Range("D1") = 12 Then
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois"). _
CurrentPage = "(All)"
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Mois")
.PivotItems("1").Visible = True
.PivotItems("2").Visible = True
.PivotItems("3").Visible = True
.PivotItems("4").Visible = True
.PivotItems("5").Visible = True
.PivotItems("6").Visible = True
.PivotItems("7").Visible = True
.PivotItems("8").Visible = True
.PivotItems("9").Visible = True
.PivotItems("10").Visible = True
.PivotItems("11").Visible = True
.PivotItems("12").Visible = True
End With
End If
Next i
End Sub
Afficher la suite
5 nov. 2018 à 11:33
Sub macro4()
Dim i As Long
Dim j As Long
Sheets("Feuil1").Select
For j = 1 To 2
valD1 = Range("D1").Value
ActiveSheet.PivotTables("Tableau croisé dynamique" & j).PivotFields("Mois"). _
CurrentPage = "(All)"
With ActiveSheet.PivotTables("Tableau croisé dynamique" & j).PivotFields("Mois")
'on le met tous à false sauf le premier
For i = 2 To .PivotItems.Count - 1
.PivotItems(.PivotItems(i).Name).Visible = False
Next i
'on remet à true le nombre voulu
For i = 2 To valD1
If i <= .PivotItems.Count - 1 Then
.PivotItems(i).Visible = True
End If
Next i
End With
Next j
End Sub
5 nov. 2018 à 11:38
Pour poster du code sur le forum, merci de le faire en utilisant LES BALISES DE CODE (et en y précisant le langage)
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Merci d'y penser dans tes prochains messages.
5 nov. 2018 à 11:59
merci d'avance
5 nov. 2018 à 12:02
Ta valeur... laquelle ?
"Ne prenne que .." ou "Ne prenne. pas ..." ?
5 nov. 2018 à 12:02
Merci.