[Résolu]Etonnant message dans une Application.Inputbox

  • Initiateur de la discussion Initiateur de la discussion mamyfik
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mamyfik

XLDnaute Nouveau
Bonjour à tous!

Dans mon code vba, je créé une inputbox comme ceci :
Code:
Dim Annee as Integer

Annee = 1

While Annee < Year(Now) And Annee > 0
            Annee = Application.InputBox("En quelle année voulez-vous classer ce dossier?" _
            & vbCrLf & _
            "Saisissez une année supérieure ou égale à l'année en cours :", "Saisie de l'année", Type:=1)
Wend

Voilà le problème : lorsque l'utilisateur clique sur le bouton "OK" de l'inputbox, sans rien écrire dans le champ texte cela m'ouvre la boîte de dialogue d'erreur de formule:
"La formule que vous avez tapée contient une erreur [...]" et cela revient à l'inputbox naturellement, mais pas parce que l'inputbox est dans un "while". Du coup, je ne peux pas gérer cette erreur moi-même.

Je ne comprends pas du tout pourquoi cela fait cela, c'est complètement incohérent comme message d'erreur. Est-ce que quelqu'un sait ce qu'il se passe?
 
Dernière édition:
Re : Etonnant message dans une Application.Inputbox

Bonjour mamyfik

Il faut tester l'éat du inputbox avec if, il me semble.

Code:
Sub test()
Message = InputBox("combien?")
If Message = False Then Exit Sub Else ActiveCell = Message
End Sub
 
Re : Etonnant message dans une Application.Inputbox

Désolé!
J'avais complètement oublié le "Application.DisplayAlerts = False"! :/
Mais cela ne permet quand même pas de gérer ce cas...

[édit] J'ai posté en même temps que toi désolé! Je vais testé cela! Merci pour ta réponse [édit]
 
Dernière édition:
Re : Etonnant message dans une Application.Inputbox

Bonjour mayfik,
Michel🙂

Chez moi ceci fonctionne:

Code:
Annee = Year(Date) 
 
Do
             Annee = Application.InputBox("En quelle année voulez-vous classer ce dossier?" _
             & vbCrLf & _
             "Saisissez une année supérieure ou égale à l'année en cours :", "Saisie de l'année", Type:=1)
Loop While Annee < Year(Now)

A+
 
Dernière modification par un modérateur:
Re : Etonnant message dans une Application.Inputbox

Re,

Non, mais cela tu ne l'empêchera pas. C'est la Méthode Application.InputBox qui veut cela. Avant de rendre la main, elle évalue l'expression entrée. s'il y a une erreur d'expression (text à la plage de nombre) elle renvoie un message correspondant à l'erreur.

Le textBox de la fenêtre est une sorte de contrôle RefEdit lié aux fonctions et méthodes excel. Les messages sont ceux de l'interface.

Utilise plutôt la FONCTION InputBox comme te l'a montrée MJ13 qui renvoie toujours un String, sans en évaluer l'expression.

Regarde l'aide sur InputBox (fonction) et InputBox (méthode) pour voir la différence.

A+
 
Re : Etonnant message dans une Application.Inputbox

D'accord je comprends!
Mais je trouve le message renvoyé ici vraiment incohérent, complètement HS!

Je ne savais pas qu'il y avait une si grande différence entre les deux inputbox. Enfin, que l'une était une méthode et l'autre une fonction
Merci pour ces éclaircissements! 🙂
Merci à vous deux!

++
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour