Tenho um exemplo um pouco mais elaborado. Eu faco assim
Crio um form (chamado frm_barra) com uma progressbar(chamada pba_barra) um label (lbl_contador) e um label (lbl_mensagem). Neste form faco.
O Form fica assim
[oooooooooooooooooooooooooooooooooooooo] Esta é a barra (pba_barra)
lbl_mensagem lbl_contador % Este é o msg e o contador de
percentual (exemplo 10%)
Private Sub Form_Load()
Me.move 400,500 ' Na verdade centralizo mais uso uma rotina que nao 'interessa agora
End Sub
Sub Inicia_barra(total_reg As Long, mensagem As String)
On Error Resume Next
pba_barra.Min = 0
pba_barra.Max = total_reg + 1
pba_barra.Value = pba_barra.Min
lbl_mensagem = mensagem
End Sub
Sub Incrementa()
On Error Resume Next
pba_barra.Value = pba_barra.Value + 1
lbl_contador = Int(pba_barra.Value * 100 / pba_barra.Max)
lbl_contador.Refresh
End Sub
Sub Finaliza_barra()
Unload Me
End Sub
Para usar faco
' Inicia a barra
' Passo o total de registros e a mensagem (so um informativo)
frm_barra.Inicia_barra ob_mov_emergencia.CONTADOR_REGISTRO, "Importando movimentação"
Le_primeiro registro
While not eof
<<< blablalba >>>>
' Faco o incremento da barra (ja coloca o percentual e a progressao da barra.
frm_barra.Incrementa
proximo
wend
' Fecha a janela da barra de progresso
frm_barra.Finaliza_barra
No final voce esquece que ela existe so usa as tres rotinas.
Inicia, incremente e finaliza.