1 pièce(s) jointe(s)
VBA Barre de progression DoEvents or not DoEvents?
Bonjour,
Je rencontre quelques difficultés à faire fonctionner ma BP.
Le code fonctionne parfaitement si les contrôles sont dans le même formulaire que le code des autres procédures exécutées. (en supprimant with usfBarreProgression et end with)
Seulement j'aimerai placer les contrôles de ma BP dans un formulaire dédié, et là rien ne se passe :?
J'ai parcouru le forum, et google, j'ai lu qu'il faut utiliser DoEvents mais je ne sais pas ou le placer. A chaque fois, mon formulaire s'ouvre mais vierge, et les points d'arrêt ne fonctionnent plus avec DoEvents...
Pièce jointe 200502
Code:
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
|
Public Sub BarreProgression2(Optional intNbreEtape As Integer = -1, Optional strTexte As String = "")
On Error GoTo BarreProgression_Error
Dim intBPEtape As Integer
Dim intBPNbreEtape As Integer
With usfBarreProgression
' 1er passage = Initialisation
If intNbreEtape <> -1 Then
' Barre de progression à 0, Afficher le pop-up barre de progression, initialisation des variables
.imgBPProgression.Width = 0
intBPEtape = 0
intBPNbreEtape = intNbreEtape
Else
' Récupérer les valeurs dans le texte
intBPEtape = VBA.Split(.lblBPTexte.Caption, "/", , vbTextCompare)(0) + 1
intBPNbreEtape = VBA.Split(.lblBPTexte.Caption, "/", , vbTextCompare)(1)
End If
' Barre de progression
.lblBPMessage.Caption = strTexte
.lblBPTexte.Caption = intBPEtape & " / " & intBPNbreEtape
.imgBPProgression.Width = ((.lblBPFond.Width - .lblBPFond.Left) / intBPNbreEtape) * intBPEtape + 1
End With
' --- Zone DEBUG ---
'Debug.Print "strTexte: "; strTexte & vbCrLf & _
"intBPEtape: " & intBPEtape & vbCrLf & _
"intBPNbreEtape: " & intBPNbreEtape & vbCrLf & _
"-*-*-*-*-*-*"
' --- /Zone DEBUG ---
On Error GoTo 0
Exit Sub
BarreProgression_Error:
End Sub |
Y a-t-il une autre méthode que DoEvents? Ou dois-je le placer?
Merci,
Gdal