Necesito armar una planilla de Excel que tenga un temporizador que a los diez minutos de anotar el primer dato de la matriz, cancele la posibilidad de seguir anotando cambios, es decir que me de solo diez minutos para hacer lo que tengo que hacer: cambiar algunas cosas por otras. ¿alguien me puede dar una mano? Existe alguna función "reloj", o debo armar una macro con VB? ¿cómo armar un temporizador con las "fx" de Excel?
mira puedes hacer una macro y poner este procedimiento, le tienes que pasar el tiempo en segundos
Código:
Private Sub Espera(Segundos As Single) Dim ComienzoSeg As Single Dim FinSeg As Single ComienzoSeg = Timer FinSeg = ComienzoSeg + Segundos Do While FinSeg > Timer DoEvents If ComienzoSeg > Timer Then FinSeg = FinSeg - 24 * 60 * 60 End If Loop
Hoja1.Protect
End Sub
lo malo de esto esque si al abrir el archivo xls le dicen que no ejecute macros ya no va a funcionar, pero espero y te sirva de algo
En línea
"La soledad es el elemento de los grandes talentos". Cristina de Suecia (1626-1689) Reina de Suecia.
Gracias CeLaYa. Voy a probar tu rutina. Pero antes... ¿dónde defino los diez minutos (600 s), es decir cual es la variable? y... ¿dónde queda establecido a partir de cuando empiezan a correr los 600 segundos? o así como me lo pasastes comienza con el primer evento que cambie? Verás que mi conocimiento en el tema es menos que mínimo. Un abrazo.
si abres el editor de VB que trae el Excel veras un objeto que se llama "thisWorkBook", el WorkBooK trae un evento el Workbook_Open() puedes usarlo para mandar llamar la funcion
Código:
Private Sub Workbook_Open() Espera 600 End Sub
con esto cuenta 10 min a partir de que abres el libro, checa los eventos de las hojas para que veas si puedes usar alguno, Existe el Change que te detecta cuando algo cambia en la hoja ese a lo mejor tambien te puede servir
En línea
"La soledad es el elemento de los grandes talentos". Cristina de Suecia (1626-1689) Reina de Suecia.
puedes usar el api del SetTimer el problema es que no tienes un hwnd pues lo que puedes hacer es usar el api findwindow con el titulo del la la ventana de excel
tengo un ejemplo pero como no tengo excel instalado no te lo puedo pasar