Stocker variable InputBox

Résolu/Fermé
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 - Modifié par Kuartz le 13/10/2015 à 17:53
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 - 14 oct. 2015 à 12:02
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 10902 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 18 novembre 2024 2 425
13 oct. 2015 à 19:55
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 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
14 oct. 2015 à 09:51
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 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
Modifié par Kuartz le 14/10/2015 à 10:28
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 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
14 oct. 2015 à 10:43
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
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 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
14 oct. 2015 à 12:02
Je venais de le faire juste avant effectivement. Inutile de coder dans chaque checkbox.

Merci.
0