25 septiembre, 2023

RECORRER VARIOS ARCHIVOS Y SUS HOJAS Y BORRAR SU CONTENIDO CON VBA

Hola a todos:

Algunas tareas muy comunes en Excel son las de tener que seleccionar varios libros y realizar la misma tarea en cada uno de ellos y también en sus hojas. En este blog hay varios post donde recorremos y consolidamos información de varios archivos.

Un lector me pedía hace unos días que publicase un post sencillo en el que explicase el proceso de seleccionar varios archivos y borrar todo su contenido, incluyendo todas las hojas.

En efecto, esto se puede realizar, pero antes de nada me gustaría advertir que tengáis precaución a la hora de probar la macro dado que borrará los archivos que hayáis seleccionado. ¿OK?. De todas formas he incluido una ventana de advertencia para elegir si borrar o no hacerlo : )

Pues bien, solo tenéis que incluir esta macro en un módulo estándar y si, queréis un botón de comando en una hoja o ejecutarlo directamente desde VBA:

Sub Borrando_archivos()
'Declaramos variables
Dim narchivos As Variant, ilibro As Object
Dim j As Long, nhojas As Long, i As Long, elige As Long
'Desactivamos actualización de pantalla
Application.ScreenUpdating = False
'Seleccionamos archivos Excel
narchivos = Application.GetOpenFilename(FileFilter:="Excel (*.xls*),*.xls", _
Title:="Seleccionar archivos a borrar", MultiSelect:=True)
'Si no hay selección salimos de la rutina
If IsArray(narchivos) = False Then Exit Sub
'Mostramos ventana de advertencia para verificar si deseamos borrar los archivos
elige = MsgBox("ADVERTENCIA: ¿DESEAS BORRAR EL CONTENIDO DE LOS ARCHIVOS SELECCIONADOS?", vbYesNo + vbExclamation, "BORRAR ARCHIVOS")
'si pulsamos si:
If elige = vbYes Then
'Iniciamos loop por cada archivo seleccionado
For j = LBound(narchivos) To UBound(narchivos)
'Abrimos libro
Set ilibro = Workbooks.Open(Filename:=narchivos(j))
'Contamos número de hojas
nhojas = Sheets.Count
'Recorremos cada hoja y borramos todo el contenido
For i = 1 To nhojas
Sheets(i).Select
Cells.Select
Selection.Clear
Next i
'Cerramos el archivo y guardamos cambios
ActiveWorkbook.Close True
'Seguimos con el próximo archivo
Next j
'si pulsamos no, salimos de la rutina
Else: Exit Sub
End If
End Sub

La macro es muy sencilla, cuando pulsamos el botón de comando o la ejecutamos se muestra una ventana en la que nos va a permitir seleccionar cualquier archivo excel en cualquier ubicación de nuestro equipo:

RECORRER VARIOS ARCHIVOS Y SUS HOJAS CON VBA

Si elegimos archivos, la macro continuará, si no lo hacemos y pulsamos en cancelar, la macro se detendrá y saldremos del proceso.

Como medida de seguridad, es conveniente incluir un msgbox para una segunda confirmación si hemos seleccionado algún archivo en el paso anterior. Es posible que nos hayamos equivocado en la selección y no deseemos eliminar esa información.

RECORRER VARIOS ARCHIVOS Y SUS HOJAS CON VBA1

Si todo está correcto y pulsamos en «SI» la macro se ejecutará y toda la información será borrada. Si elegimos «NO», la macro no se ejecutará.

En este post es muy importante centrarse en la utilidad del código para recorrer archivos y hojas (mediante dos Loop), siempre será de utilidad para otras muchas tareas, no solo borrar información, también crearla, o consolidarla.

Y eso es todo, espero que os sea de utilidad.
Descarga el archivo de ejemplo pulsando en: RECORRER VARIOS ARCHIVOS Y SUS HOJAS UTILIZANDO VBA

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies