Fecha y hora en VBA

Los valores de fecha y hora en VBA pueden ser manipulados de diversas maneras. En esta ocasión aprenderemos cómo obtener el año, mes y día en VBA y cómo hacer operaciones básicas con fechas.

Para realizar estos ejemplos debes colocar un control de botón en una hoja de Excel y colocar las líneas de código mostradas.

Obtener la fecha y hora actual

Para obtener la fecha actual en VBA utilizamos la función Date y para obtener la hora actual usamos Now.

Fecha y hora actual en VBA

En este ejemplo las variables fechaActual y horaActual contienen la fecha y horas actuales respectivamente.

Obtener el año, mes y día

En el ejemplo anterior he obtenido la fecha actual en la variable fechaActual, sin embargo, si deseo mostrar solamente el año puedo utilizar la función Year.

Función YEAR en VBA

El resultado de este código es el siguiente:

Ejemplo de la función YEAR en VBA

Al trabajar con fechas podremos obtener el mes utilizando la función Month y para obtener el día la función Day.

Obtener la hora, minuto y segundo

Para obtener la hora de la variable horaActual utilizaremos la función Hour de la siguiente manera:

La función Hour en VBA

El resultado es el siguiente:

Ejemplo de la función Hour en VBA

Para obtener el minuto y el segundo podremos utilizar las funciones Minute y Second.

Convertir una cadena de texto en fecha

Ya hemos visto que la función Date nos devuelve la fecha actual, pero podemos utilizar otra función que nos permitirá convertir una cadena de texto en una fecha. La función que utilizaremos para este será la función DateValue.

La función DateValue en VBA

El único argumento de la función DateValue es la cadena de texto que convertirá en fecha. El resultado de esta conversión es el siguiente:

Ejemplo de la función DateValue en Excel

Sumar días a una fecha

Para sumar días a una fecha en VBA utilizaremos la función DateAdd. Esta función nos permite especificar la cantidad exacta de días a sumar:

La función DateAdd en VBA

Observa el resultado de sumar 5 días a la fecha original:

Ejemplo de la función DateAdd en VBA

El primer argumento de la función DateAdd determina la unidad de tiempo que será sumada. En este ejemplo especifiqué “d” para indicar días, pero podemos utilizar otras medidas de tiempo:

  • “yyyy” para años
  • “m” para meses
  • “d” para días
  • “ww” para semanas

Las fechas y horas son un tipo de dato muy común con el que seguramente tendrás que trabajar  al crear tus macros. Es importante que aprendas a utilizar las funciones VBA que nos permitirán manipular adecuadamente la información.

Artículos relacionados
Funciones de VBA

Moisés Ortiz

Autor: Moisés Ortiz

Moisés es consultor en tecnologías de la información con especialidad en herramientas de inteligencia de negocios y análisis de datos. Tiene más de 25 años de experiencia en el uso de Excel y es una de sus herramientas predilectas para la creación de reportes. Ver más ➤