Barre de progression

Résolu
gerardcjf Messages postés 47 Date d'inscription mardi 3 juillet 2007 Statut Membre Dernière intervention 26 décembre 2013 - 15 mai 2010 à 15:08
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 15 mai 2010 à 15:31
Bonjour à tous et à toutes,

Je voudrais insérer dans le déroulement d'une macro une barre de progression, de telle sorte que l'utilisateur soit informé et surtout qu'il ne s'impatiente pas ...

Ma macro est du type :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
SaisiePersonne = Sheets("Paramètres").Cells(ActiveCell.Row, 2).Value
If ActiveCell.Row < 6 Then
MsgBox "Vous n'êtes pas dans la zone des numéros de personnes !" & Chr(13) & "Impossible de continuer"
Exit Sub
End If
If SaisiePersonne "" Or IsNumeric(SaisiePersonne) False Then
Sheets("Paramètres").Cells(ActiveCell.Row, 2).Select
MsgBox "Le numéro de personne " & SaisiePersonne & ", n'est pas valide"
Exit Sub
End If
Sheets("synthèse").Visible = False
Sheets("Accueil").Unprotect
Sheets("Paramètres").Range("F1") = SaisiePersonne
'
Call ExtractTR_RG
Call ExtractTR_Chom
Call Extract_CTRL
Call Extract_constituant
Call ExtractTR_MONTANT_COT
'

Sheets("Paramètres").Activate
Cells(1, 1).Select
MsgBox "Fin de la récupération"
Sheets("Paramètres").Visible = xlSheetVeryHidden
Sheets("synthèse").Visible = True
Sheets("Accueil").Select
Sheets("Accueil").Protect
End Sub


C'est au niveau de Call que je voudrais que la barre de progession s'affiche ... et que lorsque que la macro a terminé un call ... la barre de progression augmente d'autant en % (5 x call ... donc 5x20% par exemple )


Avez vous une idée à me proposer ... car je ne maitrise pas ce genre de code.


Merci de votre aide !
@+

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
15 mai 2010 à 15:31
Salut
Les ProgressBar n'étant pas des objets VBA, tu n'as pas dû trouver d'aide à leur sujet.
Propriétés simples :
Avant de commencer, tu définis :
- .Value --> à 0 pour faire une sorte de RaZ
- .Min et .Max --> pour définir l'échelle, dans ton cas 5 (étapes)
Lorsque tu veux faire progresser de 1 la barre, il te suffit de mettre
.Value = .Value + 1 ' (étape)

Important :
Afin que le graphisme ait le temps de se rafraichir et afficher correctement la barre, il faut impérativement mettre un DoEvents après avoir modifié le .Value

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 la partage (Socrate)
3
Rejoignez-nous