Tabla de contenido
Aplicación de Macro VBA es el método más eficaz, rápido y seguro para ejecutar cualquier operación en Excel. En este artículo, le mostraremos cómo dar formato a la fecha en Excel utilizando VBA .
Descargar el cuaderno de ejercicios
Puede descargar gratuitamente el libro de prácticas en Excel desde aquí.
Formatear fecha con VBA.xlsm
4 métodos para dar formato a la fecha en Excel con VBA
Fíjese en el siguiente ejemplo. Hemos almacenado las mismas fechas en ambos Columna B y C para que cuando formateemos la fecha en Columna C sabrá por el Columna B en qué formato estaba la fecha anterior.
1. VBA para dar formato a la fecha de un tipo a otro en Excel
Primero vamos a saber cómo formatear la fecha de Célula C5 en nuestro conjunto de datos con VBA a " Martes-enero-2022 ".
Pasos:
- Pulse Alt + F11 en su teclado o vaya a la pestaña Desarrollador -> Visual Basic para abrir Editor de Visual Basic .
- En la ventana de código emergente, en la barra de menús, haga clic en Insertar -> Módulo .
- Copie el siguiente código y péguelo en la ventana de código.
Sub DateFormat() Range("C5").NumberFormat = "dddd-mmmm-yyyy" 'Esto formateará la fecha a "Martes-Enero-2022" End Sub
Su código ya está listo para ejecutarse.
- Pulse F5 en el teclado o, en la barra de menús, seleccione Run -> Run Sub/UserForm También puede hacer clic en el botón pequeño icono Play en la barra del submenú para ejecutar la macro.
Este código formateará la fecha " 11-01-22 " a " Martes-enero-2022 ".
También puede convertir este formato de fecha en muchos otros formatos. Sólo tiene que seguir el código siguiente para transformar la fecha en el formato que desee.
Sub FormatDate() 'La fecha original es "11-01-22" Range("C5").NumberFormat = "dd-mm-yyy" 'Esto formateará la fecha a "11-01-2022" Range("C6").NumberFormat = "ddd-mm-yyy" 'Esto formateará la fecha a "Tue-11-2022" Range("C7").NumberFormat = "dddd-mm-yyy" 'Esto formateará la fecha a "Tuesday-11-2022" Range("C8").NumberFormat = "dd-mmm-yyy" 'Esto formateará la fecha a"11-Ene-2022" Range("C9").NumberFormat = "dd-mmmm-yyy" 'Esto formateará la fecha a "11-Ene-2022" Range("C10").NumberFormat = "dd-mm-yy" 'Esto formateará la fecha a "11-01-22" Range("C11").NumberFormat = "ddd mmm yyyy" 'Esto formateará la fecha a "Tue Jan 2022" Range("C12").NumberFormat = "dddd mmmm yyyy" 'Esto formateará la fecha a "Tuesday January 2022" End Sub
Visión general
Más información: Funciones Ahora y Formato en Excel VBA
2. Incrustar VBA para convertir la fecha con la función FORMAT
Excel tiene su propio número de serie con respecto a las fechas individuales. Si desea conocer el número de serie de cualquier
fecha concreta, tiene que solicitar la función DATEVALUE .
Supongamos que desea conocer el número de serie de la fecha " 11 de enero de 2022 ", entonces tienes que escribir la fórmula como,
=DATEVALUE("11 de enero de 2022")
Excel te dará el número de serie 44572 de esta fecha.
Ahora transformaremos este número en su formato de fecha correspondiente.
Pasos:
- De la misma manera que antes, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
- En la ventana de código, copia el siguiente código y pégalo.
Sub Format_Date() Dim iDate As Variant iDate = 44572 'Número de serie Excel de la fecha "11 Enero 2022" MsgBox Format(iDate, "DD-MMMM-AAAA") End Sub
Su código ya está listo para ejecutarse.
Obtendrá la fecha " 11 de enero de 2022 " en el cuadro de mensaje.
Leer más: Cómo utilizar la función DateValue de VBA en Excel
Lecturas similares
- Cómo insertar la fecha actual en Excel (3 maneras)
- Variable Fecha en Códigos VBA (7 Usos de Macros con Ejemplos)
- Obtener la Fecha Actual en VBA (3 Maneras)
- Cómo utilizar el método abreviado de fecha de Excel
3. VBA para transformar la fecha basada en una parte específica en Excel
Supongamos que desea dar formato a una parte específica de la fecha, por ejemplo, sólo el día / mes / año, a continuación, escriba el código como,
Sub Date_Format() Range("C5").NumberFormat = "mmmm" 'Esto formateará la fecha a "Enero" End Sub
Su código ya está listo para ejecutarse.
El " mmmm "en este código significa la forma larga del nombre del mes.
Como la fecha es " 11 de enero de 2022 "por lo que este fragmento de código devolverá " Enero ".
Puede implementar este código para formatear y extraer cualquier parte específica que desee de la fecha.
Sub FormatDateValue() 'La fecha original es "11-01-22" Range("C5").NumberFormat = "dd" 'Esto formateará la fecha a "11" Range("C6").NumberFormat = "ddd" 'Esto formateará la fecha a "Tue" Range("C7").NumberFormat = "dddd" 'Esto formateará la fecha a "Tuesday" Range("C8").NumberFormat = "m" 'Esto formateará la fecha a "1" Range("C9").NumberFormat = "mm" 'Esto formatearáformateará la fecha a "01" Range("C10").NumberFormat = "mmm" 'Esto formateará la fecha a "Ene" Range("C11").NumberFormat = "yy" 'Esto formateará la fecha a "22" Range("C12").NumberFormat = "yyyy" 'Esto formateará la fecha a "2022" Range("C13").NumberFormat = "dd-mm" 'Esto formateará la fecha a "11-01" Range("C14").NumberFormat = "mm-yyy" 'Esto formateará la fecha aa "01-2022" Range("C15").NumberFormat = "mmm-yyy" 'Esto formateará la fecha a "Ene-2022" Range("C16").NumberFormat = "dd-yy" 'Esto formateará la fecha a "11-22" Range("C17").NumberFormat = "ddd yyyy" 'Esto formateará la fecha a "Mar 2022" Range("C18").NumberFormat = "dddd-yyyy" 'Esto formateará la fecha a "Martes-2022" Range("C19").NumberFormat = "dd-mmm"Esto formateará la fecha a "11-Ene" Range("C20").NumberFormat = "dddd-mmmm" Esto formateará la fecha a "Martes-Enero" End Sub
Visión general
4. Insertar VBA para dar formato a la fecha en una hoja de cálculo específica en Excel
Si desea dar formato a una fecha basándose en una hoja de cálculo específica, primero debe establecer el nombre de la hoja de cálculo en el código y, a continuación, dar formato a la fecha según el tipo que necesite.
- Abrir Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
- En la ventana de código, copia el siguiente código y pégalo.
Sub Format_Date() Dim iSheet As Worksheet Set iSheet = ThisWorkbook.Sheets("Example") 'Establece la hoja de trabajo llamada "Example" iSheet.Range("C5").NumberFormat = "dddd, mmmmdd, aaaa" End Sub
Su código ya está listo para ejecutarse.
Fíjate en la 3ª línea del código, donde primero ponemos el " Ejemplo " y a continuación formatee la fecha de esa determinada hoja de Excel.
Conclusión
En este artículo se muestra cómo dar formato a la fecha en Excel con VBA Espero que este artículo le haya sido muy útil. No dude en preguntar si tiene alguna duda sobre el tema.