UserForm modeless dans une boucle [VBA][Excel] - VB/VBA/VBS - Programmation
Marsh Posté le 02-05-2013 à 15:06:45
Bonjour.
Vraiment pas clair …
Un UserForm a besoin d'être actif afin que ces champs soient saisissables !
Quelle est donc précisément son utilité ?
Marsh Posté le 02-05-2013 à 15:15:39
Le "mode", ce n'est pas de savoir si l'UserForm est actif ou non, mais de savoir si le reste de l'application excel est accessible ou non lorsque l'UserForm est actif.
Cf aide :
Citation : Remarks |
Marsh Posté le 02-05-2013 à 15:26:17
Si cela avait été précisé dès le premier message !
Bref, simplement passer une fois pour toutes sa propriété ShowModal à False dans la fenêtre des propriétés de l'UserForm.
Mais alors il y aurait un souci de conception auquel je ne pourrais répondre sans connaître la problématique la plus précise …
Marsh Posté le 03-05-2013 à 13:55:29
J'y penserai la prochaine fois
Donc, a priori, c'est du à un souci du design de ShowModal : un UserForm en modeless n'interrompt pas le code (je comprends pas vraiment pourquoi, mais c'est comme ca ).
J'ai testé pas mal de trucs pour essayer de contourner ca (une boucle Do While DoEvents, ou lancer l'UserForm depuis une autre application, mais sans succès).
Si quelqu'un a une idée je prends
Marsh Posté le 03-05-2013 à 15:19:35
C'est tout à fait normal !
Un UserForm en mode non modal sert par exemple à une boîte à outils, une calculatrice, … bref à toute procédure indépendante.
Tu peux insérer l'instruction Stop dans ta procédure mais l'utilisateur saura-t-il la relancer ?
Marsh Posté le 03-05-2013 à 16:35:32
L'user, ce sera moi pour au moins les premiers mois, donc ca devrait aller
Par la procédure Stop, tu veux dire le bouton rouge qu'on utilise avec F9 dans le code ? Est-ce qu'il y a des moyens de le controler avec des macro/boutons sur l'UserForm ou alors c'est à coup de F5/F9 ?
Marsh Posté le 03-05-2013 à 16:42:11
Une instruction …
Code :
|
Marsh Posté le 08-05-2013 à 11:16:24
Bon, ça faisait pas non plus ce que je voulais, du coup j'ai du rusé en important toutes les données utiles dans l'UserForm
Merci bien quand même
Marsh Posté le 02-05-2013 à 14:59:34
Bonjour,
Dans mon programme, j'ai une boucle qui appelle un UserForm
Pour compléter cet UserForm, l'utilisateur a besoin d'avoir accès à la feuille excel, l'option .Show est donc définie avec False.
Or, avec False, la boucle passe automatiquement à l'étape suivante sans laisser la main à l'user, et seul l'UserForm correspondant au dernier élément de la boucle est affichée à l'écran.
Si je passe le .Show en True, là, tous les UserForm sont affichés les uns après les autres, mais l'user ne peut plus accèder à la feuille excel.
Schématiquement, j'ai besoin d'avoir ceci :
J'ai l'impression de manquer un truc simple, genre une commande "break" ou "resume". Une idée ?
Message édité par Tzol le 02-05-2013 à 15:00:16