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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| Private Sub bt_MAJ_Click()
ActiveWorkbook.Save 'enregistrement du fichier
' Supprimer la barre de progression existante (si elle existe)
On Error Resume Next
ActiveSheet.Shapes("ProgressBarShape").Delete
ActiveSheet.Shapes("ProgressBarLabel").Delete
On Error GoTo 0
' Définir la position et les dimensions de la barre de progression
Dim leftPosition As Double
Dim topPosition As Double
Dim widthValue As Double
Dim heightValue As Double
leftPosition = 10 ' Position horizontale de la barre de progression
topPosition = 10 ' Position verticale de la barre de progression
widthValue = 200 ' Largeur de la barre de progression
heightValue = 20 ' Hauteur de la barre de progression
' Créer la forme de la barre de progression
Dim progressBarShape As Shape
Set progressBarShape = ActiveSheet.Shapes.AddShape(msoShapeRectangle, leftPosition, topPosition, widthValue, heightValue)
progressBarShape.Name = "ProgressBarShape"
' Personnaliser l'apparence de la barre de progression
With progressBarShape
.Fill.ForeColor.RGB = RGB(0, 128, 0) ' Couleur de remplissage de la barre de progression (vert)
.Line.Visible = False ' Cacher la bordure de la barre de progression
End With
' Ajouter un libellé à la barre de progression
Dim progressBarLabel As Shape
Set progressBarLabel = ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, leftPosition, topPosition, widthValue, heightValue)
progressBarLabel.Name = "ProgressBarLabel"
' Définir le texte initial du libellé
progressBarLabel.TextFrame2.TextRange.Text = "0%"
' Définir le format du texte du libellé
With progressBarLabel.TextFrame2.TextRange.Font
.Size = 12 ' Taille de la police
.Fill.ForeColor.RGB = RGB(255, 255, 255) 'texte blanc
.Bold = msoTrue ' Gras
End With
' Définir le nombre total de modules à exécuter
Dim totalModules As Integer
totalModules = 7
' Exécuter les modules en mettant à jour la barre de progression
Call Module1
Call UpdateProgressBar(1, totalModules, progressBarShape, progressBarLabel, widthValue)
DoEvents
Call Module2
Call UpdateProgressBar(2, totalModules, progressBarShape, progressBarLabel, widthValue)
DoEvents
Call Module3
Call UpdateProgressBar(3, totalModules, progressBarShape, progressBarLabel, widthValue)
DoEvents
Call Module4
Call UpdateProgressBar(4, totalModules, progressBarShape, progressBarLabel, widthValue)
DoEvents
Call Module5
Call UpdateProgressBar(5, totalModules, progressBarShape, progressBarLabel, widthValue)
DoEvents
Call Module6
Call UpdateProgressBar(6, totalModules, progressBarShape, progressBarLabel, widthValue)
DoEvents
Call Module7
Call UpdateProgressBar(7, totalModules, progressBarShape, progressBarLabel, widthValue)
DoEvents
Application.Wait (Now + TimeValue("0:00:02")) 'juste pour avoir le temps de voir que c'est fini
' Supprimer la barre de progression une fois la macro terminée
progressBarShape.Delete
progressBarLabel.Delete
End Sub |
Partager