Question code vba imputbox [Résolu]

Signaler
Messages postés
105
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 novembre 2008
-
Messages postés
105
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 novembre 2008
-
Bonjour, j'ai un petit problème sur ce code :

Private Sub case1_Click()
Dim Reponse As Variant
If MODIFICATION Then Exit Sub
    If case1 = False Then
    'si la case chekbox1 n'est pas cocher alors
        prix1.Enabled = False
        'la case prix1 n'est pas griser
    Else
        prix1.Enabled = True
        'la case prix1 est griser (pas accessible)
        Do While Reponse = ""
            Reponse = Application.InputBox("Veuillez entrer le prix correspondant SVP", "PRIX")
        'inputbox apparaît quand une case chekbox est coché
        If Reponse = False Then
        'si on click sur annuler de l'inputbox Reponse alors
            case1 = False
            'la case est décochée
            Exit Do
        Else
        'sinon
            prix1.Text = Reponse
        End If
        'si la case est coché mais que le prix est vide alors
        erreur = MsgBox("Vous avez coché la case, veuillez rentrer un prix", vbOKOnly + vbCritical, "OUPS")
        'msgbox
        Loop
    End If
End Sub

Alors, quand l'inputbox s'ouvre, si on click sur annuler ça sort, si on click sur Ok sans rien marqué cela nous envoi un msgbox et nous remet sur l'input mais quand on rentre un chiffre puis que l'on click sur Ok, il nous envoi quand même l'msgbox erreur.
Je pensais déplacer le Loop mais je ne sais pas si c'est cela.
Merci de votre aide.

4 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
...

fait gaffe c'est bien Do While Reponse = "" j'ai aussi modifié d'autre partie:

Private Sub case1_Click()
    Dim Reponse As Variant
    If MODIFICATION Then Exit Sub
    If case1 = False Then
    'si la case chekbox1 n'est pas cocher alors
        prix1.Enabled = False
        'la case prix1 n'est pas griser
    Else
        prix1.Enabled = True
        'la case prix1 est griser (pas accessible)
        Do While Reponse = ""
            Reponse = Application.InputBox("Veuillez entrer le prix correspondant SVP", "PRIX")
            'inputbox apparaît quand une case chekbox est coché
            If Reponse = False Then
            'si on click sur annuler de l'inputbox Reponse alors
                case1 = False
                'la case est décochée
                Exit Do
            Elseif  Reponse = "" then
            'si la case est coché mais que le prix est vide alors

                erreur = MsgBox("Vous avez coché la case, veuillez rentrer un prix", vbOKOnly + vbCritical, "OUPS")

                'msgbox
            Else
            'sinon
                prix1.Text = Reponse
            End If
        Loop
    End If
End Sub

Désolé j'ai pas tout regardé hier

A+
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

essais de remplacer :

Do While Reponse = ""

par

Do While prix1.Text = ""

A+
Messages postés
105
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 novembre 2008

Idem il me remet toujour l'msg quand une valeur est rentrée et validée dans l'input.
Messages postés
105
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 novembre 2008

Ok merci beaucoup, merci pour tous.
Bonne fin d'aprem.