Case à cocher Excel (non-booléenne)
Résolu/Fermé
bighaze
Messages postés
9
Date d'inscription
mercredi 24 août 2016
Statut
Membre
Dernière intervention
9 novembre 2018
-
18 avril 2018 à 14:04
bighaze Messages postés 9 Date d'inscription mercredi 24 août 2016 Statut Membre Dernière intervention 9 novembre 2018 - 19 avril 2018 à 14:28
bighaze Messages postés 9 Date d'inscription mercredi 24 août 2016 Statut Membre Dernière intervention 9 novembre 2018 - 19 avril 2018 à 14:28
A voir également:
- Case à cocher Excel (non-booléenne)
- Liste déroulante excel - Guide
- Aller à la ligne excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
5 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
18 avril 2018 à 19:07
18 avril 2018 à 19:07
Bonjour,
si tu prends une case à cocher ActiveX tu peux mettre sa propriété TripleState à True.
Tu auras : non coché, coché grisé, coché.
eric
si tu prends une case à cocher ActiveX tu peux mettre sa propriété TripleState à True.
Tu auras : non coché, coché grisé, coché.
eric
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
18 avril 2018 à 16:53
18 avril 2018 à 16:53
Une case à cocher est booléenne et donc ne peut présenter que 2 états: vrai- faux
on peut toujours tenter avec un textbox de la forme d'un checkbox ou peut-^tre avec la linkedcell du checkbox
on peut toujours tenter avec un textbox de la forme d'un checkbox ou peut-^tre avec la linkedcell du checkbox
bighaze
Messages postés
9
Date d'inscription
mercredi 24 août 2016
Statut
Membre
Dernière intervention
9 novembre 2018
19 avril 2018 à 09:14
19 avril 2018 à 09:14
Merci pour ton aide ! mais je vais essayer avec la méthode d'Eric.
bighaze
Messages postés
9
Date d'inscription
mercredi 24 août 2016
Statut
Membre
Dernière intervention
9 novembre 2018
Modifié le 19 avril 2018 à 10:28
Modifié le 19 avril 2018 à 10:28
Re-bonjour à tous !
Suite à la réponse d'Eric, j'ai pu trouver une checkbox à trois états mais je trouve que ceux-ci ne sont pas assez différenciable. En effet le but est d'avoir un changement qui soit plus visible qu'une croix grisé de façon à ce que l'opérateur puisse voir la différence assez facilement. J'ai donc pensé à une nouvelle chose c'est de garder l'idée de la TripleState checkbox mais de changer la police en fonction de la valeur que prend la checkbox. Seulement voilà : j'ai trouvé pas mal de chose sur internet qui m'ont fait arriver ici :
__________________________________________________________
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
With ActiveSheet.CheckBox1
.Font.Name = "Times New Roman"
.Font.Size = 14
ElseIf CheckBox1.Value = False Then
With ActiveSheet.CheckBox1
.Font.Name = "Calibri"
.Font.Size = 11
End With
ElseIf CheckBox1.Value = Null Then
With ActiveSheet.CheckBox1
.Font.Name = "Calibri"
.Font.Size = 24
End With
End If
End Sub
__________________________________________________________
Malheureusement, la valeur 'Null' (case grisé) n'est pas reconnu et la police s'affiche de la même manière que dans le cas de la case décoché.
J'ai déjà essayé :
- de simplement laisser "Else" dans la 3ème condition
- de mettre la valeur différent de 'True' et différente de 'False' dans la 3ème condition
Voilà voilà ! C'est la première fois que je fais du vba c'est donc un mix de ce que j'ai trouvé sur internet et que j'ai pensé juste.
Merci pour votre aide !
A bientôt!
Suite à la réponse d'Eric, j'ai pu trouver une checkbox à trois états mais je trouve que ceux-ci ne sont pas assez différenciable. En effet le but est d'avoir un changement qui soit plus visible qu'une croix grisé de façon à ce que l'opérateur puisse voir la différence assez facilement. J'ai donc pensé à une nouvelle chose c'est de garder l'idée de la TripleState checkbox mais de changer la police en fonction de la valeur que prend la checkbox. Seulement voilà : j'ai trouvé pas mal de chose sur internet qui m'ont fait arriver ici :
__________________________________________________________
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
With ActiveSheet.CheckBox1
.Font.Name = "Times New Roman"
.Font.Size = 14
ElseIf CheckBox1.Value = False Then
With ActiveSheet.CheckBox1
.Font.Name = "Calibri"
.Font.Size = 11
End With
ElseIf CheckBox1.Value = Null Then
With ActiveSheet.CheckBox1
.Font.Name = "Calibri"
.Font.Size = 24
End With
End If
End Sub
__________________________________________________________
Malheureusement, la valeur 'Null' (case grisé) n'est pas reconnu et la police s'affiche de la même manière que dans le cas de la case décoché.
J'ai déjà essayé :
- de simplement laisser "Else" dans la 3ème condition
- de mettre la valeur différent de 'True' et différente de 'False' dans la 3ème condition
Voilà voilà ! C'est la première fois que je fais du vba c'est donc un mix de ce que j'ai trouvé sur internet et que j'ai pensé juste.
Merci pour votre aide !
A bientôt!
bighaze
Messages postés
9
Date d'inscription
mercredi 24 août 2016
Statut
Membre
Dernière intervention
9 novembre 2018
19 avril 2018 à 10:26
19 avril 2018 à 10:26
Je viens de tomber sur ça :
________________________________________
Private Sub CheckBox1_Change()
If IsNull(CheckBox1.Value) Then
CheckBox1.Caption = "Value is Null"
ElseIf CheckBox1.Value = False Then
CheckBox1.Caption = "Value is False"
ElseIf CheckBox1.Value = True Then
CheckBox1.Caption = "Value is True"
End If
End Sub _______________________________
J'ai donc remplacer par l'expression "IsNull()" mais rien ne change.
________________________________________
Private Sub CheckBox1_Change()
If IsNull(CheckBox1.Value) Then
CheckBox1.Caption = "Value is Null"
ElseIf CheckBox1.Value = False Then
CheckBox1.Caption = "Value is False"
ElseIf CheckBox1.Value = True Then
CheckBox1.Caption = "Value is True"
End If
End Sub _______________________________
J'ai donc remplacer par l'expression "IsNull()" mais rien ne change.
Jauster
Messages postés
126
Date d'inscription
jeudi 7 décembre 2017
Statut
Membre
Dernière intervention
31 août 2018
40
Modifié le 19 avril 2018 à 10:46
Modifié le 19 avril 2018 à 10:46
Hello,
Ayant déjà bien avancé dans l'apprentissage du VBA je ne suis aussi qu'un débutant.
Cette histoire de triple state checkbox est un peu compliqué pour moi, mais je propose on ne sait jamais. Au lieu d'utiliser l'event "click" de la checkbox, pourquoi ne pas utiliser l'event "Change" :
Si j'ai bien compris son fonctionnement, le code se lancera au changement de statut de la checkbox
Ayant déjà bien avancé dans l'apprentissage du VBA je ne suis aussi qu'un débutant.
Cette histoire de triple state checkbox est un peu compliqué pour moi, mais je propose on ne sait jamais. Au lieu d'utiliser l'event "click" de la checkbox, pourquoi ne pas utiliser l'event "Change" :
Private Sub CheckBox1_Change() End Sub
Si j'ai bien compris son fonctionnement, le code se lancera au changement de statut de la checkbox
Jauster
Messages postés
126
Date d'inscription
jeudi 7 décembre 2017
Statut
Membre
Dernière intervention
31 août 2018
40
Modifié le 19 avril 2018 à 10:53
Modifié le 19 avril 2018 à 10:53
Je viens de voir, et je pense que tu n'as pas fait attention aussi puisque tu ne le précises pas, mais un coup tu utilises l'event Click et un coup l'event Change. As-tu essayé avec :
Il te manque un End With d'ailleurs. Le premier.
EDIT : J'ai changé = Null par IsNull
Private Sub CheckBox1_Change() If IsNull(CheckBox1.Value) Then With ActiveSheet.CheckBox1 .Font.Name = "Calibri" .Font.Size = 24 End With ElseIf CheckBox1.Value = False Then With ActiveSheet.CheckBox1 .Font.Name = "Calibri" .Font.Size = 11 End With ElseIf CheckBox1.Value = True Then With ActiveSheet.CheckBox1 .Font.Name = "Times New Roman" .Font.Size = 14 End With End If End Sub
Il te manque un End With d'ailleurs. Le premier.
EDIT : J'ai changé = Null par IsNull
bighaze
Messages postés
9
Date d'inscription
mercredi 24 août 2016
Statut
Membre
Dernière intervention
9 novembre 2018
19 avril 2018 à 11:12
19 avril 2018 à 11:12
Effectivement j'ai retirer le premier End With en modifiant le programme pour le poster ici mais il apparait bien sur le code.
J'ai essayer ton code et... CA MARCHE ! Merci énormément j'y suis depuis 3heures et effectivement il fallait changer d'event ^^
Merci encore, bonne journée !
J'ai essayer ton code et... CA MARCHE ! Merci énormément j'y suis depuis 3heures et effectivement il fallait changer d'event ^^
Merci encore, bonne journée !
bighaze
Messages postés
9
Date d'inscription
mercredi 24 août 2016
Statut
Membre
Dernière intervention
9 novembre 2018
19 avril 2018 à 11:13
19 avril 2018 à 11:13
Merci à tous pour vos réponses, j'ai finalement réussi avec l'aide de Jauster !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
19 avril 2018 à 13:11
19 avril 2018 à 13:11
Bonjour,
perso je trouve bizarre de jouer sur la taille du texte.
Pourquoi ne pas changer la couleur du texte ou du fond ?
eric
perso je trouve bizarre de jouer sur la taille du texte.
Pourquoi ne pas changer la couleur du texte ou du fond ?
eric
bighaze
Messages postés
9
Date d'inscription
mercredi 24 août 2016
Statut
Membre
Dernière intervention
9 novembre 2018
Modifié le 19 avril 2018 à 14:29
Modifié le 19 avril 2018 à 14:29
Re-bonjour,
En fait j'ai déjà un code couleur défini pour le fond et/ou le cadre puisque je dois définir des niveaux de maintenance sur certaines pièces à partir du schéma d'un montage hydraulique. Le problème est donc que je ne peux pas vraiment changer le fond et le cadre puisque ceux-ci sont de couleur prédéfini.
Je vais bien sûr changer la couleur du texte et pas seulement modifié la taille (ce que j'ai envoyé comme partie de code n'était qu'une ébauche pour savoir si c'était réalisable et si je m'engageais sur cette voie là.)
Bonne journée
Julien
En fait j'ai déjà un code couleur défini pour le fond et/ou le cadre puisque je dois définir des niveaux de maintenance sur certaines pièces à partir du schéma d'un montage hydraulique. Le problème est donc que je ne peux pas vraiment changer le fond et le cadre puisque ceux-ci sont de couleur prédéfini.
Je vais bien sûr changer la couleur du texte et pas seulement modifié la taille (ce que j'ai envoyé comme partie de code n'était qu'une ébauche pour savoir si c'était réalisable et si je m'engageais sur cette voie là.)
Bonne journée
Julien
19 avril 2018 à 09:15