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
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
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
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
=>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)
re Staple1600
oui je sais ,la commande dos aussi par l’intermédiaire de shell (et idem pour la création d'une arborescence )
faut il encore connaitre le langage
perso il y a des outils qui existent pourquoi aller chercher la complexité
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
=>patricktoulon
Tout le monde ne connait pas
1) L'existence de PowerShell sous Windows
2) et donc de WHS
3) et encore moins de MS-DOS
(en tout cas ceux qui n'ont pas connu les disquettes )