2015-08-03 1 views
0

J'essaye de mettre à jour mon userform Updating (qui est essentiellement une barre de progression). Il n'est pas mis à jour pour le moment la première fois que l'utilisateur est appelé et la deuxième fois il met à jour la description de l'étiquette et non la largeur de la barre. Je le teste avec la procédure TestUpdate montrée ci-dessous.Userform ne pas mettre à jour correctement

Qu'est-ce que je fais mal?

Sub UpdateUpdatingUF(filenum As Integer, filecount As Integer) 
    Dim filenumdbl As Double 
    Dim filecountdbl As Double 
    Dim boxwidth As Integer 
    Dim barwidth As Integer 
    Dim boxwidthdbl As Double 
    filenumdbl = CDbl(filenum) 
    filecountdbl = CDbl(filecount) 
    boxwidthdbl = CDbl(boxwidth) 
    boxwidth = 300 
    barwidth = CInt(boxwidthdbl * filenumdbl/filecountdbl) 
    With Updating 
     .Label3.Caption = "Running file: " & CStr(filenum) & "/" & CStr(filecount) 
     .ProgressBar.Width = barwidth 
    End With 
End Sub 
Sub TestUpdate() 
    Updating.Show 
    Call UpdateUpdatingUF(3, 7) 
    DoEvents 
    Updating.Repaint 
End Sub 

Je suis conscient que je suis déclarant probablement beaucoup trop de variables, mais je suis en train de faire en sorte que ce n'est pas la cause.

Répondre

1

Remplacer

Updating.Show 

avec

Updating.Show vbModeless 
+1

Vous voulez dire que '' Updating.Show VbModeless' ou Updating.Show (Faux) '? Vous voudrez peut-être ajouter une explication sur pourquoi il faut faire cela :) –

+0

j'obtiens l'erreur 446 - "l'objet ne supporte pas les arguments nommés" – duhamp

+0

'updated.show vbmodeless' fonctionne pour faire changer le texte mais la barre ne change pas – duhamp