Bonjour le forum
j'ai besoin de votre aide car je bloque... aprés plusieurs recherches !
je souhaiterais afficher une barre de progression (affichage en %) lors du traitement d'une macro qui prend environ 1 min 45.
de plus, je me suis apercu que des calculs s'affiche sur mon documen excel qui est un bon de commande.est-il possibe de masquer ces calculs ou de les réaliser sur une autre feuille qui elle sera masquée.
je vous joins ma macro qui sera liée à cette barre de progression:
Sub masquer()
If MsgBox("Faire apparaître votre commande ?", vbQuestion + vbYesNo + vbDefaultButton2, "Order recap") = vbYes Then
Application.ScreenUpdating = False
For i = Range("f900").End(xlUp).Row To 1 Step -1
If Cells(i, 4).Value = "" Then
Rows(i).Select
Selection.EntireRow.Hidden = True
End If
Next i
Application.ScreenUpdating = True
MsgBox "Voici votre commande"
End If
End Sub
j'ai créer un useform pour la barre de progression dont voici le code :
Private Sub LabelProgress_Click()
End Sub
Sub masquer()
If MsgBox("Faire apparaître votre commande ?", vbQuestion + vbYesNo + vbDefaultButton2, "Order recap") = vbYes Then
Application.ScreenUpdating = False
For i = Range("f900").End(xlUp).Row To 1 Step -1
If Cells(i, 4).Value = "" Then
Rows(i).Select
Selection.EntireRow.Hidden = True
End If
Next i
Application.ScreenUpdating = True
MsgBox "Voici votre commande"
End If
End Sub
Private Sub UserForm_Activate()
UserForm1.LabelProgress.Width = 0
Call Main
End Sub
Sub UpdateProgressBar(PctDone As Single)
With UserForm1
' Update the Caption property of the Frame control.
.FrameProgress.Caption = Format(PctDone, "0%")
' Widen the Label control.
.LabelProgress.Width = PctDone * _
(.FrameProgress.Width - 0)
End With
' The DoEvents allows the UserForm to update.
DoEvents
End Sub
Sub Main()
Dim PctDone As Single
Sheets("ORDER").Cells(1, 1) = Range("A1")
' on met à jour la barre
PctDone = 0.1
UpdateProgressBar PctDone
Sheets("ORDER").Cells(1, 2) = Range("B2")
' on met à jour la barre
PctDone = 0.25
UpdateProgressBar PctDone
Sheets("ORDER").Cells(1, 3) = Range("C3")
' on met à jour la barre
PctDone = 0.5
UpdateProgressBar PctDone
Sheets("ORDER").Cells(1, 4) = Range("D4")
' on met à jour la barre
PctDone = 1
UpdateProgressBar PctDone
'on ferme userform1
Unload UserForm1
End Sub
Sub test()
UserForm1.Show
End Sub
End Sub
est-ce correct ? Pouvez-vous m'aider?
merci par avance du temps que vous consacrerez à ma demande.
j'ai besoin de votre aide car je bloque... aprés plusieurs recherches !
je souhaiterais afficher une barre de progression (affichage en %) lors du traitement d'une macro qui prend environ 1 min 45.
de plus, je me suis apercu que des calculs s'affiche sur mon documen excel qui est un bon de commande.est-il possibe de masquer ces calculs ou de les réaliser sur une autre feuille qui elle sera masquée.
je vous joins ma macro qui sera liée à cette barre de progression:
Sub masquer()
If MsgBox("Faire apparaître votre commande ?", vbQuestion + vbYesNo + vbDefaultButton2, "Order recap") = vbYes Then
Application.ScreenUpdating = False
For i = Range("f900").End(xlUp).Row To 1 Step -1
If Cells(i, 4).Value = "" Then
Rows(i).Select
Selection.EntireRow.Hidden = True
End If
Next i
Application.ScreenUpdating = True
MsgBox "Voici votre commande"
End If
End Sub
j'ai créer un useform pour la barre de progression dont voici le code :
Private Sub LabelProgress_Click()
End Sub
Sub masquer()
If MsgBox("Faire apparaître votre commande ?", vbQuestion + vbYesNo + vbDefaultButton2, "Order recap") = vbYes Then
Application.ScreenUpdating = False
For i = Range("f900").End(xlUp).Row To 1 Step -1
If Cells(i, 4).Value = "" Then
Rows(i).Select
Selection.EntireRow.Hidden = True
End If
Next i
Application.ScreenUpdating = True
MsgBox "Voici votre commande"
End If
End Sub
Private Sub UserForm_Activate()
UserForm1.LabelProgress.Width = 0
Call Main
End Sub
Sub UpdateProgressBar(PctDone As Single)
With UserForm1
' Update the Caption property of the Frame control.
.FrameProgress.Caption = Format(PctDone, "0%")
' Widen the Label control.
.LabelProgress.Width = PctDone * _
(.FrameProgress.Width - 0)
End With
' The DoEvents allows the UserForm to update.
DoEvents
End Sub
Sub Main()
Dim PctDone As Single
Sheets("ORDER").Cells(1, 1) = Range("A1")
' on met à jour la barre
PctDone = 0.1
UpdateProgressBar PctDone
Sheets("ORDER").Cells(1, 2) = Range("B2")
' on met à jour la barre
PctDone = 0.25
UpdateProgressBar PctDone
Sheets("ORDER").Cells(1, 3) = Range("C3")
' on met à jour la barre
PctDone = 0.5
UpdateProgressBar PctDone
Sheets("ORDER").Cells(1, 4) = Range("D4")
' on met à jour la barre
PctDone = 1
UpdateProgressBar PctDone
'on ferme userform1
Unload UserForm1
End Sub
Sub test()
UserForm1.Show
End Sub
End Sub
est-ce correct ? Pouvez-vous m'aider?
merci par avance du temps que vous consacrerez à ma demande.