Traducir el blog

Mostrando entradas con la etiqueta navegador. Mostrar todas las entradas
Mostrando entradas con la etiqueta navegador. Mostrar todas las entradas

Relojes de 24 horas y de 12 horas AM/PM

🔝To translate this blog post to your language, select it in the top left Google box.


Cómo aprender a usar relojes de 24 horas

He visto que quienes vienen de países con relojes que marcan la hora en formato de 12 horas con AM/PM tienen dificultad para aprender a usar relojes de 24 horas.

En países como Colombia se dice: la una de la tarde en lugar de las 13 horas, pues no están acostumbrados a relojes de 24 horas.

Con estos dos relojes se aprende a distinguir el formato de 12 horas AM/PM del formato de 24 horas.

El reloj de la izquierda marca la una y 18 minutos en formato PM (después del mediodía).

El reloj de la derecha marca las 13:18 horas en formato de 24 horas.

TRUCO: Para convertir cualquier hora PM en 24 horas, se suman 12 horas. Por ejemplo, 01:18 PM se convierte en 13:18 horas. Si es 01:18 AM no se suma nada, por lo que es 01:18 horas.


Vídeo para saber la hora

En este vídeo de unos dos minutos explico cómo saber la hora en los relojes de 12 horas y de 24 horas.


Pruébalo ahora mismo en tu teléfono

Prueba en tu teléfono estos dos relojes analógicos, de 24 horas y de 12 horas con AM/PM, desde esta ventana en la nube de Microsoft OneDrive:

ATENCIÓN: Para hacer zoom, coloca dos dedos sobre la pantalla del teléfono y muévelos, igual que cuando amplías o reduces una foto.

En la barra de abajo hay varios iconos:

Botón para actualizar los relojes: Actualizar todas las conexiones de datos

Botón para descargar el archivo: Descargar

Botón para: Información acerca de este libro. Aparece un Código para insertar que no funciona desde hace meses. Está denunciado a Microsoft, pero no da solución.

Ayúdame a compartir los relojes, insertando el siguiente código en tu blog o página web:


Pruébalo ahora mismo en tu PC

Prueba en tu PC estos dos relojes analógicos, de 24 horas y de 12 horas con AM/PM, sin necesidad de descargar nada, incluso sin tener instalado Excel, desde esta ventana en la nube de Microsoft OneDrive:

Para ajustar el zoom en la nube:

  • En el PC sitúa el cursor dentro del buscador y presiona la tecla <Control> girando la ruleta del ratón.

Descarga el archivo haciendo clic en el botón: Descargar

Si quieres ayudarme puedes compartir el nuevo reloj analógico, insertándolo en tu blog o página web con este código:

ATENCIÓN: Se puede modificar este libro de Excel respetando esta licencia:

Creative Commons — Atribución-NoComercial-CompartirIgual-No portada — CC BY-NC-SA 4.0

Dime si te ha sido útil saber usar los dos tipos de reloj.

Reloj analógico en tiempo real

🔝To translate this blog post to your language, select it in the top left Google box.


Un reloj analógico en tiempo real

En el artículo anterior publiqué un reloj analógico que mostraba manualmente la hora actual, presionando la tecla para calcular el libro, ya que no era automático por no contener macros:

Tenía la ventaja de poder usarlo en Excel para la Web y de insertarlo en el blog, por si alguien quería probarlo sin tener instalado Excel.

Ahora publico un reloj analógico en tiempo real, que automáticamente mueve la aguja de los segundos cada segundo, gracias a las macros VBA.

NOTA: Haga clic en el reloj analógico para iniciar o detener el temporizador de un segundo.


ACTUALIZACIÓN v1.12: Descarga la última actualización para elegir el tipo de reloj con un desplegable en la celda D6:

  • 12 Horas: De 1 a 12 horas.
  • 24 Horas: De 12 a 23 horas si la hora es después del mediodía. Si es antes del mediodía se comporta como el reloj de 12 Horas.
  • AM/PM: De 1 a 12 horas, indicando AM o PM si la hora es antes o después del mediodía, respectivamente.

Con la última actualización el tipo de reloj que se muestra ya no está determinado por la configuración regional del sistema operativo, sino que depende de la elección del usuario.

También he añadido eventos de la hoja para cambiar automáticamente el valor del tipo de reloj en la celda D6 cuando el usuario cambia el idioma del reloj.

Además he añadido un microbenchmark, que escribe en la ventana Inmediato del editor VBA (denominada también ventana Ejecución) cuando el reloj se salta algún segundo, debido a que el recálculo tarda más de un segundo, o a que Excel o el sistema están ocupados en otras tareas y no responden en un segundo.


Descarga el reloj analógico en tiempo real

Descarga el reloj analógico en tiempo real v1.12 desde este enlace:

Las macros del archivo descargado están bloqueadas por defecto. Para desbloquear las macros debes modificar las Propiedades del archivo siguiendo estas instrucciones:

Abre el archivo y presiona el botón: Habilitar edición cuando aparezca el aviso de VISTA PROTEGIDA.

Presiona el botón: Habilitar contenido cuando aparezca la ADVERTENCIA DE SEGURIDAD Las macros se han deshabilitado o se deshabilitó parte del contenido activo.

Las macros no están protegidas para poder analizar fácilmente el código VBA. Las hojas están protegidas sin contraseña, para poder analizarlas y para evitar que los usuarios alteren las fórmulas.

ATENCIÓN: Se puede modificar este libro de Excel respetando esta licencia:

Creative Commons — Atribución-NoComercial-CompartirIgual-No portada — CC BY-NC-SA 4.0


Características del reloj analógico en tiempo real

ACTUALIZACIÓN v1.12: He ajustado el comportamiento del módulo con la ayuda de la IA de Microsoft, llevando a cabo pruebas y corrección de errores en 12 iteraciones del desarrollo del código del módulo VBA.

¡Realmente me lo he pasado "pipa" interactuando con la IA de Microsoft Copilot, intentando resolver los intríngulis del código!

