viernes, 5 de febrero de 2016

Manejo de fechas y horas con 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.
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.

El resultado de este código es el siguiente:


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:

El resultado es el siguiente:

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.


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:


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:


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


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.

Espero que les sirva: