Bonjour,
La macro suivante modifie les valeurs de plus de 800 cellules. Le temps d'attente est assez long et je souhaite afficher une progressbar pour faire patienter l'utilisateur.
J'obtiens une erreur 380 "Invalid property value" sur la première ligne " UserForm_demo.ProgressBar1.Value = UserForm_demo.ProgressBar1.Value + 1 "
Je dois surement faire une grosse connerie dans la propriété ".max" de la progressbar, mais je n'arrive pas à voir où ça cloche
Dans l'UserForm_Demo :
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 Sub test() UserForm_demo.Repaint x = Application.WorksheetFunction.CountA(Union(Sheets("Import_PSG").Range("D:E"), Sheets("Import_PSG").Range("G:H"))) 'un chiffre représentant le nombre de cellules à parcourir. Entre 800 et 1000 cellules UserForm_demo.ProgressBar1.Min = 0 UserForm_demo.ProgressBar1.Max = x + 2 For Each Cell In Range("G:G") If Cell = "text1" Then Cell = "A" If Cell = "text2" Then Cell = "B" If Cell = "text3" Then Cell = "C" If Cell = "text4" Then Cell = "D" If Cell = "text5" Then Cell = "E" UserForm_demo.ProgressBar1.Value = UserForm_demo.ProgressBar1.Value + 1 Next Cell For Each Cell In Range("H:H") If Cell = "text11" Then Cell = "A" If Cell = "text12" Then Cell = "B" If Cell = "text13" Then Cell = "C" UserForm_demo.ProgressBar1 = UserForm_demo.ProgressBar1 + 1 Next Cell For Each Cell In Range("E:E") If Cell = "text21" Then Cell = "A" If Cell = "text22" Then Cell = "B" If Cell = "text23" Then Cell = "C" If Cell = "text24" Then Cell = "D" If Cell = "text25" Then Cell = "E" UserForm_demo.ProgressBar1 = UserForm_demo.ProgressBar1 + 1 Next Cell For Each Cell In Range("D:D") If Cell = "text31" Then Cell = "A" If Cell = "text32" Then Cell = "B" If Cell = "text33" Then Cell = "B" If Cell = "text34" Then Cell = "C" If Cell = "text35" Then Cell = "D" If Cell = "text36" Then Cell = "E" UserForm_demo.ProgressBar1 = UserForm_demo.ProgressBar1 + 1 Next Cell End Sub
Merci d'avance pour votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Private Sub UserForm_Activate() Me.Repaint End Sub Private Sub UserForm_Initialize() x = Application.WorksheetFunction.CountA(Union(Sheets("feuil1").Range("D:E"), Sheets("feuil1").Range("G:H"))) With Me.ProgressBar1 .Min = 0 .Max = x + 2 End With Me.Repaint End Sub
Partager