Funciones para Fechas en VBA Excel

Las funciones de fecha en VBA para Excel te permiten manipular y trabajar con fechas y horas de forma precisa y eficiente dentro de tus macros.

¿Para Qué Sirve?:

Trabajar con fechas en VBA es útil para:

  • Realizar cálculos y análisis basados ​​en fechas.
  • Generar informes dinámicos que incluyen fechas actuales y fechas calculadas.
  • Crear herramientas de programación de tareas y eventos que dependen del tiempo.

Operaciones Comunes con Fechas en VBA

1. Extraer el Día de una Fecha

Función:Day

La función Daytoma una fecha como argumento y devuelve el día del mes correspondiente a esa fecha.

Sub ExtraerDia()
    Dim fecha As Date
    fecha = #6/5/2024#  ' Fecha en formato mm/dd/yyyy
    MsgBox "El día es " & Day(fecha)
End Sub

Ejercicio:

Escribe una macro que, dada una lista de fechas en una columna de Excel, extraiga y muestre el día de cada fecha.

Sub MostrarDiaDeFechas()
    Dim celda As Range
    For Each celda In Range("A1:A10")
        MsgBox "El día de la fecha " & celda.Value & " es " & Day(celda.Value)
    Next celda
End Sub

2. Extraer el mes de una fecha

Función:Month

La función Monthdevuelve el mes de una fecha como un número entero del 1 al 12.

Sub ExtraerMes()
    Dim fecha As Date
    fecha = #6/5/2024#
    MsgBox "El mes es " & Month(fecha)
End Sub

Ejercicio:

Crea una macro que lea una fecha y muestre el mes correspondiente.

Sub MostrarMesDeFecha()
    Dim fecha As Date
    fecha = #12/25/2023#
    MsgBox "El mes de la fecha es " & Month(fecha)
End Sub

3. Extraer el Año de una Fecha

Función:Year

La función Yeardevuelve el año de una fecha como un número entero.

Sub ExtraerAno()
Dim fecha As Date
fecha = #6/5/2024#
MsgBox "El año es " & Year(fecha)
End Sub

Ejercicio:

Escribe una macro que tome una fecha y devuelva el año correspondiente.

Sub MostrarAnoDeFecha()
    Dim fecha As Date
    fecha = #7/4/2021#
    MsgBox "El año de la fecha es " & Year(fecha)
End Sub

4. Mostrar el Nombre del Mes

Función:Format

Utiliza la función Formatpara mostrar el nombre completo del mes.

Sub NombreMes()
Dim fecha As Date
fecha = #6/5/2024#
MsgBox "El nombre del mes es " & Format(fecha, "mmmm")
End Sub

Ejercicio:

Crea una macro que muestre el nombre del mes de una fecha introducida por el usuario.

Sub MostrarNombreDelMes()
    Dim fecha As Date
    fecha = InputBox("Introduce una fecha (mm/dd/yyyy):")
    MsgBox "El nombre del mes es " & Format(fecha, "mmmm")
End Sub

5. Sumar o Restar Días a una Fecha

Función:DateAdd

La función DateAddpermite sumar o reiniciar intervalos de tiempo a una fecha. Para días, se usa el argumento "d".

Sub SumarRestarDias()
    Dim fecha As Date
    fecha = #6/5/2024#
    Dim nuevaFecha As Date
    nuevaFecha = DateAdd("d", 10, fecha)  ' Sumar 10 días
    MsgBox "La nueva fecha es " & nuevaFecha
End Sub

Ejercicio:

Escribe una macro que reste 7 días a una fecha dada.

Sub RestarDiasAFecha()
    Dim fecha As Date
    fecha = #12/25/2023#
    MsgBox "7 días antes es " & DateAdd("d", -7, fecha)
End Sub

6. Sumar o Restar Meses a una Fecha

Función:DateAdd

Para sumar o descansar meses, se usa el argumento "m".

Sub SumarRestarMeses()
    Dim fecha As Date
    fecha = #6/5/2024#
    Dim nuevaFecha As Date
    nuevaFecha = DateAdd("m", 3, fecha)  ' Sumar 3 meses
    MsgBox "La nueva fecha es " & nuevaFecha
End Sub

Ejercicio:

Escribe una macro que reste 2 meses a una fecha introducida por el usuario.

Sub RestarMesesAFecha()
    Dim fecha As Date
    fecha = InputBox("Introduce una fecha (mm/dd/yyyy):")
    MsgBox "2 meses antes es " & DateAdd("m", -2, fecha)
End Sub

7. Sumar o Restar Años a una Fecha

Función:DateAdd

Para sumar o restablecer años, se usa el argumento "yyyy".

Sub SumarRestarAnos()
    Dim fecha As Date
    fecha = #6/5/2024#
    Dim nuevaFecha As Date
    nuevaFecha = DateAdd("yyyy", 1, fecha)  ' Sumar 1 año
    MsgBox "La nueva fecha es " & nuevaFecha
End Sub

Ejercicio:

Crea una macro que suma 5 años a la fecha actual.

Sub SumarAnosAFechaActual()
    Dim fechaActual As Date
    fechaActual = Date
    MsgBox "En 5 años será " & DateAdd("yyyy", 5, fechaActual)
End Sub

8. Obtener la Fecha Actual con VBA

Función:Date

La función Datedevuelve la fecha actual del sistema.

Sub FechaActual()
    Dim fechaHoy As Date
    fechaHoy = Date
    MsgBox "La fecha actual es " & fechaHoy
End Sub

Ejercicio:

Escribe una macro que muestre la fecha actual y el día de la semana.

Sub MostrarFechaYDiaActual()
    Dim fechaHoy As Date
    fechaHoy = Date
    MsgBox "Hoy es " & Format(fechaHoy, "dddd, dd mmmm yyyy")
End Sub

Crea tus propias funciones

Related Articles

Responses

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *