[Résolu] Compte a rebour lors de l'ouverture de userform temporaire

perpitou

XLDnaute Occasionnel
Bonjour à tous,

Je sais que c'est un sujet qui a été traité plusieurs fois mais je n'arrive pas à trouver des codes qui vont bien avec mon cas.

Lors de l'ouverture de mon fichier j'ai un userform qui apparait 10 secondes. Pour mon cas c'est le userform 15 et après j'enchaine sur un uatre userform pour cela j'ai fait:

Code:
Private Sub Workbook_Open()
UserForm15.Show
UserForm1.Show vbModeless
End Sub

Puis dans mon userform15 j'ai rajouté :

Code:
Private Sub UserForm_Initialize()
Application.OnTime Now + TimeValue("00:00:10"), "FermetureUSF15"

Avec dans un module:
Code:
Sub FermetureUSF15()
Unload UserForm15
End Sub

Comment puis je mettre un compte à rebour dans un label dans mon userform15??
Grâce à cela j'indiquerai à l'utilisateur le temps restant.

Merci d'avance.

Cordialement,
Perpitou
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Compte a rebour lors de l'ouverture de userform temporaire

Re,

vois peut être avec ceci :
Code:
Option Explicit
Const p As Byte = 5
Dim b As Boolean
Private Sub UserForm_Activate()
Dim i As Integer, j As Double
j = Label2.Width
For i = p To 0 Step -1
    If b Then GoTo fin
    Application.Wait Now + TimeValue("00:00:01")
    Label1.Caption = i
    Label2.Width = IIf(i > 0, Label2.Width - (j / (p + 1)), 0)
    Me.Repaint
    DoEvents
Next i
Unload Me
fin:
UserForm2.Show 0
End Sub
Private Sub UserForm_Initialize()
Label1.Caption = p
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then b = True
End Sub
 

perpitou

XLDnaute Occasionnel
Re : Compte a rebour lors de l'ouverture de userform temporaire

Encore une fois merci pierrot,

Donc je te donne mon code adapté merci beaucoup.

Code:
Dim b As Boolean


Private Sub UserForm_Activate()
For i = 10 To -1 Step -1
If b Then GoTo fin
    Application.Wait (Now + TimeValue("00:00:01"))
    DoEvents
    Label85.Caption = "Cette fenêtre se fermera automatiquement dans " & i & " secondes."
  
Next
Unload Me
fin:
UserForm1.Show vbModeless
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then b = True
End Sub

merci
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 643
dernier inscrit
adriano22