AÑADIR AÑOS, MESES Y DÍAS A UNA FECHA EN VBA

Hola a todos:

En el post de hoy veremos un método para añadir años, meses y días a una fecha. Esto normalmente en nuestra hoja de excel lo hacemos con la función FECHA() combinada con las funciones AÑO, MES Y DIA y sumando a cada función el número que se quiere aumentar.

En VBA tenemos una función específica para realizar esto, se trata de DATE.ADD con una sintaxis muy sencilla y que indico a continuación:

DateAdd(“Intervalo de tiempo”, Número a sumar, “fecha”).

Estas son las expresiones que podemos especificar en el campo “Intervalo”:

yyyy Año
q Trimestre
m Mes
y Día del año
d Día
w Día de la semana
ww Semana
h Hora
n Minuto
s Segundo

Sin embargo, esto solo funciona para un campo cada vez que utilizamos la función, es decir, no podemos añadir en la misma función años, meses y días.

Pero en VBA tenemos una solución muy sencilla, veamos el ejemplo:

AÑADIR AÑOS, MESES Y DIAS A UNA FECHA EN VBA

Para poder obtener el resultado que esperamos, utilizaremos la siguiente rutina:

Sub AÑADIR_FECHA()
'Declaramos variables
Dim i As Long, fin As Long
Dim años As Date, meses As Date, dias As Date
With Sheets("Hoja1")
'Borramos información de la columna E
fin = Application.CountA(.Range("A:A"))
If fin > 1 Then .Range("E2:E" & fin).ClearContents
'añadimos años, luego meses y finalmente días
For i = 2 To fin
años = DateAdd("YYYY", .Cells(i, 2), .Cells(i, 1))
meses = DateAdd("M", .Cells(i, 3), años)
dias = DateAdd("D", .Cells(i, 4), meses)
'Mostramos la nueva fecha
.Cells(i, 5) = dias
Next i
End With
End Sub

Y así obtenemos esto:

AÑADIR AÑOS, MESES Y DIAS A UNA FECHA EN VBA_1

Como podéis observar, a través de un for vamos añadiendo, primero los años, luego los meses y finalmente los días.

Y eso es todo por hoy, espero que os resulte de interés a la hora de realizar cálculos actuariales, financieros o de otro tipo : )

Descarga el archivo de ejemplo pulsando en: AÑADIR AÑOS, MESES Y DÍAS A UNA FECHA EN VBA

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Anuncios