Fonctionnement algorithme: Message de confirmation

Bonjour à tous,

Je cherche désespérément à afficher un message ("OK") si mon algorithme a bien fonctionné. J'aimerais créer une forme qui apparaît et disparaît qq secondes plus tard (un msgbox nécessiterait un clic en plus,... pas ergonomique ^^)

Malheureusement, la forme créée n'apparaît pas malgré l'usage du Timer.

Pour plus de clarté, je vous joins un fichier test qui illustre le pb.

-1er problème: Dans le code de la Feuil1, la gestion du message ("OK") se fait lignes 14 et 15. Si vous mettez en commentaire "suppr_OK", le message s'affiche, sinon non. L'augmentation du temps de pause (Timer) n'a aucun effet. Je vous laisse y jeter un coup d'oeil

-2eme problème: dans le module 1, si vous réactivez les lignes 6 et 7 qui sont censé afficher un message ("OK") pour un 2eme algorithme en feuille 2 (mais toujours ce même 1er problème), celui-ci tournera, mais pas l'algorithme principale en feuille 1. En gros, en lançant le sous programme (feuille2), ça fonctionne, en lançant le programme principal (feuille1), ça ne fonctionne plus.

A me relire, je crains que mon message ne soit pas clair, n'hésitez pas à me questionner

Dans l'espoir qu'en ces temps de confinement, vous puissiez passer un peu de temps à résoudre mes problèmes, ...

Je vous souhaite une très bonne journée !

12test.xlsm (30.83 Ko)

Bonjour,

Pour afficher un msgbox temporaire :

Sub useShellPopUp()
Dim Rslt As Integer
Dim TempoSec As Integer

    TempoSec = 2
    Rslt = CreateObject("WScript.Shell").Popup("Tempo 2s", TempoSec, "Message Title")

End Sub

Bonjour,

Merci pour votre réponse. Les msgbox temporaires ne fonctionnent pas bien à mon goût. Le temps d'affichage minimal est beaucoup trop long.

Du coup à la place, j'utilise un UserForm.

Voici le bout du code pour celui que ça intéresse:

Sub message_OK()

Dim T0 As Single, Duree As Integer
  T0 = Timer: Duree = 0.6
  'Etat.Controls("Label1").BackColor = RGB(39, 191, 46)
  Do
    If Not Etat.Visible Then Etat.Show 0
    Etat.Label1 = " OK!"
    Etat.Caption = "           ÉTAT"
    DoEvents
  Loop Until (Timer - T0) > Duree
  Unload Etat

End Sub

Sub message_erreur()

Dim T0 As Single, Duree As Integer
  T0 = Timer: Duree = 0.6
  Etat2.Controls("Label1").BackColor = RGB(255, 255, 255)
  Do
    If Not Etat2.Visible Then Etat2.Show 0
    Etat2.Label1 = "ERREUR!"
    Etat2.Caption = "                        ÉTAT"
    DoEvents
  Loop Until (Timer - T0) > Duree
  Unload Etat2

End Sub

Bonne journée à vous !

Rechercher des sujets similaires à "fonctionnement algorithme message confirmation"