Stocker variable InputBox

Résolu
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   -  
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   -
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

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61
 
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
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61
 
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
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61
 
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
Maurice
 
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
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61
 
Je venais de le faire juste avant effectivement. Inutile de coder dans chaque checkbox.

Merci.
0