Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como Crear BACKUP FICHEROS OTROS APLICATIVOS con Programador Tareas de Windows en Excel VBA #594

VBA macro para crear copia seguridad de cualquier archivo

MACRO PARA CREAR BACKUP DE CUALQUIR ARCHIVO UTILIZANDO LAS TAREAS PROGRAMADAS DE WINDOWS

En este post se muestra como una macro de Excel puede realizar un backup o copia de seguridad de cualquier archivo utilizando las tareas programadas de windows, los archivos pueden ser de Word, Access, PDF, Txt, Jpg, etc., e incluso archivos de Excel. 

Necesitas aprender a maneja Excel como los mejores, 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 Seguridad de Cualquier Archivo con Macros de Excel

Este ejemplo permite crear un Backup de cualquier archivo, utilizando las tareas programadas de Windows y un archivo bat.

Las tareas programadas de Windows, dependiendo como se haya establecido, ejecuta un determinado día y hora el archivo con extensión bat, dicho archivo contiene un código que permite abrir el archivo de Excel, ejecutar el código para realizar la copia de seguridad y cerrar Excel nuevamente sin que el usuario pueda verlo.

El archivo de Excel contiene un código que una vez ejecutada la macro se debe cerrar automáticamente, el código en el archivo bat, hace que cuando se abre el archivo lo haga en una instancia de Excel distinta, por eso cuando se cierra el Excel no cierra los distintos archivos de Excel que tengamos abiertos al momento de ejecutarse la macro.

En este ejemplo el archivo del cual vamos a realizar un backup, es una base de datos de Access.

Desde el final se puede descargar el archivo comprimido que contiene el archivo Excel con la macro y un archivo bat, el cual es muy sencillo de manipular ya que solo se necesita el block de notas para abrirlo y editarlo, sugiero que los dos archivos se descarguen y guarden juntos.

Explicación del Código para Backup de Cualquier Fichero en forma automática con las tareas de Windows

Primero vamos a explicar el código que tiene el archivo bat, el cual es el siguiente: 

start «» «C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE» /e «C:\Users\MyNotebook\Documents\AAMIS MACROS\Publicadas\594 Como Crear Backup de Archivos Otros Aplicativos con Programador Tareas de Windows en Excel VBA.xlsm»

Con estos parámetros siguientes, se logra que Excel se abra en una instancia separada de los libros de Excel que estén abiertos en ese momento para no cerrarlos cuando la macro se ejecute.

start «»  ……. /e ……..

Esta parte del código se debe cambiar por la dirección de la carpeta o directorio de origen: 

«C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE»

La última parte se debe cambiar por la dirección o carpeta de destino:

«C:\Users\MyNotebook\Documents\AAMIS MACROS\Publicadas\594 Como Crear Backup de Archivos Otros Aplicativos con Programador Tareas de Windows en Excel VBA.xlsm»

En el archivo de Excel se debe colocar en el evento Open, el siguiente código que expresa: cuando se abra el libro, se debe llamar a la macro Backup (que está en un módulo), luego de ejecutarla cierra el Libro de Excel, el operador de la macro no verá nada de esto ya que se han eliminado los movimientos de pantalla; el código usado es:

Application.ScreenUpdating = False ‘Oculta movimientos de pantalla
Application.DisplayAlerts = False
On Error Resume Next
Call Backup  ‘Llama a la macro backup
Application.Quit ‘Cierra el Libro 

La macro que realiza el backup o resguardo de seguridad de ficheros se encuentra en un módulo, en dicha macro en primer término se determina la dirección o directorio donde se guardarán los archivos de seguridad:

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

Si la carpeta Backup no existe en el destino, la crea, asi:

If Dir(Direc, vbDirectory) = «» Then MkDir Direc ‘Verifica si existe la carpeta 

Luego determinamos el nombre del archivo que contendrá el nombre del archivo del cual realizamos el backup, la fecha y la hora en la que se realizó el backup, se utiliza:

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

El nombre del archivo de resguardo surge de la concatenación de las anteriores variables asi:nomarchi1 = Direc & «BACKUP» & » » & nom & » » & nomfecha & » » & nomhora & «.accdb»

Establecemos la dirección o path donde se encuentra el archivo del cual se requiere realizar la copia de seguridad:
dirold = ActiveWorkbook.Path

Por último con el siguiente comando copia el archivo del cual se requiere realizar el backup
copyold = dirold & «\» & nom & «.accdb»
FileCopy copyold, nomarchi1

Código VBA para realizar Resguardo de Seguridad utilizando tareas programadas de Windows y archivo bat

Código que se coloca en el evento open de ThisWorkbook

Private Sub Workbook_Open()
APrivate Sub Workbook_Open()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Call Backup
Application.Quit
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


Código que se coloca en un módulo de un archivo de Excel

Sub Backup()
On Error Resume Next
Direc = CreateObject(«wscript.shell»).specialfolders(«desktop») & «\BACKUP\» ‘Determinamos direccion escritorio windows
If Dir(Direc, vbDirectory) = «» Then MkDir Direc ‘Verifica si existe la carpeta o directorio, si no existe lo crea
nom = «1000 DBTSPuntoVenta»
nomfecha = Format(Date, «ddmmyyyy»)
nomhora = Format(Time, «hhmmss»)
nomarchi1 = Direc & «BACKUP» & » » & nom & » » & nomfecha & » » & nomhora & «.accdb»
dirold = ActiveWorkbook.Path
copyold = dirold & «\» & nom & «.accdb»
FileCopy copyold, nomarchi1
Application.ScreenUpdating = False
Application.DisplayAlerts = False
End Sub

Código que se coloca en el archivo Bat

start «» «C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE» /e «C:\Users\MyNotebook\Documents\AAMIS MACROS\Publicadas\594 Como Crear Backup de Archivos Otros Aplicativos con Programador Tareas de Windows en Excel VBA.xlsm»


Descarga el fichero Excel con la macro para realizar backup de cualquier archivo usando Tareas programadas de Windows

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