Borrar el contenido de una Carpeta desde excel

Necesito por favor me apoyen con un código Vba. Requiero validar si una carpeta se encuentra vacía, y si no lo está que borre los archivo contenido en ésta.

Actualmente tengo el siguiente código:

Sub borrar()
If RmDir("D:\Oladier\06 VALORACIÓN\VALORACIÓN\Minería_datos\") = "" Then
MsgBox "DEPURACIÓN EFECTUADA", , "PROCESO FINALIZADO"
Else
Kill ("D:\Oladier\06 VALORACIÓN\VALORACIÓN\Minería_datos\F00_PFTIT597.xls")
Kill ("D:\Oladier\06 VALORACIÓN\VALORACIÓN\Minería_datos\F01_PFTIT597.xls")
Kill ("D:\Oladier\06 VALORACIÓN\VALORACIÓN\Minería_datos\F02_PFTIT597.xls")
Kill ("D:\Oladier\06 VALORACIÓN\VALORACIÓN\Minería_datos\F03_PFTIT597.xls")
MsgBox "DEPURACIÓN EFECTUADA", , "PROCESO FINALIZADO"
End If
End Sub

Pero no me reconoce el RmDir, o si hay una manera mas sencilla de hacerlo se los agradecería.

2 Respuestas

Respuesta
3

Te mando mi solución, sigue mi ejemplo:

En esta macro estoy evaluando la carpeta:

C:\Users\Luis\Documents\curso de excel\luis\

Si tiene archivos los borrará y si está vacía me informará que está vacía

Para que la puedas usar solo tienes que cambiar el entrecomillado para poner el path de tu carpeta, recuerda que el path tiene que acabar con la barra \

Sub ejemplo()
'por luismondelo
Set fso = CreateObject("scripting.filesystemobject")
Set carpeta = fso.getfolder("C:\Users\Luis\Documents\curso de excel\luis\")
Set archivos = carpeta.Files
For Each fichero In archivos
x = x + 1
Next
x = x - 2
If x <> 0 Then
Msgbox "la caperta contiene " & x & " archivos, se procede a borrarlos"
For Each fichero In archivos
Kill fichero
Next
Else
MsgBox "la carpeta está vacia"
End If
End Sub

por favor recuerda finalizar la consulta, es fundamental para el funcionamiento del foro

Respuesta
1

Solo como consejo y sugerencia para algunos por si les puede servir hoy en día, pueden utilizar "ThisWorkbook.Path" por si la carpeta que quieren borrar su contenido esta en el mismo lugar donde tienen el su archivo .xlsm donde ejecutan la macro.

Esto remplazaría "C:\Users\NombreUsuario\Documents\... etc"

Ejemplo:

Set carpeta = fso.getfolder(ThisWorkbook.Path & "\Pruebas1\")

O bien se puede agregar subcarpetas 

Set carpeta = fso.getfolder(ThisWorkbook.Path & "\Pruebas1\Pruebas2\Pruebas3\")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas