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.
Índice
Insertar Fecha y Hora actual en VBA
Para obtener la Fecha vamos a usar la función Date de la siguiente manera:
De esta manera, tan simple, obtendremos la fecha actual.
A continuación obtendremos la Hora actual usando la función Now:
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:
El segundo mensaje corresponde a la fecha actual con la hora:
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:
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:
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
También puede interesar aprender automatizar:
Un saludo Freaks!!