j'ai un soucis avec le type de variable demande quand je quitte une macro via l'input box (le bouton Cancel).
Voici la partie de code incriminé :
Code:
Sub atest()
Dim ID As Long
'Saisie ID
ID = InputBox("entrez le numéro d'article")
If StrPtr(ID) = 0 Then Exit Sub
End Sub
Si je ne déclare pas la variable ou si je la déclare en variant, le programme s’arrête normalement. Mais dès que je la déclare en long, le message d'erreur apparaît !
Re : Erreur 13 lors d'une interruption via input box (cancel)
Bonjour,
C'est normal. Le bouton Cancel renvoie "false" il faut donc déclarer ID en Variant afin qu'il accepte à la fois le Boolean du Cancel et le Long de la réponse normale.
Re : Erreur 13 lors d'une interruption via input box (cancel)
Bonjour G.Milano, Mécano, bonjour le forum,
Peut-ête comme ça :
Code:
Sub atest()
Dim BE As String
Dim ID As Long
'Saisie ID
BE = Application.InputBox("entrez le numéro d'article", Type:=1)
If BE = False Then Exit Sub
ID = CLng(BE)
End Sub
Re : Erreur 13 lors d'une interruption via input box (cancel)
Merci a vous deux. C'est juste un problème de nature de variable alors. Je préfère gérer l'erreur plutôt que de la contourner avec une nouvelle variable, j'ai donc fait ça, et ça marche !
Code:
'Saisie ID
On Error Resume Next
ID = InputBox("entrez le numéro d'article")
If Err > 0 Then Exit Sub
On Error GoTo 0