Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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:

Efgé

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

Re
Je ne voulais pas dire que tu metais en doute
N'aillant pas vraiment suivi, je voulais juste vous montrer mon résultat.
Je pensai que la boite ne s'affichai pas

Cordialement
 

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
 

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

dionys0s

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

Effectivement...

Pour récupérer le résultat du UserForm directement dans une fonction d'un module normal, je suis obligé de l'affecter à une variable globale ?
 

Si...

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

re

pas obligatoire mais tout dépend de l'ensemble du Projet !
Fournis un exemple de fonction et j'essaierai de répondre dans le contexte.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…