Lier une Checkbox avec une cellule sur VBA

drannok -  
Pyvoudelet Messages postés 169 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  2. drannok
     
    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
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      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
    2. drannok
       
      Merci !
      0
  3. Pyvoudelet Messages postés 169 Date d'inscription   Statut Membre Dernière intervention   12
     
    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
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      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
    2. Pyvoudelet Messages postés 169 Date d'inscription   Statut Membre Dernière intervention   12
       
      effectivement! dsl pour l intrusion
      0