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

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:

MJ13

XLDnaute Barbatruc
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
 

mamyfik

XLDnaute Nouveau
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:
G

Guest

Guest
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:
G

Guest

Guest
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+
 

mamyfik

XLDnaute Nouveau
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!

++
 

Discussions similaires

Statistiques des forums

Discussions
312 506
Messages
2 089 126
Membres
104 040
dernier inscrit
pb91