Lier une Checkbox avec une cellule sur VBA
drannok
-
Pyvoudelet Messages postés 179 Statut Membre -
Pyvoudelet Messages postés 179 Statut Membre -
Bonjour à tous,
ma question va surement paraitre evidente pour la plupart d'entre vous mais... étant novice sur VBA je me lance !
Voila mon problème :
J'ai créé une boite de dialogue via un userform sur VBA.
Dans ce userform j'ai posé 2 questions et inséré deux checkbox (Si elle sont cochées c'est que la réponse à la question correspondante est "oui")
J'aimerais lier chacune de ces Checkbox à une cellule (admettons A1 pour la Checkbox 1 et A2 pour la CHeckbox 2). Ainsi, l'utilisateur pourra revenir sur la boite de dialogue plus tard mais ces précédentes réponses resteront cochées...
Quelqu'un a t il une solution à mon problème ??
J'ai trouvé la fonction linkedcell mais je ne sais pas l'utiliser... please !
ma question va surement paraitre evidente pour la plupart d'entre vous mais... étant novice sur VBA je me lance !
Voila mon problème :
J'ai créé une boite de dialogue via un userform sur VBA.
Dans ce userform j'ai posé 2 questions et inséré deux checkbox (Si elle sont cochées c'est que la réponse à la question correspondante est "oui")
J'aimerais lier chacune de ces Checkbox à une cellule (admettons A1 pour la Checkbox 1 et A2 pour la CHeckbox 2). Ainsi, l'utilisateur pourra revenir sur la boite de dialogue plus tard mais ces précédentes réponses resteront cochées...
Quelqu'un a t il une solution à mon problème ??
J'ai trouvé la fonction linkedcell mais je ne sais pas l'utiliser... please !
3 réponses
bonjour
Pour que cela fonctionne, il te faut mettre un peu de code dans ton userform, ceci par exemple :
Quand tu lances ton formulaire, les chekbox prennent la valeur des cellules et quand tu coches et/ décoches tes cellules sont mises à jour.
Pour que cela fonctionne, il te faut mettre un peu de code dans ton userform, ceci par exemple :
Private Sub UserForm_Initialize()
If Range("A1").Value = "oui" Then
CheckBox1.Value = True
Else
CheckBox1.Value = False
End If
If Range("A2").Value = "oui" Then
CheckBox2.Value = True
Else
CheckBox2.Value = False
End If
End Sub
Private Sub CheckBox1_Click()
If CheckBox1.Value Then
Range("A1").Value = "oui"
Else
Range("A1").Value = "non"
End If
End Sub
Private Sub CheckBox2_Click()
If CheckBox2.Value Then
Range("A2").Value = "oui"
Else
Range("A2").Value = "non"
End If
End Sub
Quand tu lances ton formulaire, les chekbox prennent la valeur des cellules et quand tu coches et/ décoches tes cellules sont mises à jour.
Merci beaucoup !
Je n'avais pas du tout pensé a cette solution !
Je ne pourrais malheureusement essayer que lundi au boulot ... (enfin je vais pas me plaindre c'est le weekend !)
Par contre je me demande :
Quand tu mets :
Private Sub UserForm_Initialize()
Je tape ça où ? dans le code du userform ? c'est possible ça ? (si je clique sur la checkbox je tape dans le code de la checkbox, mais je ne sais plus si je peux en faire de même pour la userform ?)
Je n'avais pas du tout pensé a cette solution !
Je ne pourrais malheureusement essayer que lundi au boulot ... (enfin je vais pas me plaindre c'est le weekend !)
Par contre je me demande :
Quand tu mets :
Private Sub UserForm_Initialize()
Je tape ça où ? dans le code du userform ? c'est possible ça ? (si je clique sur la checkbox je tape dans le code de la checkbox, mais je ne sais plus si je peux en faire de même pour la userform ?)
Re
Tout ceci est effectivement dans le code du userform qui comprend le code associé à chaque objet composant du userform. Tu vas aussi avoir ton code pour les boutons (valider ou quitter par exemple).
Tu peux donc copier et coller le total pour voir comment cela fonctionne, si tu as les mêmes noms bien sûr.
Tout ceci est effectivement dans le code du userform qui comprend le code associé à chaque objet composant du userform. Tu vas aussi avoir ton code pour les boutons (valider ou quitter par exemple).
Tu peux donc copier et coller le total pour voir comment cela fonctionne, si tu as les mêmes noms bien sûr.
Click droit sur ta checkbox, "Format de controle" onglet "Controle" et rentre la cellule que tu veux liée 'cette checkbox.
Ainsi dans cette cellule s'affichera la valeur "Vrai" ou "Faux" en fonction que si la case est cochée ou pas!
Tu pourras te reservir de cette valeur dans n importe qu elle formule. Si tu veux pas que la valeur apparaisse, ecrit la en blanc sur fond rempli en blanc !!
et voila! un peu plus simple qu une macro. mais je sais pas si ca te convient!
Ainsi dans cette cellule s'affichera la valeur "Vrai" ou "Faux" en fonction que si la case est cochée ou pas!
Tu pourras te reservir de cette valeur dans n importe qu elle formule. Si tu veux pas que la valeur apparaisse, ecrit la en blanc sur fond rempli en blanc !!
et voila! un peu plus simple qu une macro. mais je sais pas si ca te convient!