InputBox qui ne s'affiche pas - Erreur 2015

dionys0s

XLDnaute Impliqué
Hello le forum

j'ai un petit soucis avec une macro :

j'ai créé une fonction générique qui permet de sélectionner un élément (elle s'appelle SelectElement) d'une variable tableau en 1 dimension.
Dans le classeur en PJ, je fais un premier choix (parmi 5 classifications), et en fonction du premier choix, il y a un deuxième choix à effectuer.

Lorsque je choisis l'une des 4 premières classifications, tout se passe bien, et ma fonction se comporte comme il faut.
Mais lorsque je choisis la 5ème classification, la fonction générique plante, sans que je comprenne pourquoi : tout s'initialise comme il faut, mais au moment où le code doit traiter la ligne
Code:
SelectElement = Application.InputBox(Prompt, Title)
(les variables "Prompt" et "Title" ayant été affectées lors de l'initialisation), l'exécution "glisse" sur cette ligne, sans afficher l'InputBox, et ma fonction récupère "Erreur 2015", et plante au moment de tester la validité de la variable récupérée par ce qui aurait dû être tapé par l'utilisateur.

Est-ce que sur votre ordinateur le code se comporte comme chez moi ? Si oui, quelqu'un aurait-il une idée du pourquoi du comment ? Ca fait un bout de temps que je me triture les méninges sur ce truc, et je ne comprends vraiment pas pourquoi ça fait ça...

D'avance merci pour votre aide

dionys0s
 

Pièces jointes

  • Application.InputBox - Erreur 2015.xlsm
    57.9 KB · Affichages: 65
Dernière édition:

gilbert_RGI

XLDnaute Barbatruc
Re : InputBox qui ne s'affiche pas - Erreur 2015

Oui, j'avais déjà vu que ça marchait sans Application, mais j'ai besoin de Application pour traiter l'annulation
Code:
if VarType(SelectElement) = vbBoolean then End

Je ne sais pas faire autrement...

comme ceci pour sortir de la fonction si annuler est cliqué

Code:
If Len(SelectElement) = 0 Then MsgBox "erreur": Exit Function

puis mettre une gestion d'erreur pour sortir du sub :cool:
 

dionys0s

XLDnaute Impliqué
Re : InputBox qui ne s'affiche pas - Erreur 2015

Re,

le problème Gilbert, c'est que la réponse vide peut être autorisée, et l'annulation l'est systématiquement, donc je ne peux pas généraliser cette méthode. Seul Application.InpuBox permet de récupérer de manière fiable l'évènement annulation...
 

Si...

XLDnaute Barbatruc
Re : InputBox qui ne s'affiche pas - Erreur 2015

salut

je n'utilise qu'exceptionnellement cette boîte (trop de problèmes comme ici).
Je suis plus à l'aise avec un "Userform".
Bon bah il ne me reste plus qu'à gérer ça avec un UserForm créé à la volée...

Pourquoi à la volée ? Tu peux l'appleler de la même façon que l'autre boîte non ?

Voilà un exemple avec un code bien plus simple (ici l'exploitation n'est pas traitée)
 

Pièces jointes

  • Liste Dépendante (UsF).xlsm
    23.8 KB · Affichages: 31

Statistiques des forums

Discussions
315 089
Messages
2 116 099
Membres
112 661
dernier inscrit
ceucri