Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como Crear BACKUP AGREGARLO al MISMO ZIP EXISTENTE con Excel VBA #599

Backup Excel Zip Comprimido Aumulativo

MACRO de EXCEL PARA CREAR UNA COPIA DE SEGURIDAD EN FICHERO ZIP EXISTENTE ACUMULANDO ARCHIVOS

En este post se muestra una macro de Excel que permite crear un backup de seguridad, acumulando dicha copia a un archivo ZIP ya existente, en otras palabras se creará una copia de seguridad comprimida, pero no creará un archivo zip, sino que tomará uno existente y agregará la copia de seguridad dentro del archivo comprimido.

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 de EXCEL 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.

Backup de Seguridad Agregando Copias de Seguridad a un Fichero ZIP Existente

La macro que tiene el fichero de ejemplo permite crear un backup con la diferencia es que es comprimido y además se comprime en un archivo ZIP existente, no crea un archivo nuevo.

Al abrir el fichero de Excel se observará un botón, si se presiona el botón, ejecutará una macro que crea una copia de seguridad del propio archivo de Excel usado en ese momento, la copia de seguridad será un archivo comprimido y ese archivo comprimido se guardará en un archivo ZIP o comprimido existente.

En este ejemplo la copia de seguridad se encuentra en la carpeta BACKUP del escritorio, si dicha carpeta o directorio no existe la macro lo crea, cada uno tiene una dirección de Escritorio de Windows distinta, ya que dicha dirección está formada por el nombre del usuario de Windows, pero eso no es un problema ya que la macro detecta automáticamente esa dirección y crea la carpeta «BACKUP»

La ventaja que tiene realizar Backup en archivos comprimidos ZIP, es que disminuye drásticamente el peso de los archivos o ficheros y cuando tenemos muchos archivos de backup y el espacio en disco es crítico, es una buena opción.

Explicación de la Macro de Excel QUE CREA UNA COPIA DE SEGURIDAD

UN FICHERO ZIP COMPRIMIDO en FORMA ACUMULATIVA

La macro carga en la variable «Direc» la dirección de la carpeta «BACKUP» que está en el escritorio de Windows de cada usuario, así:

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

Si la carpeta no existe la crea de la siguiente manera.

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

Se determina el nombre del archivo de Excel que estamos usando actualmente, a los fines de extraer el nombre sin su extensión en este caso xlsm, así:

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

Luego se formatea la fecha actual y la hora que formarán parte del nombre del fichero de seguridad a crear.
nomfecha = Format(Date, «ddmmyyyy»)
nomhora = Format(Time, «hhmmss»)

Es establece el nombre del archivo de seguridad que se creará concatenando el nombre del archivo, día y hora, agregando la extensión «xlsm», con el siguiente código:

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

Posteriormente se establece cual es el nombre del archivo ZIP ya existente donde se acumularán las copias de seguridad, en este caso la carpeta de la copia de seguridad se había determinado al principio y guardado en la variable «Direc», el código a usar es:

nomarZip = Direc & «BACKUP» & » » & nom & «.zip»

Luego se hace una copia de seguridad o backup del archivo en el cual se está trabajando, con el siguiente código, acá se copia el archivo actual y se sigue trabajando en el mismo, no es como el comando guardar como donde se guarda con otro nombre y es archivo creado es el Libro de Excel Activo, acá se hace una copia y se sigue trabajando en el mismo archivo, el código es el siguiente: 

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

Luego se llama a la aplicación que crea copia de seguridad o archivos comprimidos en Windows y se copia dentro del archivo comprimido el backup del libro de Excel que creamos en el paso anterior, se espera dos segundos para que haga el proceso y luego sigue la macro on el resto de procedimientos, los códigos usados son:

Set SApp = CreateObject(«Shell.Application»)

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

En el paso anterior ya se agregó la copia de seguridad creada al Archivo ZIP existente, el cual contiene la copia de seguridad creada como así también otras copias de seguridad creadas anteriormente, es decir se van acumulando las copias de seguridad en el archivo comprimido, por ende ya no es útil el archivo de seguridad creado y se elimina con el siguiente código:

Kill nomarchi1

Luego termina la macro y sale un mensaje, el código usado es:

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

Código VBA para CREAR una COPIA de SEGUIDAD EN ARCHIVO ZIP COMPRIMIDO EXISTENTE

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 & «.zip»

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

Set SApp = CreateObject(«Shell.Application»)

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 de Macro de Excel que Crea Backup en un Zip existente

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.

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

👉⏩ 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