6 febrero, 2025

CREAR UNA FECHA CON DATESERIAL EN VBA

Hola a todos:

En muchas ocasiones cuando estamos programando en VBA necesitamos crear o componer fechas a partir de columnas independientes en las que se guardan años, meses y días, por ejemplo:

CREAR UNA FECHA CON DATESERIAL EN VBA

Esto lo podemos hacer de dos formas, o bien componemos la fecha y aplicamos formato fecha con la función CDate o bien lo hacemos con DateSerial:

En este código ejecutaremos las dos formas:

Option Explicit
Sub CREAR_FECHA()
'Declaramos variables
Dim Fin As Long, i As Long
With Sheets("Hoja1")
Fin = Application.CountA(.Range("A:A"))
'con un for vamos realizando los cálculos
For i = 2 To Fin
'Componemos fecha y formateamos con Cdate
.Cells(i, 4) = CDate(.Cells(i, 1) & "/" & .Cells(i, 2) & "/" & .Cells(i, 3))
'Componemos fecha con dateserial
.Cells(i, 5) = DateSerial(.Cells(i, 1), .Cells(i, 2), .Cells(i, 3))
Next i
End With
End Sub

Aunque en la práctica el resultado será el mismo, siempre es interesante realizarlo con DateSerial, dado que nos permitirá posteriormente realizar modificaciones en las fechas, como añadir o restar días, meses o años, además de ser más eficiente que la primera.

La función DateSerial, compone la fecha indicando (Año, Mes, Día).

El resultado es el mismo:

CREAR UNA FECHA CON DATESERIAL EN VBA_1

Y eso es todo, espero que os haya resultado útil.

Descarga el archivo de ejemplo pulsando en: CREAR UNA FECHA CON DATESERIAL 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

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies