Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: Akuma san en 4 Diciembre 2006, 08:45 AM

Título: Temporalizador para Excel
Publicado por: Akuma san en 4 Diciembre 2006, 08:45 AM
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? :huh:


Akuma san
Título: Re: Temporalizador para Excel
Publicado por: CeLaYa en 6 Diciembre 2006, 23:53 PM
mira puedes hacer una macro y poner este procedimiento, le tienes que pasar el tiempo en segundos



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
Título: Re: Temporalizador para Excel
Publicado por: Akuma san en 7 Diciembre 2006, 05:35 AM
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. :rolleyes:
Un abrazo.

Akuma san
Título: Re: Temporalizador para Excel
Publicado por: CeLaYa en 7 Diciembre 2006, 14:15 PM
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


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
Título: Re: Temporalizador para Excel
Publicado por: LeandroA en 8 Diciembre 2006, 11:04 AM
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