Affichage en VBA dans une fenêtre non-modal

mormic60 Messages postés 7 Date d'inscription lundi 19 avril 2010 Statut Membre Dernière intervention 1 octobre 2010 - 30 août 2010 à 16:56
mormic60 Messages postés 7 Date d'inscription lundi 19 avril 2010 Statut Membre Dernière intervention 1 octobre 2010 - 31 août 2010 à 16:56
Bonjour,
Mon programme VBA est lancé à partir d'une feuille Excel.
D'après une liste de codes sélectionnés sur la feuille, il met à jour une base de données dbf.
Je souhaiterais ouvrir une fenêtre d'affichage qui ne bloquerait pas le déroulement de mon programme afin de voir défiler le nom des champs en cours de modification.
J'ai pensé créer un UserForm en mode non-modal, mais le programme se met dans une boucle infernale fatale.
Y-a-t'il une particularité pour utiliser ce mode ou y-a-t'il un autre moyen pour afficher quelquechose en dynamique.
Merci de votre aide
Michel

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 août 2010 à 17:29
Salut

La particularité des formes non modale, c'est que, après un .Show, elles rendent la main au programme, ce qui t'arrange.

Qu'as-tu écrit pour que ça "boucle infernale fatale" ?
As-tu un tout petit DoEvents dans les boucles de travail que tu fais pendant ce temps ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
mormic60 Messages postés 7 Date d'inscription lundi 19 avril 2010 Statut Membre Dernière intervention 1 octobre 2010
31 août 2010 à 09:30
Bonjour et merci de ton aide.

Oui après le .SHOW, j'ai une boucle DO LOOP UNTIL qui recherche toutes les cellules sélectionnées de la feuille pour mettre à jour ma base de données.
C'est dans cette boucle que je mets à jour un Control Zone de texte qui est sensé afficher les enregistrements modifiés. La fenêtre s'ouvre bien mais je ne vois pas le Control apparaître; et l'écran se met à clignoter indiquant que la boucle fonctionne.
J'appelle cela une boucle fatale car je suis obligé de faire un "CTRL Arrêt" pour en sortir.

Cordialement
Michel
0
mormic60 Messages postés 7 Date d'inscription lundi 19 avril 2010 Statut Membre Dernière intervention 1 octobre 2010
31 août 2010 à 10:05
Bonjour à nouveau

Ce message annule et remplace le précédent.

En fait, maintenant je n'ai plus de boucle infernale fatale, ma fenêtre apparaît bien puis se ferme en fin de boucle.
Je ne sais pas pourquoi cela bouclait auparavant.

Il me reste le problème que dans ma fenêtre le Control Text n'apparaît pas.

Cordialement
Michel
0
mormic60 Messages postés 7 Date d'inscription lundi 19 avril 2010 Statut Membre Dernière intervention 1 octobre 2010
31 août 2010 à 16:56
Bonsoir,

Le DoEvents dont tu m'as parlé m'a interpelé et je l'ai mis en place dans ma boucle juste avant l'instruction d'affichage du Control TextBox.
Eureka, cela fonctionne parfaitement maintenant.

Merci beaucoup pour cette aide.

Cordialement
Michel
0
Rejoignez-nous