Actions Case à cocher

  • Initiateur de la discussion Initiateur de la discussion Hystic
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Hystic

XLDnaute Nouveau
Bonjour,

Je suis en train de faire un tableau croisé dynamique mais il y a des listes super longue où tout est coché

Donc j'ai fait une Macro1 -> qui coche tout les element d'un chan
et une Macro2 qui décoche tous les element sauf 1 pour pas qu'il y ai d'erreurs
(grace à vôtre forum d'ailleur ;-) )

maintenant je créer ma case à cocher test

je lui affecte le macro suivante :

Sub test_QuandClic()

If test.Value = True Then
Call Macro1
Else
Call Macro2
End If

End Sub

J'ai fais le tour de plein de forums mais impossible de trouver pourquoi ça ne marche pas, l'erreur apparait sur la ligne soulignée

Merci de vos réponses ;-)
 
Re : Actions Case à cocher

Bonjour Hystic, suistrop

essaye peut être comme ceci, pour un controle de la barre d'outils "formulaires" :

Code:
If ActiveSheet.Shapes("Test").ControlFormat.Value = 1 Then

A noter, il est plus facile d'utiliser des controles de la barre d'outils "Boite à outils controles" plutôt que ceux de la barre d'outils "formulaires", lorsque tu veux passer par vba.

bon après midi
@+
 
Re : Actions Case à cocher

J'ai pensé à une autre solution :

Je garde mes 2 boutons et je met une zone de liste contenant toutes les variables
ensuite l'utilisateur selection la variable qu'il souhaite remplir ou vider....
Mais comment récupérer la chaine de caractèrer de l'element de la zone de liste ?
Du style
chan = Zonedeliste.value
enfin je n'en ai aucune idée
 
Re : Actions Case à cocher

Re

le code donné était pour une case à cocher que tu avais créé, d'ailleurs tu disais :

maintenant je créer ma case à cocher test

je lui affecte le macro suivante :

Sub test_QuandClic()

If test.Value = True Then
Call Macro1

donc je ne comprends plus très bien... A ma connaissance tu ne peux rajouter de case sur un TCD...

Mets peut être en pièce jointe un fichier, sans données confidentielles, avec le résultat attendu.

@+
 
Re : Actions Case à cocher

LE fichier Excel fait qiand même 15 Mo :-/
Je vais essayer d'être le plus lair possible :

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


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

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
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
1 K
Réponses
54
Affichages
5 K
Retour