Question code vba imputbox

Résolu
eastpeople Messages postés 105 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 novembre 2008 - 18 juin 2008 à 11:49
eastpeople Messages postés 105 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 novembre 2008 - 18 juin 2008 à 17:22
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

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
18 juin 2008 à 17:16
...

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+
3
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
18 juin 2008 à 16:13
Salut,

essais de remplacer :

Do While Reponse = ""

par

Do While prix1.Text = ""

A+
0
eastpeople Messages postés 105 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 novembre 2008
18 juin 2008 à 16:56
Idem il me remet toujour l'msg quand une valeur est rentrée et validée dans l'input.
0
eastpeople Messages postés 105 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 novembre 2008
18 juin 2008 à 17:22
Ok merci beaucoup, merci pour tous.
Bonne fin d'aprem.
0
Rejoignez-nous