Booléen
frad
-
frad -
frad -
Bonsoir à tous
j'aimerai pouvoir régler un petit problème !
Voila quand j'ouvre une boite de saise pour VBA excel et que je veut traiter l'action "annuler", je la traite par :
nb_ligne = Application.InputBox(Prompt:="NOMBRE DE LIGNE", Title:="prono", _
Type:=1)
If nb_ligne = False Then
Exit Sub
End If
Le probléme est que si je rentre la valeur 0 dans ma boite de dialogue, il prend ca comme False.
Comment puis contourner ca ?
Merci d'avance
j'aimerai pouvoir régler un petit problème !
Voila quand j'ouvre une boite de saise pour VBA excel et que je veut traiter l'action "annuler", je la traite par :
nb_ligne = Application.InputBox(Prompt:="NOMBRE DE LIGNE", Title:="prono", _
Type:=1)
If nb_ligne = False Then
Exit Sub
End If
Le probléme est que si je rentre la valeur 0 dans ma boite de dialogue, il prend ca comme False.
Comment puis contourner ca ?
Merci d'avance
4 réponses
l'action annuler renvoie une chaine de longueur nulle et il serait préférable de tester "" plutôt que false.
nb_ligne = Application.InputBox(Prompt:="NOMBRE DE LIGNE", Title:="prono", _
Type:=1)
If nb_ligne = "" Then Exit Sub
Dans ce cas, le problème peut se poser si la saisie est vide malgré OK,
mais lorsque l'on demande une saisie elle ne doit pas être absente.
Si l'on renseigne une valeur par défaut cela permet de contrôler.
toujours zen
nb_ligne = Application.InputBox(Prompt:="NOMBRE DE LIGNE", Title:="prono", _
Type:=1)
If nb_ligne = "" Then Exit Sub
Dans ce cas, le problème peut se poser si la saisie est vide malgré OK,
mais lorsque l'on demande une saisie elle ne doit pas être absente.
Si l'on renseigne une valeur par défaut cela permet de contrôler.
toujours zen
Salut
Mon probleme persiste :
Je fais bien le test avec "" mais si je ne rentre aucune valeur, la procédure continue à s'exécuter sans sortir.
Do
a = Application.InputBox(Prompt:="Pronostic du premier ", Title:="Les plus joués")
If a = "" Then
Exit Sub
End If
Loop Until (a >= 0) And (a <= 8)
Merci de me sauver :)
Mon probleme persiste :
Je fais bien le test avec "" mais si je ne rentre aucune valeur, la procédure continue à s'exécuter sans sortir.
Do
a = Application.InputBox(Prompt:="Pronostic du premier ", Title:="Les plus joués")
If a = "" Then
Exit Sub
End If
Loop Until (a >= 0) And (a <= 8)
Merci de me sauver :)
ca y est, j'ai trouve !
1) pour etre sur de gerer toutes les erreurs, ne précise pas de type d'InputBox :
nb_ligne = Application.InputBox("NOMBRE DE LIGNE", "prono")
2) si la reponse est echap, nb_ligne = Faux
3) si la reponse est rien + OK, nb_ligne = ""
4) si la reponse est qquechose + OK, nb_ligne = qquechose
je propose donc le code suivant (avec plein de boites de message tres enervantes) :
voila, bon courage et a plus
Il y a 10 types de personnes dans le monde
Ceux qui comprennent le binaire et les autres.
1) pour etre sur de gerer toutes les erreurs, ne précise pas de type d'InputBox :
nb_ligne = Application.InputBox("NOMBRE DE LIGNE", "prono")
2) si la reponse est echap, nb_ligne = Faux
3) si la reponse est rien + OK, nb_ligne = ""
4) si la reponse est qquechose + OK, nb_ligne = qquechose
je propose donc le code suivant (avec plein de boites de message tres enervantes) :
Sub test()
Dim nb_ligne As Variant
Do: nb_ligne = Application.InputBox("NOMBRE DE LIGNE", "prono")
If nb_ligne = "" Then
MsgBox "Tu n'a rien saisi avant de faire ""OK"", recommence."
Else
If (CStr(nb_ligne) = CStr(False)) Then
MsgBox "Tu as fait ""Echap"", le programme va s'arreter."
Exit Sub
Else
If IsNumeric(nb_ligne) Then
MsgBox "Bravo, tu as saisi " & nb_ligne & ", le programme va continuer."
Else
MsgBox "Tu n'as pas saisi une valeur numerique, recommence."
End If
End If
End If
Loop Until ((nb_ligne <> "") And IsNumeric(nb_ligne))
End Sub
voila, bon courage et a plus
Il y a 10 types de personnes dans le monde
Ceux qui comprennent le binaire et les autres.