Succession de UserForm avec fermeture automatique

Bonjour le Forum,

J'ai un petit soucis sur le code suivant :

Mes UF contiennent chacun une image de décompte (5,4,3,2,1)

Je souhaite qu'ils s'affichent automatiquement les uns après les autres après un temps défini

Dans les propriétés de chaque UF, l'option ShowModal est sur False

Le pb se fait voir dès le 2eme UF, l'image n’apparaît pas alors qu'elle a les mêmes dimensions que celle de la première.

Le UF se ferme bien et laisse place aux suivants qui eux aussi s'affichent sans l'image.... je ne vois pas ce qui bloque mis à part le timer car sans celui-ci tout s'affiche !

Sub Decompte()

UserForm1.Show
Application.Wait Now + TimeValue("00:00:2")
UserForm1.Hide

UserForm2.Show
Application.Wait Now + TimeValue("00:00:2")
UserForm2.Hide

UserForm3.Show
Application.Wait Now + TimeValue("00:00:2")
UserForm3.Hide

UserForm4.Show
Application.Wait Now + TimeValue("00:00:2")
UserForm4.Hide

UserForm5.Show
Application.Wait Now + TimeValue("00:00:2")
UserForm5.Hide

CreateObject("Wscript.shell").PopUp (" mon texte dans ma msgbox temporaire  ."), 2, "", vbInformation

End Sub

Merci de votre aide !

Bonsoir,

avez vous essayez l'instruction REPAINT, qui permet de mettre à jour le visuel des USF ?

@ bientôt

LouReeD

Bonjour LouReeD

Je ne connais pas du tout REPAINT

Et ne vois pas du coup comment faire

Pouvez vous me donner une code typer svp ?

Merci de votre réponse et de votre aide

Yoshi

EDIT

Enfin de compte, tout simplement !

UserForm.REPAINT

et ça marche !!

Merci !!

Bonjour,

sans avoir essayé et sans fichier :

Sub Decompte()

UserForm1.Show ' vous ouvrez votre USF
UserForm1.Repaint ' on le "repaint"
Application.Wait Now + TimeValue("00:00:2")
UserForm1.Hide

UserForm2.Show
UserForm2.Repaint ' on le "repaint"
Application.Wait Now + TimeValue("00:00:2")
UserForm2.Hide ' vous pouvez essayer avec UnLoad UserForm2
'etc...
UserForm3.Show
Application.Wait Now + TimeValue("00:00:2")
UserForm3.Hide

UserForm4.Show
Application.Wait Now + TimeValue("00:00:2")
UserForm4.Hide

UserForm5.Show
Application.Wait Now + TimeValue("00:00:2")
UserForm5.Hide

CreateObject("Wscript.shell").PopUp (" mon texte dans ma msgbox temporaire  ."), 2, "", vbInformation

End Sub

@ bientôt

LouReeD

Bonjour

Parfait Merci

Je n'avais pas vu que vous aviez répondu à mon com du 10

Et j'ai finalement trouvé cette solution toute simple au finale, pas bien compliqué !

Ca fonctionne parfaitement

Merci !!

En parallèle j'étais en train de faire le même cinématique avec une mini vidéo

mon problème est qu'après avoir mi un timer et que la vidéo soit finie, le chaînage avec le message prends plusieurs dizaines de secondes

avant d’apparaître au lieu d'être afficher de suite,

cela vous parle ? avez vous des solutions ?

bonne journée

Bonjour,

et merci pour vos remerciements !

Je n'ai pas été mis au courant de l'édit de votre message, du coup je n'aie pas su que cela fonctionnait !

Oui c'est tout bête, un peu comme moi mais c'est utile, un peu comme moi !

pour le reste vous souhaitez que le userform1 se "hide" une fois la vidéo finie, pour que le deux s'affiche et lance la sienne...

Là, comme ça, je n'ai rien, surtout sans fichier pour tester...

@ bientôt

LouReeD

Re bonjour

ci joint le fichier avec mes commentaires en msgbox

il faut juste que dans la userform12 vous remplaciez le chemin de destination du fichier vidéo "compte à rebours" par votre "chemin"

merci de votre aide

46copie.xlsm (922.58 Ko)

Merci pour les fichiers !

Vous allez avoir du ménage à faire !

Ci dessous le code du USF décompte automatique :

Private Sub UserForm_Activate()
    WindowsMediaPlayer1.URL = "D:\compte-a-rebours-cinema.mp4"
    While WindowsMediaPlayer1.playState <> 1: DoEvents: Wend
    CreateObject("Wscript.shell").PopUp ("Dans la catégorie : " & Chr(13) & Chr(13) & "XXXXXX" & Chr(13) & Chr(13) & "Le gagnant est..."), 2, "", vbInformation
End Sub

Mise en place d'une boucle qui attend que les state de Play soit à 1, ce qui correspond à 100% de lecture...

Du coup la vidé se joue et quand elle est à 100% la suite du code est "joué" du coup le message s'affiche !

Plus besoin du USF décompte, beaucoup de néttoyage à faire

@ bientôt

LouReeD

et bien,

Quelle rapidité et mille mercis

en effet beaucoup de ménage

en un mot : PARFAIT !!

je suis ravi !!

Yoshi

Si vous êtes ravis, moi je suis LouReeD !

Ravis que cela vous convienne ! Merci pour vos remerciements !

@ bientôt

LouReeD

Rechercher des sujets similaires à "succession userform fermeture automatique"