Este es el resultado de la última revisión del módulo:

A continuación explicaré cuáles son las principales características del reloj analógico en tiempo real.



Módulo del temporizador API

Este módulo implementa un temporizador de alta precisión en Excel usando las funciones de Windows SetTimer y KillTimer.

Está diseñado para funcionar en 32 y 64 bits, sincronizarse exactamente con el reloj del sistema y actualizar el rango nombrado "miHora" cada segundo sin bloquear Excel.


🧩 1. Compatibilidad total 32/64 bits

Incluye declaraciones API con #If VBA7 Then para:

  • SetTimer
  • KillTimer

Esto garantiza compatibilidad con:

  • Excel 2010 (32/64 bits)
  • Excel 2013 → Excel para Microsoft 365
  • Windows 7 → Windows 11

⏱️ 2. Temporizador real basado en Windows (no OnTime)

A diferencia de Application.OnTime, este temporizador:

  • No se retrasa cuando Excel está ocupado
  • No se acumula
  • No depende del motor de Excel
  • No se rompe al cerrar libros
  • Tiene precisión de milisegundos

Usa:

TimerID = SetTimer(0, 0, intervalo_ms, AddressOf Tick)

🎯 3. Sincronización exacta con el segundo del sistema

El módulo calcula cuántos milisegundos faltan para el próximo segundo exacto:

msRestantes = 1000 - (CLng(Timer * 1000) Mod 1000)
If msRestantes = 1000 Then msRestantes = 0

Esto permite:

  • Primer tick comienza exactamente en 0 ms, no en un punto arbitrario
  • Ticks posteriores cada 1000 ms exactos
  • Evitar desvíos acumulados

🔄 4. Crea el temporizador API

RelojTimerID = SetTimer(0, 0, msRestantes, AddressOf Tick)

El primer tick ocurre justo al inicio del siguiente segundo.


🧱 5. Protección contra errores (incluido el 50290)

El procedimiento Tick incluye:

On Error GoTo SalirTick

Esto evita que:

  • Excel detenga el temporizador si está ocupado
  • Se produzcan errores al cerrar libros
  • El temporizador quede “colgado”

🖱️ 6. Cursor dinámico de reloj

Al iniciar:

Application.Cursor = xlWait

Al detener:

Application.Cursor = xlDefault

Esto da feedback visual claro al usuario.


🛑 7. Inicio/parada conmutado

El módulo incluye un interruptor:

Sub IniciarDetenerReloj()

que alterna entre:

  • IniciarReloj
  • DetenerReloj

Ideal para botones o accesos rápidos.


🧹 8. Limpieza segura del temporizador

Al detener:

KillTimer 0, TimerID

Esto garantiza:

  • No quedan temporizadores huérfanos
  • No se ejecutan ticks después de cerrar el libro
  • No se producen cierres inesperados de Excel

📌 9. No bloquea Excel

El temporizador API:

  • No usa bucles
  • No usa DoEvents
  • No congela la interfaz
  • Permite trabajar en otros libros sin interferencias

🎁 Resumen del Temporizador API

Temporizador API de alta precisión para Excel, compatible con 32/64 bits, sincronizado al segundo del sistema, con actualización inteligente, cursor dinámico, protección contra errores y control seguro de inicio/parada. No bloquea Excel y mantiene estabilidad incluso con múltiples libros abiertos.



Explicación técnica del módulo ModTempo

A continuación explico técnicamente el módulo ModTempo, desarrollado con la ayuda de la IA.

La estructura sigue el flujo real del código y explica qué hace, por qué lo hace, y cómo interactúan entre sí las partes críticas: API Win32, temporizador, corrección de (drift correction), modo híbrido y escritura inteligente.


Módulo Temporizador

ModTempo implementa un reloj de alta precisión dentro de Excel usando:

  • Temporizador API de Windows (SetTimer)
  • Corrección de deriva (drift correction)
  • Modo híbrido:
    • Actualiza la celda solo si Excel está activo y visible
    • Ahorra CPU cuando Excel está en segundo plano
  • Milisegundos reales mediante Now()
  • Escritura inteligente: solo escribe si el valor cambia
  • Sin interferir con cálculos ni edición

El resultado es un reloj estable, eficiente y preciso, superior a cualquier implementación basada en Application.OnTime.


🧩 Declaraciones API

El módulo declara cuatro funciones de la API de Windows:

1) SetTimer

Crea un temporizador que ejecuta un procedimiento (callback) cada X milisegundos.

  • hWnd = 0 → temporizador asociado al proceso, no a una ventana
  • nIDEvent = 0 → Windows asigna un ID automáticamente
  • uElapse → intervalo en milisegundos
  • lpTimerFunc → dirección del procedimiento Tick

Devuelve un ID de temporizador, que se guarda en RelojTimerID.

2) KillTimer

Detiene el temporizador usando su ID.

3) IsWindowVisible

Comprueba si la ventana de Excel está visible (no minimizada).

4) GetForegroundWindow

Devuelve el handle de la ventana que tiene el foco.


🧩 Variables locales

Private RelojCorriendo As Boolean
Private RelojTimerID As LongPtr
Private TickUltimo As Double
Private contadorTicks As Long
Private contadorSaltos As Long
  • RelojCorriendo: estado ON/OFF del reloj.
  • RelojTimerID: ID del temporizador API (obligatorio LongPtr en 64 bits).
  • TickUltimo: marca de tiempo del último tick para medir drift.
  • contadorTicks: contador de ticks del reloj.
  • contadorSaltos: contador de saltos del microbenchmark.

Son Private porque solo deben ser accesibles dentro del módulo.


🧩 IniciarDetenerReloj

Alterna el estado del reloj:

  • Si estaba apagado → lo inicia
  • Si estaba encendido → lo detiene

Es un interruptor simple para el usuario.


🧩 IniciarReloj

Este procedimiento:

1) Cambia el cursor a reloj de arena
Application.Cursor = xlWait

Indica visualmente que el reloj está en marcha.

2) Marca el reloj como activo
RelojCorriendo = True
3) Guarda el tiempo actual
TickUltimo = Timer
4) Sincroniza el primer tick con el siguiente segundo exacto
msRestantes = 1000 - (CLng(Timer * 1000) Mod 1000)
If msRestantes = 1000 Then msRestantes = 0

Esto garantiza que el reloj empiece exactamente en 0 milisegundos, no en un punto arbitrario.

5) Crea el temporizador API
RelojTimerID = SetTimer(0, 0, msRestantes, AddressOf Tick)

El primer tick ocurre justo al inicio del siguiente segundo.


🧩 DetenerReloj

  • Marca el reloj como detenido
  • RelojCorriendo = False
    
  • Mata el temporizador API
  • If RelojTimerID <> 0 Then KillTimer 0, RelojTimerID
        RelojTimerID = 0
    
  • Restaura el cursor
  • Application.Cursor = xlDefault
    

Evita fugas de temporizadores y el cursor indica que el reloj se ha detenido.


🧩 Tick — el corazón del reloj

Este procedimiento se ejecuta cada segundo (o antes, si hay corrección de deriva - drift correction).

0) Evita error 50290 cuando Excel está ocupado
On Error GoTo SalirTick
1) Protección contra cálculos
If Application.CalculationState <> xlDone Then GoTo SalirTick

Evita interferir con cálculos pesados.

2) Determina si Excel está activo
ExcelActivo = (GetForegroundWindow() = hWndExcel) _
              And (IsWindowVisible(hWndExcel) <> 0)

Esto implementa el modo híbrido:

  • Si Excel está activo → modo precisión
  • Si Excel está en segundo plano → modo ahorro
3) Si Excel no está activo → no escribir
If Not ExcelActivo Then GoTo SalirTick

Evita repintados innecesarios.

4) Si la hoja no está visible → no escribir
If Not ActiveSheet.Visible Then GoTo SalirTick

Evita trabajo inútil. Es el modo ahorro para no gastar la batería de los portátiles.

5) Corrección de deriva (drift correction)
tNow = Timer
delta = tNow - TickUltimo
If delta < 0 Then delta = delta + 86400#
6) Si el temporizador se desvía más de ±50 ms, corregir
If Abs(delta - 1#) > 0.05 Then
    KillTimer 0, RelojTimerID
    RelojTimerID = SetTimer(0, 0, 1000, AddressOf Tick)
End If

Esto reancla el temporizador al segundo real del sistema.

7) Una sola lectura del reloj del sistema
vHora = Now()

Excel soporta milisegundos en formato personalizado.

8) Escritura inteligente del cambio de hora
If celda.Value2 <> vHora Then

Solo escribe si el valor cambia → evita repintados.

9) Si Excel no está listo se salta el tick
If Not Application.Ready Then GoTo Registrar

Y registra el resultado del microbenchmark.

10) Medir bloque de escritura
tBloque = Timer

Mide el bloque de escritura de la hora para registrarlo en el microbenchmark.

11) Escritura optimizada del día y la hora del sistema
On Error Resume Next
Application.EnableEvents = False
Application.ScreenUpdating = False
celda.Value2 = vHora
escribeHora = True
Application.ScreenUpdating = True
Application.EnableEvents = True
On Error GoTo 0
tBloque = Timer - tBloque

Evita parpadeos y eventos innecesarios.


🧩 Comportamiento final del módulo

  1. Se sincroniza con el siguiente segundo exacto.
  2. Cada tick:
    • Evita error 50290 cuando Excel está ocupado
    • Comprueba si Excel está calculando
    • Comprueba si Excel está activo
    • Comprueba si la hoja está visible
    • Mide la deriva (drift calculation) y corrige si es necesario
    • Lee la hora en milisegundos
    • Escribe solo si cambia el valor
    • Con microbenchmark que registra saltos de segundos

El módulo ModTempo consigue:

  • Sincronización exacta con el segundo real
  • Milisegundos reales en cada actualización
  • Corrección automática de deriva (drift correction)
  • Ahorro de energía cuando Excel está en segundo plano
  • Cero parpadeos
  • Cero interferencias con cálculos
  • Cero repintados innecesarios
  • Compatibilidad total con 32 y 64 bits

Es un reloj de precisión profesional dentro de Excel:

  • Preciso
  • Eficiente
  • Estable
  • Sin jitter
  • Sin parpadeos
  • Sin interferir con Excel



🧩DIAGRAMA DE FLUJO—ModTempo


                           ┌──────────────────────────┐
                           │ IniciarDetenerReloj()    │
                           └──────────────┬───────────┘
                                          │
             ¿RelojCorriendo = False? ────┤
                                          │Sí
                                          ▼
                               ┌────────────────────┐
                               │ IniciarReloj()     │
                               └───────┬────────────┘
                                       │
                                       ▼
                         ┌──────────────────────────────┐
                         │ Cursor = xlWait              │
                         │ RelojCorriendo = True        │
                         │ TickUltimo = Timer           │
                         └───────────┬──────────────────┘
                                     │
                                     ▼
                     ┌────────────────────────────────────────┐
                     │ Calcular msRestantes hasta el próximo  │
                     │ segundo exacto                         │
                     └───────────────┬────────────────────────┘
                                     │
                                     ▼
                     ┌────────────────────────────────────────┐
                     │ SetTimer( intervalo = msRestantes )    │
                     │ → llama a Tick()                       │
                     └────────────────────────────────────────┘


──────────────────────────────────────────────────────────────────────────────
                           TICK() — Cada disparo del temporizador
