No funciona el control Timer en vb6
Vamos a ver si alguien me puede ayudar, estoy haciendo un programa en el que necesito cargar una progressbar al mismo tiempo que van realizando unas acciones, pero no hay manera, le he puesto el DoEvents pero nada igual no lo estoy haciendo bien.
Como no funcionaba opté por poner un timer con un intervalo que me vaya aumentando la barra, pero no hay manera que entre dentro del evento timer1_timer, solo lo hace al acabar el programa, aquí pongo como lo tengo echo.
Private Sub btnIniciar_Click()
If Trim$(txtUbicacio.Text) <> "" And Trim$(txtUbicacio.Text) <> " " Then
If Trim$(txtUbicacioMDB.Text) <> "" And Trim$(txtUbicacioMDB.Text) <> " " Then
Timer1.Enabled = True
DoEvents
tractarExcel Trim$(txtUbicacio.Text), Trim$(txtUbicacioMDB.Text)
Else
MsgBox "Error"
End If
Else
MsgBox "Error"
End If
End Sub
Esto se mete en un bucle en el cual leo el excel linea a linea es un Do-Loop
Set hoja = Nothing
Set hoja = appExcel.Sheets(i)
x = 2
barra 'carga la barra con el numero de registros a tratar
Do Until (x <> pbEstado.Max)
actualizarCampos hoja.Cells(x, 1), hoja.Cells(x, 2)
DoEvents
x = x + 1
Me.Refresh 'esta puesto para ver si hace algo.
Loop
y el timer es muy simple
Private Sub Timer1_Timer()
If pbEstado.Value <> pbEstado.Max Then (pbEstado es la barra)
pbEstado.Value = pbEstado.Value + 1
lblRegistro = CLng((pbEstado.Value * 100) / pbEstado.Max) & " % completado"
DoEvents
End If
End Sub
Espero haberme explicado bien, gracias
Como no funcionaba opté por poner un timer con un intervalo que me vaya aumentando la barra, pero no hay manera que entre dentro del evento timer1_timer, solo lo hace al acabar el programa, aquí pongo como lo tengo echo.
Private Sub btnIniciar_Click()
If Trim$(txtUbicacio.Text) <> "" And Trim$(txtUbicacio.Text) <> " " Then
If Trim$(txtUbicacioMDB.Text) <> "" And Trim$(txtUbicacioMDB.Text) <> " " Then
Timer1.Enabled = True
DoEvents
tractarExcel Trim$(txtUbicacio.Text), Trim$(txtUbicacioMDB.Text)
Else
MsgBox "Error"
End If
Else
MsgBox "Error"
End If
End Sub
Esto se mete en un bucle en el cual leo el excel linea a linea es un Do-Loop
Set hoja = Nothing
Set hoja = appExcel.Sheets(i)
x = 2
barra 'carga la barra con el numero de registros a tratar
Do Until (x <> pbEstado.Max)
actualizarCampos hoja.Cells(x, 1), hoja.Cells(x, 2)
DoEvents
x = x + 1
Me.Refresh 'esta puesto para ver si hace algo.
Loop
y el timer es muy simple
Private Sub Timer1_Timer()
If pbEstado.Value <> pbEstado.Max Then (pbEstado es la barra)
pbEstado.Value = pbEstado.Value + 1
lblRegistro = CLng((pbEstado.Value * 100) / pbEstado.Max) & " % completado"
DoEvents
End If
End Sub
Espero haberme explicado bien, gracias
1 Respuesta
Respuesta de pedrobjs84
-1