D1:
x=3DInputbox("Combien de lignes ?","Param=E8tre")
On Error GoTo D1
etc...
Probl=E8me : si une personne saisit "aa" comme valeur pour x=20
la Inputbox ne se recharge pas, on a le message de=20
d=E9bogage classique et VB s'ouvre. Comment faire pour dire=20
en gros que si x n'est pas un num=E9rique, la macro doit=20
reprendre en D ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Vincent.
Bonjour, Tout d'abord, la ligne On Error GoTo D1 doit être placée avant que l'erreur puisse arrivé donc, au choix, juste après le Sub, soit juste parès D1:, soit... en tous cas avant le InputBox. Ensuite, je te suggères de lire attentivement l'aide disponible sur les InputBox appliqués à l'objet Application. Tu y verras en particulier que :
x = Application.InputBox("Combien de lignes ?", _ "Paramètre", , , , , , 1)
gère automatiquement le fait que la valeur à saisir est un nombre (entier, je ne sais plus ?!...)
Pour plus de précisions, n'hésite pas à revenir ! A+
V.
-----Message d'origine----- Bonjour à tous et à toutes,
Ci joint le début de mon code
Sub test ()
Dim x
D1: x=Inputbox("Combien de lignes ?","Paramètre") On Error GoTo D1
etc...
Problème : si une personne saisit "aa" comme valeur pour x
la Inputbox ne se recharge pas, on a le message de débogage classique et VB s'ouvre. Comment faire pour dire en gros que si x n'est pas un numérique, la macro doit reprendre en D ?
Merci .
Bonjour,
Tout d'abord, la ligne On Error GoTo D1 doit être placée
avant que l'erreur puisse arrivé donc, au choix, juste
après le Sub, soit juste parès D1:, soit... en tous cas
avant le InputBox.
Ensuite, je te suggères de lire attentivement l'aide
disponible sur les InputBox appliqués à l'objet
Application. Tu y verras en particulier que :
x = Application.InputBox("Combien de lignes ?", _
"Paramètre", , , , , , 1)
gère automatiquement le fait que la valeur à saisir est un
nombre (entier, je ne sais plus ?!...)
Pour plus de précisions, n'hésite pas à revenir !
A+
V.
-----Message d'origine-----
Bonjour à tous et à toutes,
Ci joint le début de mon code
Sub test ()
Dim x
D1:
x=Inputbox("Combien de lignes ?","Paramètre")
On Error GoTo D1
etc...
Problème : si une personne saisit "aa" comme valeur pour
x
la Inputbox ne se recharge pas, on a le message de
débogage classique et VB s'ouvre. Comment faire pour dire
en gros que si x n'est pas un numérique, la macro doit
reprendre en D ?
Bonjour, Tout d'abord, la ligne On Error GoTo D1 doit être placée avant que l'erreur puisse arrivé donc, au choix, juste après le Sub, soit juste parès D1:, soit... en tous cas avant le InputBox. Ensuite, je te suggères de lire attentivement l'aide disponible sur les InputBox appliqués à l'objet Application. Tu y verras en particulier que :
x = Application.InputBox("Combien de lignes ?", _ "Paramètre", , , , , , 1)
gère automatiquement le fait que la valeur à saisir est un nombre (entier, je ne sais plus ?!...)
Pour plus de précisions, n'hésite pas à revenir ! A+
V.
-----Message d'origine----- Bonjour à tous et à toutes,
Ci joint le début de mon code
Sub test ()
Dim x
D1: x=Inputbox("Combien de lignes ?","Paramètre") On Error GoTo D1
etc...
Problème : si une personne saisit "aa" comme valeur pour x
la Inputbox ne se recharge pas, on a le message de débogage classique et VB s'ouvre. Comment faire pour dire en gros que si x n'est pas un numérique, la macro doit reprendre en D ?
Merci .
AV
Une...
Sub test() Dim x As Long D1: On Error Resume Next x = InputBox("Combien de lignes ?", "Paramètre") If Err.Number <> 0 Or x > 65536 Then GoTo D1: If x = "" Then Exit Sub 'la suite End Sub
AV
"Franck" a écrit dans le message news: 10c001c3b42b$29d69cf0$ Bonjour à tous et à toutes,
Ci joint le début de mon code
Sub test ()
Dim x
D1: x=Inputbox("Combien de lignes ?","Paramètre") On Error GoTo D1
etc...
Problème : si une personne saisit "aa" comme valeur pour x la Inputbox ne se recharge pas, on a le message de débogage classique et VB s'ouvre. Comment faire pour dire en gros que si x n'est pas un numérique, la macro doit reprendre en D ?
Merci
Une...
Sub test()
Dim x As Long
D1:
On Error Resume Next
x = InputBox("Combien de lignes ?", "Paramètre")
If Err.Number <> 0 Or x > 65536 Then GoTo D1:
If x = "" Then Exit Sub
'la suite
End Sub
AV
"Franck" <bernard@tolbiac.inserm.fr> a écrit dans le message news:
10c001c3b42b$29d69cf0$a301280a@phx.gbl...
Bonjour à tous et à toutes,
Ci joint le début de mon code
Sub test ()
Dim x
D1:
x=Inputbox("Combien de lignes ?","Paramètre")
On Error GoTo D1
etc...
Problème : si une personne saisit "aa" comme valeur pour x
la Inputbox ne se recharge pas, on a le message de
débogage classique et VB s'ouvre. Comment faire pour dire
en gros que si x n'est pas un numérique, la macro doit
reprendre en D ?
Sub test() Dim x As Long D1: On Error Resume Next x = InputBox("Combien de lignes ?", "Paramètre") If Err.Number <> 0 Or x > 65536 Then GoTo D1: If x = "" Then Exit Sub 'la suite End Sub
AV
"Franck" a écrit dans le message news: 10c001c3b42b$29d69cf0$ Bonjour à tous et à toutes,
Ci joint le début de mon code
Sub test ()
Dim x
D1: x=Inputbox("Combien de lignes ?","Paramètre") On Error GoTo D1
etc...
Problème : si une personne saisit "aa" comme valeur pour x la Inputbox ne se recharge pas, on a le message de débogage classique et VB s'ouvre. Comment faire pour dire en gros que si x n'est pas un numérique, la macro doit reprendre en D ?
Merci
Nicolas B.
Salut,
Une solution (parmi plein d'autres) sans utiliser les On Error Goto :
Dim x While Not IsNumeric(x) Or x = "" x = InputBox("Nombre ?") Wend
D1: x=Inputbox("Combien de lignes ?","Paramètre") On Error GoTo D1
etc...
Problème : si une personne saisit "aa" comme valeur pour x la Inputbox ne se recharge pas, on a le message de débogage classique et VB s'ouvre. Comment faire pour dire en gros que si x n'est pas un numérique, la macro doit reprendre en D ?
Merci
Salut,
Une solution (parmi plein d'autres) sans utiliser les On Error Goto :
Dim x
While Not IsNumeric(x) Or x = ""
x = InputBox("Nombre ?")
Wend
D1:
x=Inputbox("Combien de lignes ?","Paramètre")
On Error GoTo D1
etc...
Problème : si une personne saisit "aa" comme valeur pour x
la Inputbox ne se recharge pas, on a le message de
débogage classique et VB s'ouvre. Comment faire pour dire
en gros que si x n'est pas un numérique, la macro doit
reprendre en D ?
D1: x=Inputbox("Combien de lignes ?","Paramètre") On Error GoTo D1
etc...
Problème : si une personne saisit "aa" comme valeur pour x la Inputbox ne se recharge pas, on a le message de débogage classique et VB s'ouvre. Comment faire pour dire en gros que si x n'est pas un numérique, la macro doit reprendre en D ?