Affichage de 2 informations pendant le même temps

Bonjour,

Sur un UserForm, j'ai un TextBox pour saisir une valeur et un Label pour afficher une information d'erreur lorsque la saisie dans le TextBox n'est pas valide

Bonsoir,

Et ?

@ bientôt

LouReeD

Bonour,

La question est comment affichée les 2 informations pendant la même durée de temps comme l'indique le titre

Bonjour toutes et tous

coucou Loureed

je n'ai pas trop bien compris ta requête surtout le titre

ci-joint un début

Note: mettre le chiffre 1 ou 2 dans la textbox1

crdlt,

André

Bonjour @Andre13 et merci de la réponse,

Ce que je cherche à faire c'est que les points repérés dans les captures d'écrans ci-dessous restent affichés la même durée de temps :

annotation 2020 03 19 161332 annotation 2020 03 19 1613321 annotation 2020 03 19 16133212

Par contre, quand je fais des modifications et plusieurs saisies à la suite pour tester les erreurs dans un TextBox sur UserForm et que je valide la valeur autorisée, j'ai le message "Mémoire insuffisante" dans ce fichier particulièrement et même d'autres !!!

Je sauvegarde le fichier, ferme excel, ouvre de nouveau le fichier, fais plusieurs saisies à la suite pour tester les erreurs et que je valide la valeur autorisée, je n'ai plus le message "Mémoire insuffisante"

Ce problème vient de quoi ?

Existe-t-il une solution pour éviter le problème ?

Je joins le fichier ci-dessous concernant les captures d'écran postées ci-dessus :

Bonsoir,

je pense que le problème vient du DoEvents...

Dans votre boucle :

    TempInst = Timer                                                                                        ' La variable temps "TempInst" est égale au temps PC lors du déclenchement de l'action
      Do                                                                                                    ' Début de boucle temps
        DoEvents                                                                                            ' Donne la main à excel
      Loop While TempInst + DureTemp_02 > Timer   

Le DoEvents rend la main à l'application, du coup le USF est en capacité de continuer l'exécution du code et fini par effacer la valeur du textbox, mais comme il y a changement de la valeur du textbox la boucle est relancée cette fois avec le textbox vide, mais le label reste apparent pour 2 seconde de plus... d'où deux secondes pour textbox et label puis deux secondes pour le label avec un textbox= a rien...

Mettez le DoEvents en commentaire et faites un test.

Et là la tempo est à 2 secondes mais on ne voit rien, donc l'idée est de créer un "interrupteur" afin d'éviter de déclencher la tempo si elle est déjà lancée...

Voir le fichier :

@ bientôt

LouReeD

Bonsoir @LoureeD,

Merci pour la réponse et le fichier.

Par contre, "En_Cours" est une variable ou une expression VBA ?

Pour le problème "Mémoire Insuffisante" pourquoi j'ai le problème comme mentionné dans mon post précédent ?

En_Cours est une variable booléenne déclarée en Public dans un module standard.

Elle est mise à True juste avant la boucle Do Loop, du coup elle reste à True tant que la boucle n'est pas finie.

Comme dans la boucle il y a un DoEvents, le code qui à lancé la tempo continue, mais les différents tests ne sont pas effectués car tant que En_Cours = True on quitte la procédure.

La tempo se termine, on sort de la boucle Do Loop et là on passe la variable à False du coup les codes du USF fonctionne normalement.

Pour votre problème de mémoire à t il toujours lieu ?

@ bientôt

LouReeD

Bonsoir,

Merci pour les explications car le fichier est une partie d'un fichier regroupant plusieurs modules et faisant appel à la même Sub de temporisation de 2 secondes.

Je vais donc créer une nouvelle Sub pour cette application TextBox.

Pour la mémoire insuffisante je pense que c'est quand il y a une erreur dans un fichier.

Peut-être un oubli de réinitialiser la macro !!!

J'avais le problème sur la macro TextBox mais pour l'instant je ne l'ai plus

Comme je vous l'expliquais, la Sub tempo était lancée lorsque le Textbox était modifié, il y avait peut-être une sorte de boucle "infinie" ce qui pouvait causer un problème de mémoire du au fait d'un trop grand nombre de Sub tempo lancée en même temps...Problème de mémoire ou de "pile" ?

Bref autant l'interrupteur a tout résolu en empêchant cette boucle (comme un larsen)

@ bientôt

LouReeD

Bonsoir et merci de la réponse.

Etant novice en VBA, j'avais trouvé ces boucles sur le net et certains livres mais je n'ai rien vu sur les problèmes pouvant en découler.

Quand aux "Interrupteurs" je ne connaissais pas ce procédé car je ne l'avais nul part. Donc inconnaissance de son utilisation et où il peut-être utilisé

Ils sont souvent utilisés dans les codes afin d'éviter le lancement d'une procédure en répétition lors d'un clic sur un bouton par exemple :

on clique, cela lance une procédure, on reclique sur le bouton alors que la procédure n'a pas finie, et bien rien ne se passe car on en sort aussitôt.

Et cela peut fonctionner sur plusieurs boutons, car comme l'interrupteur est en public, tant qu'il ne pas à FALSE (vu que moi j'utilise "en_cours") et bien les autres codes sont inhibés.

Je vous rassure, il y a plein de choses qui ne sont pas marqués dans les livres !

Une bonne source d'information, c'est ici avec des problèmes qui sont souvent résolus !

@ bientôt

LouReeD

Bonsoir,

Merci pour tout. Mon problème c'est que j'aime trouver et comprendre comme à l'époque du QBasic où l'on trouvait des livres qui expliquait bien les termes

Rechercher des sujets similaires à "affichage informations meme temps"