Supprimer tous les contenus d'un répertoire créé sous VBA

Legendre

XLDnaute Nouveau
Bonjour,
Je souhaite supprimer un répertoire et son contenu (plusieurs dossiers avec diverses extensions).
Ce répertoire a été initialement créé en renseignant "oui" dans le ComboBox31 et doit être supprimé en remplaçant "oui" par "non";
Cependant, ce code fonctionne partiellement quand il n'y a pas de contenus dans le répertoire.
Quelle instruction dois-je rajouter en plus du "RmDir"pour que ce code fonctionne en présence de contenus (*) dans le répertoire à supprimer ?
(*) .txt; .docx;.mp4; .xlsx, .dpm......
Merci,
Mon code est le suivant :
--------------------------------------------------------------------------------------------
'Créer automatiquement le répertoire Numéro du Mode Si le champ est égal à "OUI"
Dim NomFic As String
Dim Rep As String
Dim Nom As String
If ComboBox31.Value = "OUI" Then
Application.DisplayAlerts = Falaise
Rep = Workbooks(ActiveWorkbook.Name).Path & "\Enreg\"
NomFic = ComboBox1.Value
Nom = Rep & NomFic
On Error Resume Next
MkDir Nom
Else
'Supprimer automatiquement le répertoire Numéro du Mode Si le champ est égal à "NON"
If ComboBox31.Value = "NON" Then
Rep = Workbooks(ActiveWorkbook.Name).Path & "\Enreg\"
NomFic = ComboBox1.Value
Nom = Rep & NomFic
On Error Resume Next
RmDir Nom
End If
End If
ApplicationScreenUpdating = True
------------------------------------------------------------------------------------------------------------
Merci

Jacques
 

patricktoulon

XLDnaute Barbatruc
bonjour
les fonctions vb standard (dir,remdir,mkdir) n'on pas de gestion sub extract
quand on delete un dossier avec rmdir il faut d'abords supprimer le contenu
ca devient donc galere si arborescence de plus d'un étage("dossier/sub dossier/subsub dossier")

donc une fois n'est pas coutume et bien malgré moi la seule solution pour le faire d'un coup est avec filesystemobject(FSO)
faire une recherche sur cet object des exemples il y en a à foison
 

Legendre

XLDnaute Nouveau
A priori l'instruction " Application.DisplayAlerts " n'est pas concernée dans ce bug.
Présente ou pas la création et suppression d'un répertoire fonctionne.
Seule la suppression du répertoire avec du contenu n'est pas fonctionnelle (le répertoire ne peut être supprimé)
Jacques
 

Legendre

XLDnaute Nouveau
bonjour
les fonctions vb standard (dir,remdir,mkdir) n'on pas de gestion sub extract
quand on delete un dossier avec rmdir il faut d'abords supprimer le contenu
ca devient donc galere si arborescence de plus d'un étage("dossier/sub dossier/subsub dossier")

donc une fois n'est pas coutume et bien malgré moi la seule solution pour le faire d'un coup est avec filesystemobject(FSO)
faire une recherche sur cet object des exemples il y en a à foison
Merci
 

Staple1600

XLDnaute Barbatruc
Re

=>patricktoulon
C'est une solution
Pas la seule
(Si PC sous Windows)
commandes MSDOS par VBA
script PowerShell par VBA

Mais si j'étais moi, je me méfierai.
Je préfère toujours supprimer des fichiers manuellement que par macro ou script.
(surtout quand il s'agit de fichiers liés au boulot)
 

patricktoulon

XLDnaute Barbatruc
re
en déclaration tardive par de ref à activer
VB:
Sub DeleteFolder()
    Dim oFSOboule As Object, chemin$
    chemin = "C:\Users\polux\DeskTop\Nouveau dossier"
    Set oFSOboule = CreateObject("Scripting.FileSystemObject")    'Instanciation du FSO
    oFSOboule.GetFolder(chemin).Delete
End Sub
 

Discussions similaires

Réponses
8
Affichages
661

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 183
dernier inscrit
karelhu35