Insertar fecha y hora en VBA

Hola Freaks!! ¿Quieres saber como obtener la fecha actual en vba?

Despues de iniciarte en la creación de macros, vamos a ver como obtener el año, mes y dia en visual basic, además de la hora.

Esto es muy útil por ejemplo para renombrar ficheros, insertar la fecha y hora de actualización del fichero en una celda.

Insertar Fecha y Hora actual en VBA

Para obtener la Fecha vamos a usar la función Date de la siguiente manera:

fecha-hora-vba

De esta manera, tan simple, obtendremos la fecha actual.

A continuación obtendremos la Hora actual usando la función Now:

fecha-hora-vba

Para comprobar que hemos realizado la macro correctamente vamos a usar un cuadro de diálogo con el resultado obtenido:

Sub fecha_hora()

Dim fecha_actual As Date
Dim hora_actual As Date

fecha_actual = Date
hora_actual = Now

MsgBox (fecha_actual)
MsgBox (hora_actual)

End Sub

Al ejecutar la macro nos aparecerán los siguientes cuadros de diálogo:

El primer mensaje corresponde a la fecha actual:

fecha-hora-vba

El segundo mensaje corresponde a la fecha actual con la hora:

fecha-hora-vba

Si sólo quisiéramos mostrar una parte de la fecha o de la hora actual en vba, que hemos definido previamente, los obtendríamos de la siguiente manera:

Para obtener el año actual en vba:

Year(fecha_actual)

Para obtener el mes actual en vba:

Month(fecha_actual)

Para el obtener el día actual en vba:

Day(fecha_actual)

Para obtener la hora actual en vba:

Hour(hora_actual)

Para obtener el minuto actual en vba:

Minute(hora_actual)

Para obtener los segundos actuales en vba:

Second(hora_actual)

Ya tenemos desglosada, tanto la fecha como la hora actual.

Ejemplo de fecha y hora en vba

A continuación vamos a usar lo aprendido hasta ahora para insertar en una celda la fecha en la que hemos actualizado el fichero. En otra ocasión usaremos la fecha para renombrar un fichero excel.

Podríamos insertar la fecha en una celda con el formato estandar dd/mm/aaaa, pero me apetece mostrarla con el formato aaaammdd

Como insertar la fecha actual en una celda

Como ya hemos aprendido a desglosar la fecha actual en vba, ahora vamos a concatenarla con el formato de fecha «aaaammdd» y mostrarla en una celda de la siguiente manera

Sub fecha_hora()

    Dim fecha_actual As Date
    
    fecha_actual = Date
    
    Range("C4").Value = Year(fecha_actual) & Month(fecha_actual) & Day(fecha_actual)

End Sub

De esta manera insertaremos la fecha en la celda C4:

fecha-hora-vba

Como puedes ver, de esta manera, el mes no se muestra en formato «mm» sino que depende del dia que sea, lo muestra con uno o dos carácteres.

Si quieres que el mes te aparezca con el 0 delante el código debería estar formado de la siguiente manera:

Sub fecha_hora()

    Dim fecha_actual As Date
    
    fecha_actual = Date
    
    Range("C4").Value = Year(fecha_actual) & Format(fecha_actual, "mm") & Format(fecha_actual, "dd")

End Sub

De esta manera mostraremos la fecha con el mes y el día con dos caracteres:

fecha-hora-vba

Esto es todo amigos! Espero que os haya sido de utilidad.

Si tienes algunda duda al respecto, deja tu pregunta en el foro

<< Vuelve al indice del curso excel avanzado

Un saludo Freaks!!

Autor entrada: Javi de Excelfreak

Deja un comentario