Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como Crear BACKUP del FICHERO en USO en Formato COMPRIMIDO ZIP con Excel VBA #598

Backup Excel en archivo zip comprimido

BACKUP EN EXCEL COMPRIMIDO EN UN ZIP CON MACRO VBA

En este ejemplo veremos como crear una macro para realizar backup o copias de seguridad del archivo de Excel que estemos usando, pero en formato comprimido o ZIP, es decir la macro creará un archivo ZIP con el archivo de Excel actual comprimiéndolo.

Maneja Excel como los mejores deberías hacer 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, te lo recomiendo no te arrepentirás.

  
 
 
 

Puedes ver la macro en acción y una explicación más detallada de su codificación y funcionamiento, descarga el archivo y mira el video para una más fácil comprensión de la macro; suscribe a nuestro canal de You Tube, mira el playlist con  vídeos relacionados donde podrás ver la macros relacionadas en acción con una explicación en forma visual que ayudará a entender el ejemplo en forma más fácil.

COPIA DE RESGUARDO DE FICHERO DE EXCEL EN UN ARCHIVO COMPRIMIDO ZIP

En el ejemplo al presionar el botón que se encuentra en la hoja de Excel, la macro de Excel crea una copia de seguridad o backup del archivo de Excel en uso actualmente, pero dicha copia de resguardo se crea en formato comprimido ZIP, con ello se disminuye mucho el peso de los archivos de los cuales se hace el backup.

El archivo ZIP de se crea en una carpeta denominada BACKUP que la macro crea en caso de no existir en el escritorio de Windows.

Explicación de la MACRO para genera un BACKUP en EXCEL en formato comprimido ZIP

Como se dijo anteriormente la macro crea la carpeta o directorio donde estará la copia de seguridad del archivo de Excel, para ello detecta la dirección donde se encuentra el escritorio, agregando la carpeta BACKUP en caso que no estuviere creada, dicha dirección se guarda en la variable «Direc»; con el siguiente código:

Direc = CreateObject(«wscript.shell»).specialfolders(«desktop») & «\BACKUP\»

Si la carpeta no está la crea con el siguiente código:

If Dir(Direc, vbDirectory) = «» Then MkDir Direc ‘Verifica si existe la carpeta o directorio, si no existe lo crea

Posteriormente se determina el nombre del archivo que estamos usando y sobre el cual se hará el backup de seguridad, para ello extraemos del nombre del archivo la extensión para poder formar el nombre del archivo de resguardo comprimido en fichero ZIP, se usa el siguiente ódigo:

nom = ActiveWorkbook.Name
lar = InStr(nom, «.»)
nom = Left(nom, lar – 1)

Luego se formatea la fecha actual y hora, ya que el nombre del archivo llevará la fecha y hora en la que se realizó el backup, así:

nomfecha = Format(Date, «ddmmyyyy»)
nomhora = Format(Time, «hhmmss»)

Luego se determinar el nombre del archivo de Excel que se comprimirá y el nombre del archivo ZIP comprimido, que contendrá el fichero de Excel, asi:

nomarchi1 = Direc & «BACKUP» & » » & nom & » » & nomfecha & » » & nomhora & «.xlsm»
nomarZip = Direc & «BACKUP» & » » & nom & » » & nomfecha & » » & nomhora & «.zip»

Posteriormente creamos el nuevo libro nombrándolo como se estableció en el párrafo anterior, con el siguiente código, tener en cuenta que se crea una copia de seguridad y se sigue trabajando en el mismo archivo, se usa el código:

ThisWorkbook.SaveCopyAs nomarchi1 ‘Crea backup y se sigue trabajando en libro original

Luego vienen los pasos para crear el archivo ZIP que son:

Set SApp = CreateObject(«Shell.Application»)

Open nomarZip For Output As #1
Print #1, Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String(18, 0)
Close #1

Por último guardamos los archivos de Excel a realizar el backpup en el archivo comprimido, de la siguiente forma:

SApp.Namespace(nomarZip).CopyHere nomarchi1

Esperamos unos segundos para que termine de comprimir y luego sigue la macro con la codificación:
Application.Wait (Now + TimeValue(«00:00:02»))

Se procede a borrrar el archivo de Excel creado y que luego guardamos como archivo comprimido:

Kill nomarchi1

Por último sale un mensaje, diciendo que el backup se creó con éxito:

MsgBox («El Backup ZIP se creo con éxito»), vbInformation, «AVISO»

Código VBA para CREAR COPIADE RESGUARDO DE ARCHIVO EXCEL  EN FORMA COMPRIMIDA

Código que se coloca en un módulo de VBA

Sub Backup()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim SApp As Object

Direc = CreateObject(«wscript.shell»).specialfolders(«desktop») & «\BACKUP\»

If Dir(Direc, vbDirectory) = «» Then MkDir Direc ‘Verifica si existe la carpeta o directorio, si no existe lo crea

nom = ActiveWorkbook.Name
lar = InStr(nom, «.»)
nom = Left(nom, lar – 1)
nomfecha = Format(Date, «ddmmyyyy»)
nomhora = Format(Time, «hhmmss»)
nomarchi1 = Direc & «BACKUP» & » » & nom & » » & nomfecha & » » & nomhora & «.xlsm»
nomarZip = Direc & «BACKUP» & » » & nom & » » & nomfecha & » » & nomhora & «.zip»

ThisWorkbook.SaveCopyAs nomarchi1 ‘Crea backup y se sigue trabajando en libro original

Set SApp = CreateObject(«Shell.Application»)

Open nomarZip For Output As #1
Print #1, Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String(18, 0)
Close #1

SApp.Namespace(nomarZip).CopyHere nomarchi1
Application.Wait (Now + TimeValue(«00:00:02»))

Kill nomarchi1

MsgBox («El Backup ZIP se creo con éxito»), vbInformation, «AVISO»
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub



Descarga el Ejemplo COMO HACER UN BACKUP EN FORMATO ZIP O COMPRIMIDO

Descarga el fichero usado como ejemplo en este post y en el vídeo explicativo, el mismo es totalmente gratuito y libre su uso, solicito aportar para sostener esta web, si está dentro de tus posibilidades, desde ya muchas gracias.

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.

👉⏩ Apoya mi trabajo https://www.patreon.com/programarexcel

👉⏩ Sígueme en DTube: https://d.tube/#!/c/programarexcel01

👉⏩ Sígueme en Odysee: https://odysee.com/@programarexcel:3

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

Donate:
👉⏩ Cuenta Paypal: https://paypal.me/programarexcel

👉⏩ Cuenta Bitcoin: 1KBGGb8fyDzyR3X1Rie6m7VguzaAfngNbd

👉⏩ Cuenta Ether: 0x41Bbd24556914C83a31217eBb3BC49789b66e407

👉⏩ Cuenta Skrill: marcrodos@yahoo.es

👉⏩ Cuenta Neteller: marcrodos@yahoo.es