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

  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
    0
    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?
      0
    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
      0
    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...
      0
  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
    0
    1. Je venais de le faire juste avant effectivement. Inutile de coder dans chaque checkbox.

      Merci.
      0