Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como Crear BACKUP de un DIRECTORIO COMPLETO en Forma Fácil con EXCEL VBA #595

Backup Directorio con Excel VBA

MACRO PARA CREAR BACKUP DE UNA CARPETA CON SUS SUBCARPETAS Y ARCHIVOS

En este ejemplo veremos una macro para crear una copia de seguridad o backup de un directorio con todas sus subdirectorios y archivos que lo conforma, la macro realiza una un resguardo de todo un directorio completo en una ruta especificada en el escritorio de Windows.

Necesitas operar Excel?, no te preocupes 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.

Ejemplo Macro que Realiza Backup de todo un Directorio Completo 

Este veremos como con un código de Excel VBA, se puede hacer un resguardo de todo un directorio o carpeta en forma completa, sobre todo en forma sencilla, presionando un botón que está en la hoja de Excel del ejemplo, ya que la macro de Excel se encargará de realizar la copia de resguardo de todas las subcarpetas y archivos que conforman el directorio.

Para ver como funciona el ejemplo se debe descargar el archivo de Excel que contiene la macro, desde el final del post, se descargará un archivo comprimido que contiene la macro y una carpeta de la cual se desea hacer un backup, que se usó en el ejemplo, se deben descomprimir y guardar juntos.

Luego cada quien debe agregar en la variable «folold», usada en el ejemplo, la carpeta o directorio del cual requiere hacer el backup, pero descargando el archivo y descomprimiendo en cualquier lugar de la PC, pero juntos la carpeta y el archivo Excel con la macro, será suficiente para ver como funciona el ejemplo. 

Recuerden que la carpeta donde se copia el resguardo, es la carpeta denominada BACKUP en el escritorio de Windows, luego ustedes pueden cambiar la dirección donde sea necesario.

La macro de Excel que realiza copia de seguridad o backup, utiliza la fecha actual y hora actual para agregarla en el nombre del directorio del cual se necesita hacer un resguardo de seguridad.

Como Funciona la Macro de VBA para Crear Copia de Resguardo de un Directorio Completo

En primer lugar, se declaran una variable que permite hacer uso árbol de directorio de Windows, la cual es la siguiente:

Dim fso As New FileSystemObject 

Se especifica donde se guardará la copia de resguardo, dirección que será cargada en la variable «Direc», en este caso la macro detectará la dirección del escritorio de Windows y le adicionará una carpeta llamada «BACKUP», el código es el siguiente:

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

La macro verifica que la carpeta exista, en caso que no exista se crea la carpeta «BACKUP»:

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

Con los siguientes códigos se determina el nombre del directorio que surgirá de una combinación del nombre establecido en la variable «nom», de la fecha actual y hora actual, se usan los siguientes códigos:

nom = «592 Crea Backup con Excel»
nomfecha = Format(Date, «ddmmyyyy»)
nomhora = Format(Time, «hhmmss»)
nomdirect = Direc & «BACKUP» & » » & nom & » » & nomfecha & » » & nomhora

Con el siguiente código se carga en la variable «folold» el nombre de la carpeta o directorio del cual se requiere hacer el backup, es la variable que se debe cambiar y especificar la ruta del directorio del que se requiere hacer una copia de resguardo:

folold = ActiveWorkbook.Path & «\» & nom

El siguiente código específicamente copia el directorio del que se requiere hacer una copia de seguridad al directorio donde se guardará la copia de seguridad:

fso.CopyFolder folold, nomdirect

Por último sale un mensaje mostrando que el backup se realizó con éxito:

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

Código VBA para Crea Copia de Seguridad de un Directorio con Macro Excel

Código que se coloca en un módulo

Sub Backup()
On Error Resume Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Dim fso As New FileSystemObject ‘Se debe habilitar la referencia «Microsoft Scripting Runtime»

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 = «592 Crea Backup con Excel»
nomfecha = Format(Date, «ddmmyyyy»)
nomhora = Format(Time, «hhmmss»)
nomdirect = Direc & «BACKUP» & » » & nom & » » & nomfecha & » » & nomhora

folold = ActiveWorkbook.Path & «\» & nom

fso.CopyFolder folold, nomdirect

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


Descarga archivo Excel para Realizar Backup de una Carpeta Completa

Descarga desde acá el archivo de este ejemplo que se usa 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