Lier une Checkbox avec une cellule sur VBA

Fermé
drannok - 19 nov. 2010 à 19:02
Pyvoudelet Messages postés 166 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 18 mai 2020 - 27 nov. 2010 à 21:17
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 !

3 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
19 nov. 2010 à 19:30
bonjour

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.
3
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 ?)
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
19 nov. 2010 à 19:47
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.
0
Merci !
0
Pyvoudelet Messages postés 166 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 18 mai 2020 12
26 nov. 2010 à 17:46
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!
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
26 nov. 2010 à 21:35
bonjour,

Tu as oublié ceci : J'ai créé une boite de dialogue via un userform sur VBA. et ta fonction ne s'applique pas aux checkbox dans un userform.
0
Pyvoudelet Messages postés 166 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 18 mai 2020 12
27 nov. 2010 à 21:17
effectivement! dsl pour l intrusion
0