Stocker variable InputBox

Résolu
Bonjour,

J'ai écrit le code

Private Sub CheckBox1_Click() 
    Dim reponse as integer 
    If Userform1.CheckBox1.Value = true then 
            reponse=1 
            else 
                reponse=0 
   End If
End Sub

Puis dans mon bouton de validation :

Private Sub Label1_Click()

MsgBox(reponse)

End Sub


Quand je lance mon Userform, que je coche la case et que je valide, ma MsgBox est vide...

Merci de votre aide.

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour

    Essaies en déclarant repose comme variable globale

    Dim reponse as integer 

    Private Sub CheckBox1_Click()
    If Userform1.CheckBox1.Value = true then
    reponse=1
    else
    reponse=0
    End If
    End Sub

    Private Sub Label1_Click()
    MsgBox(reponse)
    End Sub

    Cdlmnt
    1. Effectivement, ça marche. Merci. Je me perd souvent avec les variables globales. On est d'accord que ce sont les mêmes que les variables publiques?
    2. En utilisant exactement le même raisonnement, pourquoi ce genre de code m'affiche une MsgBox vide alors que j'ai coché une case?

      Dim TYPE_PALETTE_DP608 As String
      Dim TYPE_PALETTE_DP610 As String
      Dim TYPE_PALETTE_PRO80 As String
      Dim TYPE_PALETTE_PR100 As String
      
      
      Private Sub CheckBox1_Click()
      If UserForm1.CheckBox1.Value = True Then
        TYPE_PALETTE_PRO608 = "DP608"
      Else
      TYPE_PALETTE_PRO608 = ""
      End If
      End Sub
      
      Private Sub CheckBox2_Click()
      If UserForm1.CheckBox1.Value = True Then
        TYPE_PALETTE_DP610 = "DP610"
      Else
      TYPE_PALETTE_PRO610 = ""
      End If
      End Sub
      
      Private Sub CheckBox3_Click()
      If UserForm1.CheckBox1.Value = True Then
        TYPE_PALETTE_PRO80 = "PRO80"
      Else
      TYPE_PALETTE_PRO80 = ""
      End If
      End Sub
      
      Private Sub CheckBox4_Click()
      If UserForm1.CheckBox1.Value = True Then
        TYPE_PALETTE_PR100 = "PR100"
      Else
      TYPE_PALETTE_PR100 = ""
      End If
      End Sub
      
      Private Sub CommandButton1_Click()
      
      Dim TYPE_PALETTE As String
      
      If TYPE_PALETTE_DP608 <> "" Then TYPE_PALETTE = TYPE_PALETTE_DP608
      If TYPE_PALETTE_DP610 <> "" Then TYPE_PALETTE = TYPE_PALETTE_DP610
      If TYPE_PALETTE_PRO80 <> "" Then TYPE_PALETTE = TYPE_PALETTE_PRO80
      If TYPE_PALETTE_PR100 <> "" Then TYPE_PALETTE = TYPE_PALETTE_PR100
      
      MsgBox (TYPE_PALETTE)
      
      End Sub
    3. Rohlala je suis vraiment trop bête, pardon pour cette question....

      j'ai mis UserForm1.CheckBox1.Value à chaque fois, ça ne risquait pas de marcher...
  2. Bonjour

    tu melange beaucoup de chose
    efface tous les CheckBox_Click
    Private Sub CommandButton1_Click()
    Dim TYPE_PALETTE As String
       If CheckBox1 = True Then TYPE_PALETTE = "DP608"
       If CheckBox2 = True Then TYPE_PALETTE = "DP610"
       If CheckBox3 = True Then TYPE_PALETTE = "PRO80"
       If CheckBox4 = True Then TYPE_PALETTE = "PR100"
    MsgBox (TYPE_PALETTE)
    End Sub
    

    A+
    Maurice
    1. Je venais de le faire juste avant effectivement. Inutile de coder dans chaque checkbox.

      Merci.