¿Cómo puedo crear una macro que guarde un archivo automáticamente?

Necesito una macro que guarde un archivo automáticamente sin preguntar y que por nombre tome los siguientes valores "AC3" & "AK3" & "-" & "AL3" & "- " & "D10" & "(" & "D4" & ")" de la "Hoja1". El archivo lo debe guardar en la ruta D:\Respaldo\1.- Mis Documentos\.

1 respuesta

Respuesta
1

[Hola 

Usa esto, se ejecutará cuando cierras el libro.

Pon la macro en el evento beforeclose de tu libro.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'
'[Por Adriel
'
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'
Set h = Sheets("Hoja1")
nom = h.Range("AC3") & h.Range("AK3") & "-" & h.Range("AL3") & "- " & h.Range("D10") & "(" & h.Range("D4") & ")"
Ruta = "D:\Respaldo\1.- Mis Documentos\"
copia = Ruta & "\" & nom & ".xls"
ActiveWorkbook.Save
ActiveWorkbook.SaveAs copia
Application.ScreenUpdating = False
End Sub

Esta macro se puede ejecutar con un botón?, es decir, que no sea necesario cerrar el archivo.

Muchas gracias.

Claro, a esto lo asocias a un botón

Sub guardar_respaldo()
'
'[Por Adriel
'
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'
Set h = Sheets("Hoja1")
nom = h.Range("AC3") & h.Range("AK3") & "-" & h.Range("AL3") & "- " & h.Range("D10") & "(" & h.Range("D4") & ")"
Ruta = "D:\Respaldo\1.- Mis Documentos\"
copia = Ruta & "\" & nom & ".xls"
ActiveWorkbook.Save
ActiveWorkbook.SaveAs copia
Application.ScreenUpdating = False
End Sub

recuerda cambiar la valoración como excelente saludos!

Para hacer mis pruebas

Puse esta línea así

copia = Ruta & "\" & nom & ".xls"

cambia así

copia = Ruta & nom & ".xls"

Muchas gracias Adriel.

Tuve que eliminar la Ruta en el nombre porque me tiraba error al guardarlo, ya que no permite caracteres ":"

Saludos y gracias nuevamente.

Ah, si tienes razón y también ve la extensión a usar xls o xlsx saludos!

Adriel, buenos días.

¿Existe la posibilidad que esta macro guarde el archivo en un distinto cada vez? Ya que la macro hasta ahora guarda el archivo y le cambia el nombre, no lo guarda como otro archivo con el nombre. No se si me entiendes.

No entendí

Con la macro de ahora este documento al guardar se sobreescribe, no se guarda como otro archivo con otro nombre, sino que simplemente se cambia de nombre. Necesito que cada vez que se ejecute la macro este archivo sea guardado como otro archivo con otro nombre.

Como tiene un mismo nombre lo reemplaza agrega un consecutivo al final del nombre

& Formato(now, "hh:mm:ss")

Esta línea sería así

nom = h.Range("AC3") & h.Range("AK3") & "-" & h.Range("AL3") & "- " & h.Range("D10") & "(" & h.Range("D4") & ")" & Formato(now, "hh_mm_ss")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas