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 Day
toma 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 Month
devuelve 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 Year
devuelve 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 Format
para 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 DateAdd
permite 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 Date
devuelve 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
Responses