Code fermeture Userform - VB/VBA/VBS - Programmation
Marsh Posté le 04-04-2006 à 14:16:18
Je ne comprends pas ce que vient faire ton inputbox là au milieu.
Quand une zone texbox est mal remplie on demande à ce qu'elle le soit avant de valider/sauvegarder/passer à l'écran suivant.
On ne détourne pas la saisie dans une inputbox. La saisie doit se faire dans la textbox.
Et si je comprends bien la structure de ton prog, ça t'éviterais d'avoir à gérer une boucle de validation inutile.
Il faut que tu sois plus précis sur le déclenchement actuel des événements et des traitements que tu fais. Ta structure IF.. Endif, elle sert à quoi ? Elle est dans quelle partie du code ? Elle se déclenche quand ?
Marsh Posté le 04-04-2006 à 16:12:33
**** Pour une meilleure compréhension, je joins la procédure concernée dont les Inputbox fonctionnent très bien en cas de mauvaises saisies.
En clair, quel code dois-je insérer à l'intérieur pour que la boîte de dialogue soit automatiquement déchargée, si je clique sur la croix rouge en haut du Userform, sans tenir compte de la saisie ou non dans les Inputbox.
Merci d'avance.
Alain_mc
Code :
|
Marsh Posté le 04-04-2006 à 16:52:29
Il faut réussir à différencier :
la sortie en cliquant sur la croix (qui évite les contrôles)
et les autres types de sortie (qui passent dans les contrôles).
Tu crées une variable booléenne « flag » qui est à True si tu veux passer dans les contrôles et à False sinon.
Tu places un grand « IF flag Endif » encadrant tes boucles de validation (éventuellement d'autres lignes) et le tour est joué.
Mais je n'en pense pas moins ce que jai écrit avant.
Marsh Posté le 04-04-2006 à 13:20:19
Bonjour à tous,
Qui peut me venir en aide ? Une partie du code de mon programme oblige la saisie, par InputBox, de toute donnée oubliée ou erronée dans une TextBox. La structure de boucle que j'ai mise en place est de type "Do While TextBox1="" or Not IsNumeric(TextBox1) then .....Code=InputBox(etc...)........ Loop. Cela fonctionne parfaitement.
Mon problème est que si je veux mettre fin à mon UserForm chargé à l'écran avec UserForm1.Show, en cliquant sur la croix rouge située à l'extrémité supérieure droite de ma boîte de dialogue, mon InputBox apparait quand même pour m'obliger à une saisie pour ma TextBox, ce que je ne veux pas.
Question :
Dans les structures If..... End If, j'ai donc l'obligation de positionner le code du clic pour décharger mon UserForm (croix rouge supérieure droite) à un niveau supérieur à celui du contrôle de la saisie dans ma TextBox.
Mais je bloque sur le code Vba pour Excel 2003 à écrire dans le cas où je veux mettre fin à mon affichage de boîte de dialogue par simple clic sur la croix rouge du UserForm, que l'information qui doit prendre place dans la TextBox1 ait été remplie ou pas.
Merci de votre coopération.
Alain_mc