Cambiar nombre de archivo excel automáticamente

Quisiera saber si es posible que el nombre de un archivo excel se cambie automáticamente a la fecha actual al guardar los cambios.
Por ejemplo, en el día de hoy estoy trabajando con mi archivo excel que se llama "Incidencias 24-02-11". Al terminar cierro, guardando los cambios, y el archivo, automáticamente, pasa a llamarse "Incidencias 25-02-11". Pasado mañana, cuando trabaje con él de nuevo y guarde, pasará a llamarse "Incidencias 27-02-11"
¿Es esto posible?
Respuesta
1
Se puede hacer lo que necesitas mediante una macro.
Abri el visual basic (alt + f11) y elegis, dentro del libro, el ambito "thisworkbook"
Te va a aparecer esto:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

End Sub

En el medio escribí esto:
ActiveWorkbook.SaveAs "C:\Documents and Settings\javimon7\Escritorio\Incidencias" & Day(Now) & "_" & Month(Now) & "_" & Year(Now)
(Lo que esta en negrita subrayado es la ruta, elegí la que quieras)
Te debería quedar así
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 

ActiveWorkbook.SaveAs "C:\Documents and Settings\javimon7\Escritorio\Incidencias" & Day(Now) & "_" & Month(Now) & "_" & Year(Now)
End Sub
Cada vez que pongas guardar, en realidad va a hacer un guardarcomo en donde agrega la fecha del día
Sdos
Bien, creo que es lo que busco, pero me surge una duda de tu comentario al final "Cada vez que pongas guardar, en realidad va a hacer un guardarcomo en donde agrega la fecha del día". Entonces, realmente, el archivo no se sobreescribe ¿no?. Dicho de otra forma, yo lo que pretendo es que el archivo inicial cambie de nombre automáticamente, no que se cree otro archivo igual con distinto nombre. Por ejemplo, de la forma que yo quiero hacer, si repito el proceso una vez al día durante una semana, al final de la semana tendré un solo archivo. Por lo que entiendo de tu comentario al final, de la forma que tu me propones, si repito el proceso una vez al día durante una semana, al final de la semana tendré 7 archivos, cada uno de ellos con un nombre distinto. Esto último no es lo que estoy buscando.
Además, necesito ayuda adicional porque no controlo tanto del Excel y me pierdo. Nunca he usado Visual Basic.
Llegué hasta "Abrí el visual basic (alt + f11) y elegís, dentro del libro, el ámbito "thisworkbook", pero... ¿donde debe aparecer lo demás? ¿Debajo, en la ventana de propiedades de ThisWorkbook? Si es así, o no está o no lo encuentro.
Posiblemente necesite una explicación más detallada, aunque el proceso en sí no lo veo complicado. Está bastante claro excepto por ese detalle de que no encuentro "Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)"
1) Tienes razón respecto a que cada vez vas a tener un archivo diferente.
2) Pasos desde visual:
a) Abrís el visual (alt + f11)
b) Elegis el ambito "thisworkbook" haciendo doble click sobre el .Tenes que hacerlo sobre el libro que tenes los datos. Para ello vas a ver tener que tener abierto una ventana llamada "explorador de proyecto". Se puede abrir desde el menu "ver" y luego "explorador de proyectos" o con Ctrol + r. En esta ventana van a aparecer un listado de los libros abierto de esta forma: [+] VBAProject (Libro1)
Presionando sobre el [+] del libro en donde tienes los datos, se abre y aparecen las hojas del libro y el ámbito "thisworkbook" (hacer doble click acá)
c) En la ventana "codigo" (si no esta abierta con f7 se puede hacer o por el menu ver), tiene que decir sobre el margen superior (general) y (declaraciones). Abrí el desplegable (general) y cambialo por "workbook". Hecho esto "declaraciones" va a cambiar por "Open" y en la ventana código va a escribir automáticamente:
Private Sub Workbook_Open()
End Sub
Anda al desplegable "Open" y cambialo por "beforesave"
y va a quedar la pantalla asi:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
End Sub
Private Sub Workbook_Open()
End Sub
En medio de Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) y End Sub copia lo que estaba en la primer ayuda.
Private Sub Workbook_Open() y su respectivo End sub se puede borrar.
Me costado un poco pillarlo, pero si se busca está claro. Muchas gracias, creo que aunque no es exactamente lo que buscaba, me servirá.
Muy agradecido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas