Icono del sitio Desafiando Excel

Crear un temporizador en Excel (macro)

Crear un temporizador en Excel (macro)

¿Cómo podemos crear un temporizador de actividad mediante el uso de macros en Excel?

La siguiente macro nos permite crear un temporizador con el cual podemos medir tiempos de distintas sesiones de trabajo en un libro y hoja con registros mediante macros de forma rápida y fácil en Excel.

La instrucción a copiar dentro de un nuevo módulo de vba es la siguiente:

 

CREAR UN TEMPORIZADOR EN EXCEL

Dim tiempoInicio As Date
Dim timerActivo As Boolean

Sub IniciarTimer()
    tiempoInicio = Now
    timerActivo = True
    MsgBox "Temporizador iniciado"
End Sub

Sub DetenerTimer()
    
    If timerActivo = False Then
        MsgBox "Debe iniciar el temporizador antes de finalizar."
        Exit Sub
    End If
    
    Dim duracion As Double
    duracion = Now - tiempoInicio
    
    Dim resultado As String
    Dim totalSegundos As Long
    Dim horas As Long
    Dim minutos As Long
    Dim segundos As Long
    
    totalSegundos = duracion * 86400
    
    horas = totalSegundos \ 3600
    minutos = (totalSegundos Mod 3600) \ 60
    segundos = totalSegundos Mod 60
    
    resultado = Format(horas, "00") & ":" & Format(minutos, "00") & ":" & Format(segundos, "00")
    
    Dim ws As Worksheet
    
    On Error Resume Next
    Set ws = Sheets("Registro")
    On Error GoTo 0
    
    If ws Is Nothing Then
        Set ws = Sheets.Add(After:=Sheets(Sheets.Count))
        ws.Name = "Registro"
        ws.Range("A1:D1").Value = Array("Tarea", "Inicio", "Fin", "Duración")
        ws.Range("A1:D1").Interior.Color = RGB(255, 255, 153)
    End If
    
    Dim fila As Long
    fila = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
    
    ws.Cells(fila, 1).Value = "Tarea X"
    ws.Cells(fila, 1).Interior.Color = RGB(217, 217, 217)
    
    ws.Cells(fila, 2).Value = tiempoInicio
    ws.Cells(fila, 3).Value = Now
    ws.Cells(fila, 4).Value = resultado
    
    ws.Columns("B:C").NumberFormat = "dd/mm/yyyy hh:mm:ss"
    ws.Columns("B:C").AutoFit
    
    If ws.Columns("B").ColumnWidth < 20 Then ws.Columns("B").ColumnWidth = 20
    If ws.Columns("C").ColumnWidth < 20 Then ws.Columns("C").ColumnWidth = 20
    
    ws.Activate
    ws.Cells(fila, 1).Select
    
    MsgBox "Duración: " & resultado
    
    timerActivo = False

End Sub

 

Notar que nombramos a las dos macros «IniciarTimer» y «DetenerTimer». Una vez creado el módulo debemos vincular ambas macros con los botones de formulario que realizan cada acción (iniciar y detener el timer).

De esta forma logramos crear un temporizador que mide tiempos de actividad en un libro y hoja de forma rápida y fácil mediante macros en Excel.

 

Te recomiendo ver el siguiente link con más videos de Macros útiles de Excel AQUÍ.

¿No sabés como instalar esta macro? ¡No te preocupes!  Aquí está la solución:

Salvo aclaración, todas las fórmulas y macros de este sitio están configuradas para aplicarse sobre la celda A1. Algunas fórmulas se encuentran encerradas entre llaves {} debido a que son fórmulas matriciales. Estas llaves no deben introducirse tecleándolas, sino que se generan automáticamente al aceptar la fórmula pulsando Control+Shift+Enter al mismo tiempo. Las fórmulas de este sitio son compatibles con versiones de Microsoft Excel® 2010 o superiores. 

Salir de la versión móvil