──────────────────────────────────────────────────────────────────────────────

                     ┌────────────────────────────────────────┐
                     │ Tick()                                 │
                     └───────────┬────────────────────────────┘
                                 │
   ¿Error si Excel ocupado? ─────┤
                                 │No
                                 ▼
                     ┌────────────────────────────────────────┐
                     │ Continua si Excel no está calculando,  │
                     │ si está activo y si la hoja es visible │
                     └───────────┬────────────────────────────┘
                                 │Sí
                                 ▼
                     ┌────────────────────────────────────────┐
                     │ Mide la deriva del temporizador        │
                     │ KillTimer (primer timer)               │
                     │ SetTimer( intervalo = 1000 ms )        │
                     │ (sincronizado al segundo exacto)       │
                     └───────────┬────────────────────────────┘
                                 │
                                 ▼
                     ┌────────────────────────────────────────┐
                     │ Lee día y hora: vHora = Now()          │
                     └───────────┬────────────────────────────┘
                                 │
           ¿Cambió la hora? ─────┤
                                 │Sí
                                 ▼
                     ┌────────────────────────────────────────┐
                     │ ¿Excel está listo?                     │
                     └───────────┬────────────────────────────┘
                                 │Sí
                                 ▼
                     ┌────────────────────────────────────────┐
                     │ Deshabilita eventos y refresco pantalla│
                     │ Range("miHora") = vHora                │
                     │ Habilita eventos y refresco pantalla   │
                     └────────────────────────────────────────┘
                                 │
                                 ▼
                     ┌────────────────────────────────────────┐
                     │ Fin Tick()                             │
                     └────────────────────────────────────────┘


──────────────────────────────────────────────────────────────────────────────
                           STOP — Detener temporizador
──────────────────────────────────────────────────────────────────────────────

                           ┌──────────────────────────┐
                           │ DetenerReloj()           │
                           └──────────────┬───────────┘
                                          │
                                          ▼
                           ┌──────────────────────────┐
                           │ RelojCorriendo = False   │
                           │ KillTimer TimerID        │
                           │ Cursor = xlDefault       │
                           └──────────────────────────┘

🎯 Qué representa este diagrama

  • El flujo desde que el usuario inicia el temporizador hasta que lo detiene.
  • La sincronización exacta al segundo del sistema.
  • El comportamiento del primer tick (sincronización) y los siguientes (intervalo fijo).
  • La actualización inteligente de miHora.
  • La gestión del cursor de reloj.
  • La detención limpia del temporizador API.


Explicación técnica de los eventos del reloj

Eventos en ThisWorkbook

Este módulo conecta el ciclo de vida del libro con el temporizador API, de modo que el temporizador:

  • se inicia automáticamente cuando se abre el libro
  • se detiene automáticamente cuando el libro intenta cerrarse

Así se evita que el temporizador quede activo en memoria o siga ejecutándose después de cerrar el archivo.


🧩 Comportamiento detallado

Al abrir el libro

Private Sub Workbook_Open()
    IniciarReloj
End Sub

Cuando el archivo se abre:

  • Se ejecuta IniciarReloj
  • Se activa el temporizador API
  • Se inicia la sincronización al segundo exacto
  • Se cambia el cursor a modo reloj (xlWait)
  • Comienza la actualización periódica (Tick)

Resultado: el temporizador arranca automáticamente sin intervención del usuario.


Al intentar cerrar el libro

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    DetenerReloj
End Sub

Cuando el usuario pulsa:

  • La X
  • Alt+F4
  • Ctrl+W
  • O cierra desde menú

Excel ejecuta Workbook_BeforeClose, que:

  • Llama a DetenerReloj
  • Mata el temporizador con KillTimer
  • Restaura el cursor (xlDefault)
  • Limpia el estado interno

Resultado: el temporizador se detiene siempre antes de que el libro se cierre, evitando temporizadores huérfanos o errores 50290.


🎯 Resumen de los eventos del reloj

Este código garantiza que el temporizador API se inicia automáticamente al abrir el libro y se detiene de forma segura al cerrarlo, evitando que quede activo en segundo plano.


Diagrama de flujo — Eventos del reloj


                   ┌────────────────────────────┐
                   │   El usuario abre el libro │
                   └───────────────┬────────────┘
                                   │
                                   ▼
                     ┌──────────────────────────┐
                     │ Workbook_Open()          │
                     └─────────────┬────────────┘
                                   │
                                   ▼
                     ┌──────────────────────────┐
                     │ IniciarReloj             │
                     │ • Inicia temporizador    │
                     │ • Activa cursor reloj    │
                     │ • Sincroniza primer tick │
                     └─────────────┬────────────┘
                                   │
                                   ▼
                     ┌──────────────────────────┐
                     │ Temporizador en marcha   │
                     │ (Tick cada segundo)      │
                     └─────────────┬────────────┘
                                   │
                                   ▼
                   ┌────────────────────────────┐
                   │ El usuario intenta cerrar  │
                   │ (X, Alt+F4, Ctrl+W, menú)  │
                   └───────────────┬────────────┘
                                   │
                                   ▼
                     ┌──────────────────────────┐
                     │ Workbook_BeforeClose()   │
                     └─────────────┬────────────┘
                                   │
                                   ▼
                     ┌──────────────────────────┐
                     │ DetenerReloj             │
                     │ • Mata el timer API      │
                     │ • Restaura cursor normal │
                     │ • Limpia estado interno  │
                     └─────────────┬────────────┘
                                   │
                                   ▼
                     ┌──────────────────────────┐
                     │ El libro se cierra sin   │
                     │ temporizadores activos   │
                     └──────────────────────────┘

🎯 Qué expresa este diagrama

  • El temporizador se inicia automáticamente al abrir el libro.
  • El temporizador se detiene siempre antes de que el libro se cierre.
  • Se evita que queden temporizadores huérfanos en memoria.
  • Se garantiza que Excel no siga ejecutando Tick después del cierre.
  • El flujo es limpio, seguro y totalmente automático.


Administrador de nombres

Estos son los nombres definidos en el Administrador de nombres, necesarios para diseñar el Reloj analógico en tiempo real.


Reloj analógico traducido a 6 idiomas

Selecciona tu idioma para disfrutar de una Excel-ente experiencia.

En la siguiente imagen animada se ve un reloj analógico del tipo AM/PM, con el formato regional en inglés, y otro del tipo 24 horas en español.


Videotutorial explicando las macros del reloj analógico

En este vídeo he intentado explicar los intríngulis del reloj analógico.

En el vídeo no he mencionado la colaboración con la IA de Microsoft Copilot, sin la cual no habría podido afinar tanto el código para lograr este resultado, aunque en los siguientes enlaces no he incluido el diálogo que mantuve con la IA durante muchas iteraciones, sino solo el resultado final:

Descarga el Reloj analógico en tiempo real, pruébalo y te agradeceré cualquier sugerencia que me hagas tendente a mejorarlo.

Nuevo reloj analógico en Excel

🔝To translate this blog post to your language, select it in the top left Google box.


Características del nuevo reloj analógico

Con mi nuevo reloj analógico puedo ver la hora actual o cualquier otra hora que yo quiera...

Características principales:

1) Diseñado para funcionar en versiones desde Excel 2010 hasta Excel para Microsoft 365.

2) Diseñado para funcionar en Excel para la Web o insertado en mi propio blog.

3) Muestra la hora actual o una hora introducida manualmente.

4) Muestra el formato de 12 horas o de 24 horas.

5) Muestra el formato con 60 minutos.

6) Muestra u oculta la aguja de los segundos.

7) Posición correcta segundo a segundo de las agujas de las horas, minutos y segundos. 

8) Escrito en 6 idiomas y ampliable fácilmente a más idiomas.

¿Te gusta el aspecto de mi nuevo reloj analógico?

Cada vez que pulses la tecla <F9> se actualiza la hora actual.

  • Edita el rango de celdas E4:G4 con la hora manual: Hora, minutos y segundos.
  • La casilla de la celda D3 controla que se vea la hora actual o la hora manual.
  • La casilla de la celda D6 controla que se vean 12 o 24 horas.
  • La casilla de la celda E6 controla que se vean las horas.
  • La casilla de la celda F6 controla que se vean 60 minutos. Es prioritario sobre las horas.
  • La casilla de la celda G6 controla si se verá la aguja de los segundos.
  • En el rango F9:G9 se puede modificar el centro del reloj.
  • Las celdas E12, E15, E18 y E21 son los tamaños de las agujas del reloj de la hora, minuto y segundo respectivamente, estando dividida en dos partes la aguja de los segundos.
  • Aunque en la imagen animada no se vea, en la celda G23 se elige el idioma de los textos del reloj: Español; English; Française; Italiano; Deutsch; Português.


Prueba el nuevo reloj analógico

Prueba el reloj analógico sin necesidad de descargar nada, incluso sin tener Excel instalado, desde esta ventana en la nube de Microsoft OneDrive:

Para ajustar el zoom en la nube:

  • En el móvil o celular usa dos dedos en la pantalla, como haces para ampliar o reducir una foto.
  • En el PC sitúa el cursor dentro del buscador y presiona la tecla <Control> girando la ruleta del ratón.

Descarga el archivo haciendo clic en el botón: Descargar

Si quieres compartir el nuevo reloj analógico, aquí tienes el código para insertarla en tu blog o página web:


Descarga el nuevo reloj analógico

Descarga el nuevo reloj analógico desde este enlace:

Abre el archivo y presiona el botón: Habilitar edición cuando aparezca el aviso de VISTA PROTEGIDA.

El archivo no contiene macros y tiene las hojas protegidas sin contraseña para evitar que los usuarios alteren las fórmulas.

ATENCIÓN: Se puede modificar este libro de Excel respetando esta licencia:

Creative Commons — Atribución-NoComercial-CompartirIgual-No portada — CC BY-NC-SA 4.0


Cómo se me ocurrió hacer el nuevo reloj analógico

Desde hace años me han interesado los relojes hechos en Excel. En este artículo está el último que he construido:

Hace unos días Andrew Moss, mi favorito aficionado en Excel, escribía en las redes sociales sobre la creación de relojes analógicos en diferentes versiones de ChatGPT:

El año pasado ChatGPT siempre devolvía las 10:10 horas al pedirle otra hora.

Este mes la última versión de ChatGPT consigue que el reloj marque las 12:30 horas pedidas, pero la aguja de las horas está en las 12 cuando debería estar entre las 12 y la 1 horas:

Hice la prueba con Microsoft Copilot y me devolvió una versión Frankenstein del reloj, marcando las 10:10 y las 12:30 horas simultáneamente:

Como ninguna Inteligencia Artificial (IA) está lo suficientemente capacitada, de momento, para generar un reloj analógico, le comenté a Andrew que su publicación en X me inspiró a crear un reloj analógico completamente integrado en un gráfico de dispersión XY. Y eso es lo que he hecho para poder publicar este artículo.

De todos modos puedes ver el "estado del arte" de varias IA generando código HTML para crear relojes analógicos en tiempo real en esta página:

Como solo soy un aficionado en HTML/CSS/JS, he necesitado la ayuda de la IA de Microsoft Copilot para crear este reloj analógico y digital, y así poder incrustarlo en mi blog:

12
1
2
3
4
5
6
7
8
9
10
11
00:00:00

Aún no he conseguido que se vean los 60 puntos donde no haya números de horas. ¿Me ayudas a conseguirlo?


Videotutorial para aprender a crear el reloj analógico

En este vídeo he intentado explicar cómo he creado el nuevo reloj analógico en Excel.


Cómo crear el reloj analógico

Creo que en el vídeo anterior está suficientemente explicado cómo crear un reloj analógico en Excel, pero aquí daré algunos detalles más, que explican mejor los problemas que he tenido al crearlo.

La primera idea fue crearlo en un único gráfico combinado por varios gráficos de dispersión.

