Valeure d'une zone de liste excel

Hystic -  
 titeuls -
Bonjour,

J'ai un tableau croisé dynamique avec beaucoups de variables
le problème c'est que toutes ces variables peuvent prendre beaucoup de valeurs
Donc j'ai fait des macro pour cocher et décocher toutes les valeures de la variable souhaité
donc la si j'ai 8 Variable actuellement je fait 16 boutons auquel sont afecté la macro suivante :
A titre d'exemple ici je coche ou décoche toutes les valeures de la variable "eqptid"

[CODE]
Sub decocheqptid()
'

' Macro enregistrée le 24/06/2008 par htr
'
Dim monPivIt As Object
Application.ScreenUpdating = False
With ActiveChart.PivotLayout.PivotFields("eqptid")

For Each monPivIt In .PivotItems
If monPivIt.Name <> "(vide)" Then
monPivIt.Visible = False
Else
monPivIt.Visible = True
End If
Next
On Error Resume Next
For Each monPivIt In .PivotItems
If monPivIt.Name <> "" Then monPivIt.Visible = False
Next
End With
Application.ScreenUpdating = True


End Sub


Sub Cocheqptid()
'

' Macro enregistrée le 24/06/2008 par htr
'
Dim monPivIt As Object
Application.ScreenUpdating = False
With ActiveChart.PivotLayout.PivotFields("eqptid")

For Each monPivIt In .PivotItems
On Error Resume Next
monPivIt.Visible = True
Next
End With
Application.ScreenUpdating = True

Call refresh
End Sub

/CODE


Mon but est de réduire ce système à une combinaison d'une zone de liste et de deux bouton : Cocher et décocher

ainsi l'utilisateur selectionne la variable qu'il veut décocher dans la zone de liste et click sur cocher ou décocher pour cocher ou décocher toutes les valeures d'une variable


un truce du genre :

[CODE]
Sub decocheqptid()
'

' Macro enregistrée le 24/06/2008 par htr
'
Dim monPivIt As Object
Application.ScreenUpdating = False
With ActiveChart.PivotLayout.PivotFields([B][U]zonedeliste.Text/U/B)

For Each monPivIt In .PivotItems
If monPivIt.Name <> "(vide)" Then
monPivIt.Visible = False
Else
monPivIt.Visible = True
End If
Next
On Error Resume Next
For Each monPivIt In .PivotItems
If monPivIt.Name <> "" Then monPivIt.Visible = False
Next
End With
Application.ScreenUpdating = True


End Sub
/CODE

mais je n'ai aucune idée de la syntaxe du zonedeliste.Text ....
la valeur en chaine de caractère qu'a selectionné l'utilisateur

Voilà ;-)
Merci de vos réponses
A voir également:

1 réponse

titeuls
 
Bonjour,

As-tu réussi à débloquer ton problème?
Moi jai un souci un peu du même genre. J'ai 2 pivotitems à gérer dans un TCD et je ne sais pas comment les nommer.
Pour le premier monPivIt, mais le second?

Si quelqu'un peut m'aider!

Merci
0