CheckBox.Value ne change pas de valeur quand on click
Résolu
panda02
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
panda02 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
panda02 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un petit soucis avec les valeurs des Checkbox. J'ai un macro dans Excel qui me donne un formulaire dans lequel on peut sélectionner une trentaine de checkbox, pour simplifier le travail certaines checkbox permettent de dé/cocher une série d'autre. Pour ce faire j'utilise le code suivant:
Le souci c'est que si l'utilisateur coche le CheckBox Details et ensuite décoche une des sous CheckBox, quand j'interroge la valeur des CheckBox il me trouve "true" même celle qui a été décochée par l'utilisateur.
Comment faire pour que la valeur affichée des CheckBox dans le userform soit bien mise à jour pour pouvoir les utiliser ensuite.
Merci
J'ai un petit soucis avec les valeurs des Checkbox. J'ai un macro dans Excel qui me donne un formulaire dans lequel on peut sélectionner une trentaine de checkbox, pour simplifier le travail certaines checkbox permettent de dé/cocher une série d'autre. Pour ce faire j'utilise le code suivant:
Private Sub CheckBoxDetails_Click() ' (dé)coche les boutons du sous menu quand on (dé)coche la case "détails" If CheckBoxDetails.Value = True Then CheckBoxDiver.Value = True CheckBoxEquip.Value = True CheckBoxPot.Value = True CheckBoxLent.Value = True Else CheckBoxDiver.Value = False CheckBoxEquip.Value = False CheckBoxPot.Value = False CheckBoxLent.Value = False End If End Sub
Le souci c'est que si l'utilisateur coche le CheckBox Details et ensuite décoche une des sous CheckBox, quand j'interroge la valeur des CheckBox il me trouve "true" même celle qui a été décochée par l'utilisateur.
Comment faire pour que la valeur affichée des CheckBox dans le userform soit bien mise à jour pour pouvoir les utiliser ensuite.
Merci
A voir également:
- Vba checkbox value
- Changer de dns - Guide
- Que faire quand on change de carte graphique - Guide
- Change qwerty to azerty - Guide
- Msi click bios 5 ✓ - Forum BIOS
- By click downloader ne fonctionne plus - Forum Enregistrement / Traitement audio
5 réponses
Bonjour,
Il doit y avoir un autre souci...
Mes tests fonctionnent exactement comme souhaité :
https://www.cjoint.com/?DLklHA6tO5J
Il doit y avoir un autre souci...
Mes tests fonctionnent exactement comme souhaité :
https://www.cjoint.com/?DLklHA6tO5J
Bjr Franck,
merci, je vais regarder ça de chez moi fin de semaine (mon employeur bloque l'accès à ton lien)
Je te dirai si ça marche à ce moment là
Cordialement
Raphaël
merci, je vais regarder ça de chez moi fin de semaine (mon employeur bloque l'accès à ton lien)
Je te dirai si ça marche à ce moment là
Cordialement
Raphaël
en effet erreur de ma part (je passe par macro pour accéder là et macro était vide)
donc oui avec ton userform ça fonctionne.
Le codage du mien étant identique au tien je ne comprends pas pourquoi ça ne marche pas. J'ai vu que tu ne mettais pas '.value' donc j'ai essayé en effaçant chez moi mais pas mieux.
donc voilà comment je récupère ces valeurs pour créer un fichier
peut-être que ça te donnera une idée de ce qui coince.
avant que je ne tente de faire un bouton qui regroupe ça fonctionnait parfaitement le fichier créer prenait bien exactement les info demandée en fonction des cases cochées. donc je pense qu'il y a une petite astuce de rafraîchissement de la valeur qui ne se fait pas ou qqch comme ça.
Une autre idée ?
donc oui avec ton userform ça fonctionne.
Le codage du mien étant identique au tien je ne comprends pas pourquoi ça ne marche pas. J'ai vu que tu ne mettais pas '.value' donc j'ai essayé en effaçant chez moi mais pas mieux.
donc voilà comment je récupère ces valeurs pour créer un fichier
If UserForm3.CheckBoxDiver.Value = True Then For j = 13 To 23 variable1 = variable1 & "<B>" & Cells(lgtitrfr, j).Value & "</B> : " & ActiveCell.Offset(0, j - 1).Value & "<br>" & Chr(13) Next j End If If UserForm3.CheckBoxCoordin.Value = True Then variable1 = variable1 & "<B>" & Cells(lgtitrfr, 24).Value & "</B> : " & ActiveCell.Offset(0, 23).Value & "<br>" & Chr(13) End If If UserForm3.CheckBoxEquip.Value = True Then For j = 25 To 29 variable1 = variable1 & "<B>" & Cells(lgtitrfr, j).Value & "</B> : " & ActiveCell.Offset(0, j - 1).Value & "<br>" & Chr(13) Next j End If If UserForm3.CheckBoxPot.Value = True Then For j = 30 To 32 variable1 = variable1 & "<B>" & Cells(lgtitrfr, j).Value & "</B> : " & ActiveCell.Offset(0, j - 1).Value & "<br>" & Chr(13) Next j End If If UserForm3.CheckBoxLent.Value = True Then For j = 33 To 43 variable1 = variable1 & "<B>" & Cells(lgtitrfr, j).Value & "</B> : " & ActiveCell.Offset(0, j - 1).Value & "<br>" & Chr(13) Next j End If
peut-être que ça te donnera une idée de ce qui coince.
avant que je ne tente de faire un bouton qui regroupe ça fonctionnait parfaitement le fichier créer prenait bien exactement les info demandée en fonction des cases cochées. donc je pense qu'il y a une petite astuce de rafraîchissement de la valeur qui ne se fait pas ou qqch comme ça.
Une autre idée ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci, indirectement tu m'a guidé vers mon erreur,
en fait en tout début de récupération des données j'avais un if case 'tout' cochée récupération de toute les données et si case 'tout' pas cochée vérification des case x pour récupérer les données x.
Du coup même si je décochais les case ma macro n'allait même pas voire leur valeur puisque 'tout' reste coché
Il m'a donc suffit d'effacer 3 lignes et tout fonctionne correctement
Merci
problème résolu
en fait en tout début de récupération des données j'avais un if case 'tout' cochée récupération de toute les données et si case 'tout' pas cochée vérification des case x pour récupérer les données x.
Du coup même si je décochais les case ma macro n'allait même pas voire leur valeur puisque 'tout' reste coché
Il m'a donc suffit d'effacer 3 lignes et tout fonctionne correctement
Merci
problème résolu