Barre de progression

youandmy Messages postés 4 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 21 janvier 2013 - 21 janv. 2013 à 19:33
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 21 janv. 2013 à 22:05
Bonjours,

Je souhaite intégrer l'affichage d'une barre de progression dans une macro lourde, + de 10 minutes. Comment faire?

voici la macro:
Private Sub Pied_de_page_Click()
'je demande une confirmation
rep = MsgBox("Etes vous sûr de vouloir Mettre à jour les pieds de page des bulletins? Cette opération peut-prendre jusqu'à 10 minutes et doit donc être lancer juste avant l'impression des bulletins. De plus il vous faut dans un premier temps enregistrer la liste de vos élèves.", vbDefaultButton2 + vbQuestion + vbYesNo, "ATTENTION")
If rep = vbNo Then
Exit Sub
End If
' Ajout pied de page dans tous les onglets
Dim I As Integer
On Error GoTo Fin
Application.EnableCancelKey = xlErrorHandler

Application.ScreenUpdating = False
For I = 11 To Worksheets.Count - 2
With Sheets(I).PageSetup
.LeftFooter = Sheets(I).Range("h16").Value & " " & Sheets(I).Range("e17").Value
.CenterFooter = Sheets(I).Range("d19").Value & " " & Sheets(I).Range("d18").Value
.RightFooter = "Page &P/&N"
End With
Next I

Application.ScreenUpdating = True
Fin:
If Err.Number = 2 Then MsgBox "Opération annulée."

'avant le end sub avertit l'utilisateur
MsgBox "Les pieds de page de tous les bulletins ont étés mis à jour."

End Sub

Merci

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 janv. 2013 à 22:05
Salut

Plusieurs problèmes vont se poser :
- Une progressbar, Ok, mais sur quoi vas-tu la mettre ? UserForm ?
- Il n'existe pas de progressbar dans les composants Excel (Forms2). Il va donc falloir que tu utilises un OCX = Controles ActiveX - pas top
- Dans ton code super mal présenté - on demande d'utiliser la coloration syntaxique mille fois par jour - tu utilises ScreenUpdating = False : L'écran ne sera pas rafraichi pour éviter de perdre du temps, mais dans ce cas, même si tu affichais une progressbar, elle serait elle aussi figée !

Quelle est l'ordre d'idée de Worksheets.Count ?
Que représentent les cellules que tu mets dans le bas de page ?
C'est quand même bizarre que tu soies obligé d'y retoucher. De mon point de vue, que tu fasses cette opération une fois par an, je comprends, mais pourquoi devoir le refaire périodiquement ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
0
Rejoignez-nous