Dicho gráfico combinaba 9 series distintas:

  • Centro: Con un gráfico de dispersión, para crear el punto central donde se unen las agujas del reloj.
  • Horas: Con un gráfico de dispersión con líneas rectas, para crear la aguja de las horas.
  • Minutos: Con un gráfico de dispersión con líneas rectas, para crear la aguja de los minutos.
  • Segundos: Con un gráfico de dispersión con líneas rectas, para crear la aguja larga de los segundos.
  • Seg2: Con un gráfico de dispersión con líneas rectas, para crear la aguja corta de los segundos.
  • N. Hora: Con un gráfico de dispersión con líneas rectas ocultas pero con etiquetas, para crear los números de las horas, del 1 al 12 o del 13 al 24.
  • N. Min.: Con un gráfico de dispersión con líneas rectas ocultas pero con etiquetas, para crear los números de los minutos, del 0 al 59.
  • Puntos X: Con un gráfico de dispersión, para crear los 60 puntos del minutero o del segundero.
  • Esfera X: Con un gráfico de dispersión con líneas suavizadas, para crear el círculo del reloj.

ATENCIÓN: Al cambiar el idioma, cambian los nombres de las series, pues se traducen los encabezados de la fila 1 de la hoja 'Datos'...

Las series N. Hora y N. Min. se creaban con el contenido de la etiqueta marcando: Valor de las celdas, y presionando el botón: Seleccionar rango...

Para N. Hora:

=Datos!$F$2:$F$62

Para N. Min.:

=Datos!$I$2:$I$62

Pero seleccionar rango de etiquetas de datos no es compatible con Excel 2010, pues creo que apareció por primera vez en Excel 2013.

Al abrir ese gráfico combinado con esas dos series, los números de horas y de minutos generan errores debidos a los rangos de etiquetas, por lo que no se ven los números si las series N. Hora y N. Min. son gráficos de dispersión con rangos para las etiquetas de datos.

El resultado erróneo se muestra en esta imagen animada, junto con el resultado correcto de usar gráficos de burbujas en Excel 2010:


No se puede conseguir que Excel 2010 muestre correctamente los números de horas y de minutos con un único gráfico combinado, debido al problema descrito anteriormente.

AVISO: Como a mí me gusta que mis archivos sean compatibles en cualquier versión a partir de Excel 2010, ya que fue la versión con la que adquirí mis primeras experiencias en Excel y de la que tengo muy buenos recuerdos, he tenido que crear un segundo gráfico con dos series de burbujas, ya que no se pueden combinar a la vez gráficos de dispersión y de burbujas...

La siguiente imagen muestra los gráficos de burbujas separados de los de dispersión, que se han ocultado para mayor claridad. También muestra el grupo creado con los dos gráficos y la elipse de fondo.


TRUCO 1: Con la elipse de fondo se añade un círculo exterior adicional, y sobre todo sirve para colorear el interior del reloj, pues los gráficos de dispersión y de burbujas no permiten colorear fácilmente las regiones interiores de sus puntos o líneas.

En el Gráfico Reloj Analógico está el gráfico combinado por 7 gráficos de dispersión.

En el gráfico de Burbujas Reloj Analógico está el gráfico de burbujas, que muestra los números de horas y de minutos, con las dos series N. Hora y N. Min.

En la imagen de la izquierda están los valores de la serie N. Hora.

En la imagen de la derecha están los valores de la serie N. Min.


TRUCO 2: Los rangos que definen el Tamaño de burbuja de la serie sirven como valores de etiquetas para los números de horas y de minutos.

En las Opciones de etiqueta hay que marcar: Tamaño de la burbuja

AVISO: En Excel 2010 no existe la opción: Valor de las celdas, y por eso genera error al abrir un archivo creado en versiones posteriores de Excel con esa opción.


TRUCO 3: A la fórmula de la celda Datos!J2, arrastrada hasta Datos!J62 con los tamaños de las burbujas de la serie N. Min., se le suma una milésima, para que no haya ninguna burbuja con un tamaño cero:

=SI(Y(esNúmMinutos;Datos!$A2<360);Datos!$A2/6+0,001;"")

Así se consigue que aparezca el número 0 en los números de minutos, pues si fuera exactamente de tamaño 0 no se vería ni la burbuja ni la etiqueta con el número 0.


TRUCO 4: Las burbujas se ocultan pues no hacen falta, sin relleno y sin línea de borde. Sólo son necesarias las etiquetas con el tamaño de cada burbuja.

Los valores X e Y de las dos series de burbujas determinan la posición de dichos números en un círculo interior del reloj analógico.

Por lo que el archivo del Reloj Analógico, que puedes descargar más arriba, es compatible con cualquier versión, desde Excel 2010 hasta Excel para Microsoft 365, y también en Excel para la Web. ¡Como me había propuesto!


ACTUALIZACIÓN: Nuevo temporizador

Descarga el nuevo temporizador desde este enlace:

Las macros del archivo descargado están bloqueadas por defecto. Para desbloquear las macros debes modificar las Propiedades del archivo siguiendo estas instrucciones:

Las macros de Internet están bloqueadas de forma predeterminada en Office - Deploy Office | Microsoft Learn

Abre el archivo y presiona el botón: Habilitar edición cuando aparezca el aviso de VISTA PROTEGIDA.

Presiona el botón: Habilitar contenido cuando aparezca la ADVERTENCIA DE SEGURIDAD Las macros se han deshabilitado o se deshabilitó parte del contenido activo.

ATENCIÓN: Se puede modificar este libro de Excel respetando esta licencia:

Creative Commons — Atribución-NoComercial-CompartirIgual-No portada — CC BY-NC-SA 4.0


PLUS: Uso del temporizador

El reloj analógico se actualiza en tiempo real al hacer clic en el icono del reloj de arena del temporizador.

Con este temporizador se actualiza el reloj analógico cada segundo...


Nuevo reloj analógico en tiempo real

En el siguiente artículo podrás descargar un reloj analógico en tiempo real:

Es un reloj analógico automático, pues mueve las agujas cada segundo.

¿Qué tipo de reloj analógico prefieres, uno manual o uno automático?

Colección de Excel insertados en mi blog

🔝To translate this blog post to your language, select it in the top left Google box.


¡COLECCIONA EXCEL!

