Bonjour,
Malgré les différents posts sur le sujet je n'arrive pas à mes fins.... je relance donc une discussion
J'ai créé un Userform d'attente tout simple dont l'aspect change toutes les 0.5 s. Voici le codej'aimerais que ce UserForm s'affiche parallèlement à des procédures de traitement (assez longues) et là je coince... Par exemple avec cette sub toute bête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 Option Explicit Private Sub UserForm_Initialize() animerUF_Attente = True End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then Cancel = True End Sub Sub Animation() Me.Label1.BackColor = RGB(255, 255, 255) Me.Label2.BackColor = RGB(255, 255, 255) Me.Label3.BackColor = RGB(255, 255, 255) Dim t0 As Single, t As Single, tt As Single, delta As Single, i As Long delta = 0.5: tt = 0 t0 = Timer() While animerUF_Attente t = Timer() - t0 If t - tt >= delta Then tt = t Select Case i Mod 3 Case 0 Me.Label1.BackColor = RGB(0, 255, 0) Me.Label2.BackColor = RGB(255, 255, 255) Me.Label3.BackColor = RGB(255, 255, 255) Case 1 Me.Label2.BackColor = RGB(0, 255, 0) Case 2 Me.Label3.BackColor = RGB(0, 255, 0) End Select Me.Repaint i = i + 1 End If DoEvents Wend End SubJ'espère que vous pourrez m'aider. Je joins un classeur de test au cas où...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Public animerUF_Attente As Boolean 'Ce que je souhaiterais faire: afficher le UF_attente pendant que la sub Calcul tourne Sub Test() UF_attente.Show 0 UF_attente.Animation Calcul 'je ne parviens pas à passer à cette étape (thread obligatoire ?) End Sub Sub Calcul() Application.Wait (Now + TimeValue("0:00:10")) Debug.Print "ok" End Sub
Merci d'avance et bonne soirée à ceux qui liront jusque là.![]()
Partager