Reloj

¿Qué tal quería consultarte si hay alguna función o método para que en una celda se active un cronometro?.
Debo poner un reloj en una hoja excel que al abrirla inicie la cuenta del tiempo transcurrido desde su apertura.
Y que a pesar de no ingresar datos la celda continué " refrescando" el paso del tiempo.

1 respuesta

Respuesta
1
Para lo que solicitas, puedes apelar a una aplicación de una rutina que coloca un reloj en una celda a elección.
Afortunadamente, tal rutina ya está desarrollada.
Acredito -como corresponde- a Sebastián Thomschke como el autor del código siguiente.
Activa el editor de Visual Basic (presiona Alt+F11), inserta un nuevo módulo ("Insertar", "Módulo") y pega el siguiente código:
' *********************************************************************
' Excel VBA Timer Example v1.00
' Copyright ©2002 by Sebastian Thomschke, All Rights Reserved.
' http://www.sebthom.de
'*********************************************************************
' If you like this code, please vote for it at Planet-Source-Code.com:
' http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=34409&lngWId=1
' Thank you
'*********************************************************************
' WARNING: ANY USE BY YOU IS AT YOUR OWN RISK. I provide this code
' "as is" without warranty of any kind, either express or implied,
' including but not limited to the implied warranties of
' merchantability and/or fitness for a particular purpose.
'*********************************************************************
' You are free to use this code within your own applications, but you
' are expressly forbidden from selling or otherwise distributing this
' source code without prior written consent.
' *********************************************************************
Option Explicit
Dim ClockCell As String
Dim timer_enabled As Boolean
Dim timer_interval As Double
Sub cmd_TimerOn()
ClockCell = "B8" ' celda donde mostrará el reloj
Dim interval As Double
interval = 1.15740740740741E-05
'start the timer with the specified interval
Call timer_Start(interval)
End Sub
' *********************************************************************
' your code goes into this Makro
' *********************************************************************
Sub Timer()
' output the current time to cell ClockCell
Range(ClockCell).Value = Format(CStr(Time), "hh:mm:ss")
End Sub
' *********************************************************************
' internal timer methods
' *********************************************************************
Sub timer_OnTimer()
Call Timer
If timer_enabled Then Call timer_Start
End Sub
Sub timer_Start(Optional ByVal interval As Double)
If interval > 0 Then timer_interval = interval
timer_enabled = True
If timer_interval > 0 Then Application.OnTime (Now + timer_interval), "Timer_OnTimer"
End Sub
Sub timer_Stop()
timer_enabled = False
End Sub
----
Verás que le agregué una variable (ClockCell) para que le indiques en qué celda quieres que se muestre el reloj (mi pequeño aporte a tan buen procedimiento)
Finalmente, para que la macro se ejecute al abrir el archivo, activa el editor de Visual Basic (presiona Alt+F11) y busca la hoja que dice "ThisWorkbook" (o "EsteLibro" según la versión")
Copia el código siguiente y pégalo en el panel desplegado a la derecha de su Editor de Visual Basic:
Private Sub Workbook_Open()
cmd_TimerOn
End sub
Private Sub
Workbook_BeforeClose(Cancel As Boolean)
timer_Stop
O, también, puedes agregarle un par de botones para iniciar y detener el reloj, independientemente de que hays introducido las macros de inicio y cierre.
Al primer botón asígnale la macro cmd_TimerOn(), mientras que al segundo asócialo a timer_Stop()
---
Espero que esto cubra tus expectativas.
Un abrazo!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas