Cómo insertar fácilmente fechas dinámicas en un documento de Word usando Excel
El artículo Cómo incluir fácilmente fechas dinámicas en un documento de Word usando Excel sugiere calcular fechas en Excel y usar combinación de correspondencia en una plantilla de Word cuando necesites calcular fechas para un documento de Microsoft Word. ¿La razón? El campo FECHA de Word no es flexible, por lo que cuando necesitas más que lo que FECHA proporciona, la ruta de Excel es una buena elección. Sin embargo, si solo necesitas sumar o restar un número específico de días, puedes utilizar una procedimiento VBA en su lugar. En este artículo, te mostraré cómo usar VBA para insertar fechas estáticas un número específico de días en el futuro o en el pasado.
Estoy usando Microsoft 365 en un sistema Windows 10 de 64 bits, pero puedes usar versiones anteriores. Para tu comodidad, puedes descargar los archivos de demostración .docm, .doc y .cls. Los procedimientos VBA no son compatibles con Microsoft Word Online.
Sobre el campo FECHA en Word
El campo FECHA de Word hace exactamente lo que podrías esperar: devuelve la fecha actual. A diferencia de Excel, que admite una serie de funciones de fecha, FECHA solo devuelve la fecha actual. Si intentas crear una expresión que use FECHA, lo más probable es que no lo consigas. Se puede hacer, pero es tan difícil que incluso los expertos no lo recomiendan.
El campo FECHA utiliza la siguiente sintaxis:
{ FECHA [ @ "formato"] [Interruptores] }
Windowsfx: La mejor distribución de Linux para usuarios de WindowsA continuación, se explica cada uno:
- @ "formato": Especifica un formato de fecha distinto al formato predeterminado. Si seleccionas un formato en el cuadro de diálogo de Campos, Word insertará un interruptor de formato correspondiente. Para usar un formato que no aparezca en la lista del cuadro de diálogo de Campos, haz clic en el botón Códigos de campo y escribe el interruptor de formato directamente en el cuadro de códigos de campo.
- l: Inserta la fecha con el último formato seleccionado en el cuadro de diálogo Fecha y hora.
- h: Especifica el uso del calendario Hijri/Lunar.
- s: Especifica el uso del calendario de la Era Saka.
Es poco probable que la mayoría de nosotros necesitemos los dos últimos, así que revisemos un ejemplo de los dos primeros. Si la fecha actual es el 14 de septiembre de 2021,
{ FECHA @ "dddd, MMMM d, yyyy" }
mostrará martes, septiembre 14, 2021.
Si trabajas con Excel o incluso con Access, es probable que el string de formato ("dddd, MMMM d, yyyy") te resulte familiar. Debido a este string, esta es una de las ocasiones en las que introducir el campo a través de la interfaz es más fácil que cualquier otro método, porque los formatos se enumerarán y solo tienes que hacer clic en uno. No tendrás que memorizar los muchos códigos de string.
Usa el campo FECHA de Word siempre que desees insertar una fecha rápida utilizando el atajo Shift + Alt + D. Al hacerlo, se insertará un campo FECHA, que se actualizará. Cuando necesites más, considera usar VBA.
Retornando los registros superiores o inferiores sin filtro ni tabla dinámica en ExcelCómo ingresar y ejecutar procedimientos VBA
Antes de continuar, necesitarás saber cómo ingresar procedimientos VBA. Si estás familiarizado con el código de VBA, puedes omitir esta sección. Aunque utilizo el término procedimiento, muchas fuentes, incluida Microsoft, utilizan el término macro e intercambianlemente con subprocedimiento.
Para ingresar los procedimientos VBA en este artículo, presiona Alt + F11 para abrir el Editor de Visual Basic. En el Explorador de proyectos a la izquierda, selecciona ThisWorkbook para poder ejecutar el procedimiento en cualquier hoja. Puedes ingresar el código manualmente en ThisWorkbook o importar el archivo .cls descargable. Los procedimientos se encuentran en los archivos descargables .docm, .doc y .cls.
Si ingresas el código manualmente, no pegues desde esta página web. En cambio, copia el código en un editor de texto y luego pega ese código en el módulo ThisWorkbook. Esto eliminará cualquier carácter web fantasma que de otra manera podría causar errores.
Si estás utilizando una versión con cinta de opciones, asegúrate de guardar el libro como un archivo habilitado para macros. Si estás trabajando en la versión de menú, puedes omitir este paso.
Para ejecutar una macro desde la interfaz, sigue los siguientes pasos:
- Haz clic en la pestaña Desarrollador.
- Haz clic en Macros en el grupo de código.
- En el cuadro de diálogo resultante, elige el procedimiento y haz clic en Ejecutar.
Consulta estas instrucciones para ingresar y ejecutar procedimientos VBA. No repetiré estas instrucciones en las siguientes secciones.
Cómo crear una ordenación personalizada en ExcelAhora echemos un vistazo a un subprocedimiento que devuelve la fecha actual.
Sobre la función DATE() de VBA
Cuando necesitas más que una simple fecha, considera utilizar un procedimiento VBA. Ten en cuenta que en VBA hay tanto una función DATE() como un tipo de dato Date; estamos revisando ambos en este momento, y la siguiente función imprime la fecha actual en la ventana Inmediato (presiona Ctrl + G para mostrar esta ventana en el Editor de Visual Basic):
Function DateTest()
‘Imprime la fecha actual.
‘Llámala siempre que necesites la fecha actual.
Dim dDate As Date
Cómo actualizar tu cuenta a iCloud+ y aprovechar sus opciones de privacidad y seguridadDateTest = Date
Debug.Print DateTest
End Function
dDate es una variable de fecha, y Date en la línea siguiente hace referencia a la fecha del sistema. Puedes leer esta última en cualquier momento utilizando Date. DateTest() no restablece la fecha del sistema, solo la lee y luego la muestra en la ventana inmediata. Intenta no confundirte con el uso inconsistente de mayúsculas o la falta de caracteres (), entre los dos. Ahora que conoces la diferencia entre hacer referencia a la fecha del sistema utilizando Date y definir una variable de fecha utilizando Date (me siento mareado solo de escribir eso), pasemos a insertar fechas futuras y pasadas en un documento de Word.
Cómo calcular fechas futuras y pasadas
Puedes calcular fechas futuras y pasadas utilizando el campo FECHA si tienes la habilidad especializada. La mayoría de nosotros no la tenemos y, ni siquiera aquellos que la tienen, tienen dificultades para obtener la expresión correcta del campo FECHA. La mayoría recurre a VBA porque es mucho más fácil y rápido para casi todas las personas en la Tierra.
Las Listados A y B son subprocedimientos simples que insertan la fecha 30 días en el futuro y en el pasado, respectivamente, en la posición del cursor. La Figura A muestra los resultados de ambos cuando la fecha actual es el 17 de septiembre de 2021 (un viernes).
3 formas rápidas y fáciles de lidiar con celdas en blanco en ExcelListado A
Sub Date30Future()
‘Inserta la fecha con formato específico 30 días
‘en el futuro de la fecha actual.
Selection.TypeText _
Text:=Format(Date + 30, “d ‘de’ mmmm ‘de’ yyyy”)
Cómo utilizar la aplicación de traducción de Apple para conversaciones en diferentes idiomasEnd Sub
Listado B
Sub Date30Past()
‘Inserta la fecha con formato específico 30 días
‘en el pasado de la fecha actual.
Selection.TypeText _
Cómo configurar Google Workspace para tus vacaciones: calendarioText:=Format(Date - 30, “d ‘de’ mmmm ‘de’ yyyy”)
End Sub
Figura A
Los listados anteriores son útiles hasta cierto punto. Puedes modificarlos al introducir un valor distinto de 30 o -30 en el código, pero aún están limitados a devolver solo dos fechas. Al agregar un InputBox(), permites al usuario especificar el número de días.
Cómo calcular un número determinado de días pasados
No confundas la palabra "pasados" en el título con "en el pasado". Con el Listado C, los usuarios pueden pasar un valor entero, ya sea positivo o negativo (futuro o pasado, respectivamente), pasando ese valor a través de un cuadro de diálogo de entrada.
Cómo instalar SuiteCRM en tu negocio para gestionar clientes y oportunidadesListado C
Sub DateInput()
‘Permite al usuario ingresar el número de días
‘para sumar o restar a la fecha actual.
Dim days As Integer
days = InputBox(“Ingresa un número positivo para sumar ” _
La Importancia de la Integración de las Redes Sociales en las Herramientas de CRM& “o un número negativo para restar.”, “Ingresa una fecha.”)
Selection.TypeText _
Text:=Format(Date + days, “d ‘de’ mmmm ‘de’ yyyy”)
End Sub
Cuando ejecutas DateInput(), VBA mostrará el cuadro de diálogo de entrada que se muestra en la Figura B. Ingresa un número entero positivo para ver una fecha en el futuro. Ingresa un número entero negativo para ver una fecha en el pasado. La Figura C muestra el resultado de ingresar 5 y -5 en el 17 de septiembre de 2021.
Figura B
Cómo cambiar el espaciado de los iconos en el escritorio de Windows 11Figura C
Más allá de lo básico
Puedes ir un poco más allá al crear un formulario de usuario que permita a los usuarios elegir una fecha futura o pasada para evitar ingresar un valor negativo cuando desees una fecha pasada. También podrías agregar opciones de formato. Ninguno de los procedimientos VBA incluye manipulación de errores, por lo que deberás considerar esas necesidades al agregar estos procedimientos a tus propios archivos.
En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Software, allí encontraras muchos artículos similares a Cómo insertar fácilmente fechas dinámicas en un documento de Word usando Excel , tenemos lo ultimo en tecnología 2023.
Artículos Relacionados