Hace algún tiempo publiqué la manera de crear carpetas en nuestro árbol de Windows con la función MkDir (ver aquí)
Hoy veremos la acción opuesta para eliminar carpetas y los ficheros que ellas contengan, para lo que emplearemos las funciones Kill y RmDir.
Tenemos la siguiente carpeta que deseamos eliminar y que contiene ciertos ficheros...
Nuestro código VBA a incluir en un módulo estándar dentro del Editor de VBA es:
Un alternativa a estas funciones de VBA es emplear el ScriptSystemObject y su método .DeleteFolder
Nuestro código VBA a incluir en un módulo estándar dentro del Editor de VBA es:
Con ambos métodos conseguimos nuestro objetivo de eliminar desde Excel carpetas y ficheros situados en cualquier parte de nuestro entorno de trabajo...
Hoy veremos la acción opuesta para eliminar carpetas y los ficheros que ellas contengan, para lo que emplearemos las funciones Kill y RmDir.
Tenemos la siguiente carpeta que deseamos eliminar y que contiene ciertos ficheros...
Nuestro código VBA a incluir en un módulo estándar dentro del Editor de VBA es:
Sub Borrado() Dim strRuta As String 'ruta de la carpeta a borrar.. strRuta = "E:\excelforo\000AAAExcelforo\Carpeta_a_borrar_1" If Right(strRuta, 1) <> "\" Then strRuta = strRuta & "\" On Error Resume Next 'paso 1 - eliminamos contenido 'función KILL: para el borrado de una carpeta y los ficheros qeu hubiera en ella Kill strRuta & "*.*" ' borra la totalidad de archivos 'Kill strRuta & "*.xl*" ' borraría la totalidad de archivos solo de Excel 'paso 2 - borramos la carpeta 'función RmDir: para borrar una carpeta ya vacía de ficheros RmDir strRuta 'eliminamos la carpeta (si está vacía!!) On Error GoTo 0 End Sub
Un alternativa a estas funciones de VBA es emplear el ScriptSystemObject y su método .DeleteFolder
Nuestro código VBA a incluir en un módulo estándar dentro del Editor de VBA es:
Sub Borrado_Carpeta() 'Elimina la carpeta sin necesidad de eliminar los ficheros en ella contenidos Dim FSO As Object Dim strRuta As String 'ruta de la carpeta a borrar.. strRuta = "E:\excelforo\000AAAExcelforo\Carpeta_a_borrar_2" 'quitamos la posible última barra \ de la ruta If Right(strRuta, 1) = "\" Then MyPath = Left(strRuta, Len(strRuta) - 1) 'llamamos al script de FileSystem Set FSO = CreateObject("Scripting.FileSystemObject") 'y acabamos borrando la carpeta y todo su contenido FSO.DeleteFolder strRuta End Sub
Con ambos métodos conseguimos nuestro objetivo de eliminar desde Excel carpetas y ficheros situados en cualquier parte de nuestro entorno de trabajo...
Uff!!! Excelente!, si lo hubieras publicado antes!!!, me quebré un poco la cabeza con un sistema de DESBLOQUEO de password automatizado a EXCEL desde EXCEL donde requería limpiar una carpeta temporal, finalmente lo resolví con un comando de DOS RD /S /Q RUTA ejecutado obviamente con un Shell, me borró la carpeta junto con todas las subcarpetas y archivos de un sólo golpe. Estimadísimo Ismael, recibe un cordial saludo y respetos.
ResponderEliminar;-)
Eliminaralgo más simple con las funciones descritas...
un saludo Manuel Alejandro
Buenísimo, muchas gracias!
ResponderEliminar