Mostrar en dos label de un formulario resultado de
Publicado por Juan Sánchez (1 intervención) el 03/02/2008 22:16:33
Hola!
Mi duda es sobre VBA para excel.
Lo que quiero hacer es:
-En un formulario con 2 label y un botón, quiero que en el primer label me ponga la celda (1,1) y a los 5 segundos me ponga en el label 2 la celda (1,3). Luego en el Label 1-->celda(2,1) -->5 segundos
Label 2-->celda(2,3)-->5 segundos
............... y así sucesivamente.
Es decir, mostrar los datos de la primera columna y tercera columna en los dos label pero desfasados 5 segundos en el tiempo de muestra.
Te comento lo último que he hecho:
En un módulo normal:
Código:
Public Contador As Byte, Siguiente As Date
Sub IniciarCambio()
Siguiente = Now + TimeValue("00:00:05")
UserForm1.Label1.Caption = Cells(Contador, 1)
Application.OnTime Siguiente, "Etiqueta1"
End Sub
Sub Etiqueta1()
Siguiente = Now + TimeValue("00:00:05")
UserForm1.Label2.Caption = Cells(Contador, 2)
Application.OnTime Siguiente, "IniciarCambio"
Contador = Contador + 1
End Sub
Y en un módulo formulario:
Código:
Private Sub UserForm_Initialize()
Contador = 1
IniciarCambio
End Sub
Lo ejecuto una vez y me sale todo bien:
A1-->5 sg-->B1
A2-->5 sg-->B2
.......
El problema está cuando lo ejecuto otra vez y me sale:
"Se ha producido el error '1004' en tiempo de ejecución:
Error definido por la aplicación o el objeto"
UserForm1.Label1.Caption = Cells(Contador, 1)
¿A qué es debido esto?
Un saludo.
Mi duda es sobre VBA para excel.
Lo que quiero hacer es:
-En un formulario con 2 label y un botón, quiero que en el primer label me ponga la celda (1,1) y a los 5 segundos me ponga en el label 2 la celda (1,3). Luego en el Label 1-->celda(2,1) -->5 segundos
Label 2-->celda(2,3)-->5 segundos
............... y así sucesivamente.
Es decir, mostrar los datos de la primera columna y tercera columna en los dos label pero desfasados 5 segundos en el tiempo de muestra.
Te comento lo último que he hecho:
En un módulo normal:
Código:
Public Contador As Byte, Siguiente As Date
Sub IniciarCambio()
Siguiente = Now + TimeValue("00:00:05")
UserForm1.Label1.Caption = Cells(Contador, 1)
Application.OnTime Siguiente, "Etiqueta1"
End Sub
Sub Etiqueta1()
Siguiente = Now + TimeValue("00:00:05")
UserForm1.Label2.Caption = Cells(Contador, 2)
Application.OnTime Siguiente, "IniciarCambio"
Contador = Contador + 1
End Sub
Y en un módulo formulario:
Código:
Private Sub UserForm_Initialize()
Contador = 1
IniciarCambio
End Sub
Lo ejecuto una vez y me sale todo bien:
A1-->5 sg-->B1
A2-->5 sg-->B2
.......
El problema está cuando lo ejecuto otra vez y me sale:
"Se ha producido el error '1004' en tiempo de ejecución:
Error definido por la aplicación o el objeto"
UserForm1.Label1.Caption = Cells(Contador, 1)
¿A qué es debido esto?
Un saludo.
Valora esta pregunta


0