Saisie dans Implication.Inputbox ne renvoie une erreur...que pour une valeur!

bafou

XLDnaute Nouveau
Bonjour à tous,

je retourne ma petite macro depuis plusieurs heures...mais rien n'y fait. Je souhaite que l'utilisateur effectue une simple saisie de date via 3 applications inputbox.

Celle-ci fonctionne bien...sauf lorsque j'entre la valeur 2 dans mon Inputbox et ne charge pas la valeur dans la feuille :confused: ! Il passe alors en exit sub (cf. plus bas). Je ne comprends vraiment pas car toutes les autres valeurs fonctionnent sans problème.

je suis à l'écoute de toutes les idées et vous remercie par avance pour votre temps.


Dim vp_annee As String
Dim vp_mois As String
Dim vp_jour As String

'On Error GoTo ERROR_HANDLING

vp_annee = Application.InputBox(prompt:="Merci d'entrer l'année [AAAA]", Title:="Outil d'Extraction", Default:=Year(Now))
If vp_annee = "" Or vp_annee = vbCancel Then
Exit Sub
Else
Range("Pilotage!B2") = vp_annee
End If

vp_mois = Application.InputBox(prompt:="Merci d'entrer le mois [MM]", Title:="Outil d'Extraction", Default:=Month(Now))
If vp_mois = "" Then
Exit Sub
Else
Range("Pilotage!B3") = vp_mois
End If

vp_jour = Application.InputBox(prompt:="Merci d'entrer le jour [JJ]", Title:="Outil d'Extraction", Default:=Day(Now))
If vp_jour = vbCancel Then
Exit Sub
Else
Range("Pilotage!B4") = vp_jour
End If

Cordialement,

Fabien
 

kjin

XLDnaute Barbatruc
Re : Saisie dans Implication.Inputbox ne renvoie une erreur...que pour une valeur!

Bonsoir,
Tu attribues à vp_jour la valeur vrai ou faux
Donc
Code:
On Error Resume Next
vp_jour = Application.InputBox(prompt:="Merci d'entrer le jour [JJ]", Title:="Outil d'Extraction", Default:=Day(Now))
If vp_jour = "" Or vp_jour = False Then Exit Sub
On Error GoTo 0
Range("B4") = vp_jour
A adapter pour les autres inputbox
A+
kjin
 

bafou

XLDnaute Nouveau
Re : Saisie dans Implication.Inputbox ne renvoie une erreur...que pour une valeur!

Merci kjin c'est impeccable.

C'est le vbcancel qui provoquait donc l'erreur. Je vais pouvoir dormir ! Enfin je ne comprendrai jamais pourquoi la box ne renvoyait rien uniquement avec la valeur "2".

Encore merci !

Fabien
 

Pierrot93

XLDnaute Barbatruc
Re : Saisie dans Implication.Inputbox ne renvoie une erreur...que pour une valeur!

Bonjour à tous,

perso, vois pas de "vbcancel" dans l'utilisation de la méthode "inputbox", seulement le bouton "annuler" qui renvoie une valeur de type "booleen"...
Ou alors quelque chose doit m'échapper...
bonne journée
@+
 

Pierrot93

XLDnaute Barbatruc
Re : Saisie dans Implication.Inputbox ne renvoie une erreur...que pour une valeur!

Re,

OK pour une "msgbox", mais ici il me semble qu'il s'agit plutôt d'une "inputbox" de plus initiée par la méthode, de ce fait la valeur renvoyée est différente, ainsi que le type d'ailleurs....

Le bouton "annuler" d'une "inputbox" renvoie "false" (type de donnée "booleen") et le bouton "cancel" d'une "msgbox" renvoie 2("vbcancel" de type integer).
 

Pierrot93

XLDnaute Barbatruc
Re : Saisie dans Implication.Inputbox ne renvoie une erreur...que pour une valeur!

Re,

A noter que cela expliquait quand même la sortie de la procédure lorsque 2 était rentré dans "l'inputbox", puisque le test comparait cette même valeur à la constante "vbcancel" qui vaut 2...
 

Staple1600

XLDnaute Barbatruc
Re : Saisie dans Implication.Inputbox ne renvoie une erreur...que pour une valeur!

Bonjour à tous


Une question en passant:

Pourquoi ne pas utiliser simplement InputBox et non pas Application.InputBox ?

(cf ci-dessous, issu de l'aide VBA)

La méthode InputBox est différente de la fonction InputBox, car elle permet de valider de façon sélective les entrées de l'utilisateur et peut aussi être utilisée avec des objets, des valeurs d'erreur et des formules de Microsoft Excel. Remarquez que Application.InputBox appelle la méthode InputBox ; InputBox sans qualificateur d'objet appelle la fonction InputBox.
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 936
Membres
103 987
dernier inscrit
Doctami