Valeure d'une zone de liste excel
Hystic
-
titeuls -
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
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:
- Valeure d'une zone de liste excel
- Liste déroulante excel - Guide
- Alternative zone telechargement - Accueil - Outils
- Excel liste déroulante en cascade - Guide
- Déplacer une colonne excel - Guide
- Word et excel gratuit - Guide