El mes de septiembre es el mes por antonomasia de los anuncios de todo tipo de colecciones, por lo que no me resisto a publicar la mejor colección de mis archivos, que he ido insertando en este blog durante años...



🟨 ¡COLECCIONA EXCEL! 🟩  

📅 EN SEPTIEMBRE... llega la revolución vintage de las hojas de cálculo.

Descubre las Colecciones de Pedro Wave, una serie única e irrepetible de plantillas Excel con estética retro, diseñadas para los amantes del orden, la nostalgia y el estilo pixelado. Desde gráficos de población con sabor a los 90 hasta planificadores Kanban que parecen sacados de un disquete, cada hoja es una cápsula del tiempo digital.


🎯 Ideal para:

- Creativos que aman los datos analógicos, sin olvidar todo lo digital.

- Profesionales con alma vintage, pero que les gusta experimentar con Excel para la Web.

- Fans del software clásico, aunque usen las versiones más recientes de Excel.

- Nómadas digitales que quieran navegar por mi blog de Excel desde un navegador.


📦 ¡No te quedes sin la tuya!

Cada hoja es una pieza de colección y, para usarla, no necesitas tener instalado Excel en tu equipo.

¡Colecciones de Pedro Wave!

Organiza tu vida como si fuera 1985, usando un navegador y sin salir de mi blog.


EXCEL CUMPLE 40 AÑOS

Para colmo, este mes de septiembre se celebra el 40 cumpleaños de Excel.

¡Celebra conmigo el lanzamiento de Excel 1.0, que nació el 30 de septiembre de 1985!

¡Ya llevamos soportando a Excel desde hace 40 años! ¡Y lo que nos queda en el tintero!

¿Cómo será Excel dentro de 10, 20, 30 o 40 años más? ¡La historia lo dirá!


MI COLECCIÓN DE EXCEL

Para celebrar este mes, cada día que pase hasta el 30 de septiembre, iré publicando uno de los archivos Excel, insertados en este blog durante los últimos 15 años, para que los tengas en un solo lugar.

Los archivos insertados son del tipo *.xlsx, compatibles con Excel para la Web, guardados en la nube de Microsoft OneDrive, e insertados en este artículo del blog que estás leyendo ahora mismo por lo que, para probarlos, no necesitas instalar Excel ni en tu equipo, ni en tu tablet, ni en tu móvil o celular.

NOTA: Añado el Código para insertar pues, el botón: Información acerca de este libro, genera erróneamente el código que sirve para compartir archivos Excel en blogs o en páginas web.

Para ajustar el zoom en la nube:

  • En el móvil o celular usa dos dedos en la pantalla, como haces para ampliar o reducir una foto.
  • En el PC sitúa el cursor dentro del buscador y presiona la tecla <Control> girando la ruleta del ratón.


1) Descomposición factorial en números primos

Fecha de publicación: 24 de junio de 2013

Resumen: A raíz de una consulta de un profesor de matemáticas, se me ocurrió realizar esta plantilla que permite practicar la descomposición factorial de un número compuesto en sus factores primos desde OneDrive, sin necesidad de tener instalado Excel, gracias a resolverlo solamente con fórmulas.

Lee el artículo original aquí: Descomposición factorial en números primos | #ExcelPedroWave

Código para insertar:


2) Cómo calcular raíces cuadradas

Fecha de publicación: 11 de septiembre de 2023

Resumen: Como me gustan los cálculos, he preparado una hoja Excel para ayudarme a calcular la raíz cuadrada a mí mismo y a quienes lean este artículo. Con sólo introducir el radicando y cada uno de los dígitos de la raíz cuadrada, se van mostrando automáticamente los cálculos necesarios y se obtiene la prueba de la raíz cuadrada.

Lee el artículo original aquí: Cómo calcular raíces cuadradas | #ExcelPedroWave

Código para insertar:


3) Cómo hacer un calendario en Excel

Fecha de publicación: 13 de mayo de 2010

Resumen: Lo más destacado de este calendario es que cada uno de los días del mes se representa como un número interno del formato de fechas de Excel, siendo el formato condicional el que da color al calendario.

Lee el artículo original aquí: Cómo hacer un calendario en Excel | #ExcelPedroWave

Código para insertar:


4) Agenda Calendario Lunar 2025

Fecha de publicación: 30 de diciembre de 2024

Resumen: Agenda y Calendario de los años 2025 y 2026. Se puede usar tanto en español como en inglés, y comenzar la semana en lunes o en domingo.

Lee el artículo original aquí: Agenda Calendario Lunar 2025 | #ExcelPedroWave

Código para insertar:


5) Diagrama de Gantt con escenarios de riesgo

Fecha de publicación: 8 de septiembre de 2010

Resumen: Ejemplo de hace 15 años de un Diagrama de Gantt para la gestión de proyectos en tiempo real, en 3 escenarios de riesgo: Optimista; Realista o Pesimista. Es una ayuda en la toma de decisiones para poder cumplir los objetivos establecidos para el proyecto.

Lee el artículo original aquí: Diagrama de Gantt con escenarios de riesgo | #ExcelPedroWave

Código para insertar:


6) Nuevo Diagrama de Gantt

Fecha de publicación: 25 de enero de 2023

Resumen: Nuevo Diagrama de Gantt con escenarios de riesgo, revisado y actualizado para eliminar algunos errores. He ampliado a 30 el máximo número de tareas de un proyecto, que ahora se pueden editar.

Lee el artículo original aquí: Nuevo Diagrama de Gantt | #ExcelPedroWave

Código para insertar:


7) Cómputos que hacen la "Pascua"

Fecha de publicación: 17 de septiembre de 2010

Resumen: Recopilación de algoritmos para calcular el Domingo de Pascua, basados en la primera luna llena o plenilunio de la primavera boreal. Calcula el Domingo de Pascua del año que escribas en la celda A1.

Lee el artículo original aquí: Cómputos que hacen la "Pascua" | #ExcelPedroWave

Código para insertar:


8) Conversión de Datos 1: Visor de Ajedrez en Excel

Fecha de publicación: 17 de febrero de 2012

Resumen: Mi primer visor de ajedrez en Excel, con la notación algebraica en 48 idiomas seleccionados en la celda K11. Se usa modificando las celdas en amarillo. Comienza incrementando en uno el número de jugada en la celda K9.

Lee el artículo original aquí: Conversión de Datos 1: Visor de Ajedrez en Excel | #ExcelPedroWave

Código para insertar:


9) Día de reyes y reinas

Fecha de publicación: 6 de enero de 2023

Resumen: Visor de ajedrez igualitario en el que se lanza una moneda. Si sale el Rey se juega una partida clásica. Si sale la Reina se juega una partida igualitaria, intercambiando las piezas del Rey y la Reina.

Lee el artículo original aquí: Día de reyes y reinas | #ExcelPedroWave

Código para insertar:


10) Anillos Olímpicos en Excel

Fecha de publicación: 1 de agosto de 2024

Resumen: Cómo crear los 5 anillos olímpicos entrelazados en un gráfico de dispersión en Excel.

Lee el artículo original aquí: Anillos Olímpicos en Excel | #ExcelPedroWave

Código para insertar:


11) Traducción de idiomas con cálculo iterativo

Fecha de publicación: 21 de octubre de 2021

Resumen: Cuestionario de Traducción de Idiomas hecho con cálculo iterativo. Acierta a traducir frases en 9 lenguas, seleccionadas en la hoja 'Configuración': Español; Inglés; Francés; Alemán; Italiano; Portugués; Catalán; Gallego y Euskera.

Lee el artículo original aquí: Traducción de idiomas con cálculo iterativo | #ExcelPedroWave

Código para insertar:


12) Test de Excel con cálculo iterativo

Fecha de publicación: 26 de octubre de 2021

Resumen: Realizando este test, sabrás si dominas Excel.

Lee el artículo original aquí: Test de Excel con cálculo iterativo | #ExcelPedroWave

Código para insertar:


13) Test de atajos de teclado de Excel

Fecha de publicación: 13 de marzo de 2023

Resumen: Con este test de atajos de teclado de Excel, podrás memorizar más combinaciones de teclas que con cualquier otro método abreviado de teclado.

Lee el artículo original aquí: Test de atajos de teclado de Excel | #ExcelPedroWave

Código para insertar:


14) Test espacial

Fecha de publicación: 14 de febrero de 2022

Resumen: Pon a prueba tus conocimientos sobre los astronautas que consiguieron récords históricos en los vuelos espaciales con este test. Para hacer otro test, presionar la tecla F5.

Lee el artículo original aquí: Test espacial | #ExcelPedroWave

Código para insertar:


15) Control Horario

Fecha de publicación: 31 de marzo de 2025

Resumen: Registra las horas trabajadas y las extras con este Control Horario hecho en Excel.

Lee el artículo original aquí: Cuartos cambios en el Control Horario | #ExcelPedroWave

Código para insertar:


16) Control de asistencia escolar

Fecha de publicación: 20 de septiembre de 2023

Resumen: Con este Control de asistencia escolar en la nube los maestros o profesores de enseñanza en Excel, o en cualquier otra materia o asignatura, podrán registrar las faltas de asistencia de los alumnos a sus clases

Lee el artículo original aquí: Control de asistencia escolar | #ExcelPedroWave

Código para insertar:


17) Calendario internacional con una única fórmula

Fecha de publicación: 26 de febrero de 2024

Resumen: Calendario internacional con una única fórmula, en el que la semana pueda comenzar en lunes o en domingo, y los días y meses estén escritos en el idioma de Excel.

Lee el artículo original aquí: Calendario internacional con una única fórmula | #ExcelPedroWave

Código para insertar:


18) Comparador de datos salariales

Fecha de publicación: 24 de junio de 2024

Resumen: Comparador de datos salariales, para saber lo que ganan los profesionales del dato en varios países.

Lee el artículo original aquí: Comparador de datos salariales | #ExcelPedroWave

Código para insertar:


19) Gráficos de copas en Excel

Fecha de publicación: 29 de julio de 2022

Resumen: ¿Cómo hacer un gráfico de copas en Excel? ¡Tomando copas de vino o de cerveza los juernes, para comenzar bien pronto el finde!

Lee el artículo original aquí: Gráficos de copas en Excel | #ExcelPedroWave

Código para insertar:


20) Formato de celdas con emojis

Fecha de publicación: 11 de marzo de 2024

Resumen: El uso de emojis para dar formato a las celdas permite crear comparativas más efectivas que con el formato condicional. Un buen ejemplo sería un comparador de IPCs.

Lee el artículo original aquí: Formato de celdas con emojis | #ExcelPedroWave

Código para insertar:


21) Mi bingo iterativo

Fecha de publicación: 4 de agosto de 2025

Resumen: Juega al bingo marcando las casillas con un desplegable. Comienza marcando la casilla Extraer. Para extraer cada bola presiona el botón de abajo: Actualizar todas las conexiones de datos.

Lee el artículo original aquí: Mi bingo iterativo | #ExcelPedroWave

Código para insertar:


22) Pirámide de población en Excel

Fecha de publicación: 11 de abril de 2022

Resumen: Comparativa con dos pirámides de población española. Visualiza la segunda pirámide desplazando la barra horizontal hacia la derecha o disminuyendo el zoom.

Lee el artículo original aquí: Pirámide de población en Excel | #ExcelPedroWave

Código para insertar:


23) Tablero Kanban personalizable en Excel

Fecha de publicación: 17 de junio de 2024

Resumen: Tablero Kanban personalizable, programado en 6 idiomas, y preparado para compartir con el equipo de trabajo en MS OneDrive. ¡Es el Excel que más visitas tiene últimamente!

Lee el artículo original aquí: Tablero Kanban personalizable en Excel | #ExcelPedroWave

Código para insertar:


Esta es la última entrega de esta Colección de Excel.

Mi lista de blogs