Contador

Hola:
Intentaré explicarte lo que pretendo conseguir si es posible:
Quiero saber en tiempo real los segundos transcurridos desde las 00:00:00 del día 14 de abril de 2003. En estos momentos han trascurrido más de 11.000.000 de segundos. ¿Puedo tener una celda que los vaya contando?
No sé si me he explicado bien. En definitiva quiero tener un contador que aumente una unidad cada segundo desde la fecha que antes indiqué. Gracias por tu atención. Un saludo.
japrada

1 respuesta

Respuesta
1
La solución trivial es una fórmula como la siguiente:
=(AHORA()-L15)*(24*60*60)
Supuesto que en la celda L15 hayas ingresado la fecha inicial (14/04/2003)
Como sabrás es necesario que se calcule la hoja para que este valor se actualice.
Eventualmente, podrías tener corriendo una macro que se ejecute cada tanto para que muestre el avance de los segundos, sin que tengas que hacerlo manualmente.
---
Pero si quieres algo más elegante, puedes apelar a una aplicación de una rutina que coloca un reloj en pantalla y sobre la hora que muestra puedes aplicar una fórmula similar a la sugerida.
La ventaja es que los segundos se actualizarán automáticamente, segundo a segundo (valga la rebuznancia ;)
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 para que le indiques en qué celda quieres que se muestre el reloj (mi pequeño aporte a tan buen procedimiento)
Desde luego, puedes indicar una celda no visible, supongamos en AZ3
Luego, donde quieres que se muestren los segundos, coloca esta fórmula:
(HOY()+AZ3-L15)*(24*60*60)
Y obtendrás el resultado deseado.
En este momento, el contador que armé muestra:
11,227,738
11,227,739
11,227,740
11,227,741
... ;))
Puedes agregarle un par de botones para iniciar y detener el reloj. Al primero asígnale la macro cmd_TimerOn(), mientras que al segundo asócialo a timer_Stop()
---
Espero que esto cubra tus expectativas.
Un abrazo!
Fernando
Fernando: Muchísimas gracias por tu aportación y sobre todo por tu rapidez en la contestación. Ya he entrado en tu web, y como compensación a tu esfuerzo, prometo entrar todfos los días.
De nuevo muchísimas gracias.
Un saludo
José Antonio Prada

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas