El problema de registrar las horas de entrada y salida en una oficina puede resolverse con dos macros. Supongamos que tenemos un libro de Excel, con una hoja para cada trabajador. En la columna [A] se indicará la fecha, en la [B] la hora de entrada y en la [C], la de salida. Las macros serían más o menos así:
Sub Entrada()
uf = Range(“A10000”).End(xlUp).Row + 1
Cells(uf, “A”) = Date
Cells(uf, “B”) = Time
End Sub
Sub Salida()
uf = Range(“C10000”).End(xlUp).Row + 1
Cells(uf, “C”) = Time
End Sub
La macro [Entrada] comienza localizando la primera celda libre en la columna [A]. La instrucción uf = Range(“A10000”).End(xlUp).Row + 1 representa partir desde la celda [A10000] (bien abajo en la hoja) y subir hasta tropezar con una celda ocupada. Es como subir desde [A10000] usando <Control+Flecha arriba>. De esa celda se toma nota de la fila (con la propiedad Row) y se suma una unidad para obtener la primera fila libre. Luego, en esa fila se escribe la fecha actual, obtenida con la función Date, en la columna [A]; y la hora, obtenida con la función Time, en la columna [B]. De manera similar, la macro [Salida] escribe la hora de salida en la columna [C]. El trabajador selecciona su hoja, y ejecuta la macro [Entrada] al comenzar a trabajar y la macro [Entrada] al terminar.