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:
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:
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.
¡¡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