Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como guardar un archivo con una fecha como nombre


.

En el presente post se mostrará como guardar un archivo de Excel en cuyo nombre está incluida una fecha, en muchas ocasiones al guardar archivos o ficheros se requiere que el nombre incluya la fecha de creación o cualquier otra fecha que identifique el archivo, pero nos encontramos con el problema que Windows no admite la barra «/» ni ningún caracter reservado, en el nombre del archivo, para saltar este problema esta macro tiene en cuenta estos aspectos.

Si estás leyendo este post seguramente estás intentando guardar archivos, quizás sea de utilidad los siguientes macros de Excel que trabajan con archivos:

Macro que crea y borra archivos
Macro que abre explorador de archivos de Windows
Macro que crea un listado de archivos y subcarpetas de un directorio
Macro para buscar archivo en un directorio si no existe abre explorador de archivos
Macro que determina el nombre de un archivo
Macro para enviar mail mediante outlook adjuntando archivo en pdf que previamente creo
Macro de Excel que comprime archivos con extensión Zip
Macro para copiar carpetas y archivos
Macro conecta Excel con Word crea archivo de Word e inserta datos
Macro que autoelimina archivo previo autocopia el fichero
Macro copia hoja actual y guarda como con explorador de archivos
Macro hace copia de la hoja activa y la guarda como

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  
El ejemplo de macro denominada como guardar un archivo con una fecha como nombre, puede ser descargado desde el link del final del post.

Windows para establecer el nombre del archivo a guardar se reserva ciertos caracteres especiales que no pueden ser usados; que si no se tiene en cuenta en una macro provocarán un error, o si se tiene controlado los error mediante macro, lo que hará es saltar la línea no procediendo a crear el archivo que establece el código de VBA, el tema es que si no lo tenemos presente costará encontrar el error o descifrar, porque el código no crearel archivo, llevando a repasar una y otra vez el código y a pesar que es correcto no genera el archivo.

Los siguientes caracteres no están permitidos para nombrar archivos:

Tilde ( ~ )
Signo de número o numeral ( # )
Porcentaje ( % )
Y Comercial ( & )
Asterisco ( * )
Llaves ( {} )
Barra diagonal ( )
Dos puntos ( : )
Signos mayor menor ( < > )
Barra diagonal ( / ) Esta barra se usa normalmente en las fechas y es la que nos referimos en este post
Signo más ( + )
Barra vertical ( | )
Comillas ( » )

Como se expuso la barra ( / ) no está permitida para nombrar archivos ni carpetas, es por ello que si requerimos incluir una fecha en el nombre del archivo previamente debemos borrar dicha barra o reemplazarla por otro símbolo, normalmente se reemplaza por guión medio (-), guión bajo ( _ ) o simplemente por nada eliminando la barra, interpretando que los dos primeros dígitos son para el día los dos siguientes para el mes y los cuatro restantes para el año, o depende de donde estemos los dos primeros para el mes, los dos restantes para el día y los últimos cuatro para el año.

Para ello, previo a guardar el archivo se utiliza un función para reemplazar caracteres como la siguiente:

nom = «Fecha modificacion » & Cells(2, «C»)
nom = Replace(nom, «/», «»)

 
En este código se supone que en la celda C2 hay una fecha que luego la función Replace, reemplaza la barra ( / ) que está incluida en la fecha por un caracter vacío o nada («»), una vez hecho esto si se puede guardar el archivo y no dará error.

El archivo de Excel se guarda con este código.

ActiveWorkbook.SaveAs Filename:=myfile, FileFormat:=xlOpenXMLWorkbook

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo Las mejores macros de Excel para descargar en forma gratuitabuscar en listbox mientras escribes en textbox, como crear una factura o sale invoice y grabar guardar PDF XLS y enviar por mail, como copiar o exportar tabls de Excel a Word y muchos ejemplos más.


if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}

Código que se inserta en un módulo
Sub GuardarArchivoFecha()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
nom = «Fecha modificacion » & Cells(2, «C»)
nom = Replace(nom, «/», «»)
myfile = ActiveWorkbook.Path & «» & nom
Sheets(«Hoja1»).Copy
ActiveWorkbook.SaveAs Filename:=myfile, FileFormat:=xlOpenXMLWorkbook
ActiveWorkbook.Close False
MsgBox («El archivo se guardo en » & myfile & » con el nombre » & nom), vbInformation, «AVISO»
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends