XL 2016 Suppression Dossiers

  • Initiateur de la discussion Initiateur de la discussion KTM
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

KTM

XLDnaute Impliqué
Bonjour Chers tous
Jai un fichier A et plusieurs sous dossiers contenus dans un meme dossier.
je voudrais insérer une macro dans mon fichier A qui pourra supprimer tous les sous dossiers excepter les sous dossiers X et Y
comment procéder ?
Merci
 
Bonjour KTM

Je ne pouurais pas t'aider, mais...
Il serai préférable de faire "remonter" ta première demande plutôt que multiplier la même.

Si tu n'as pas de réponse, c'est peut-être que tu ne donne pas d'exemple du code que tu as déjà fait.

Cordialement
 
Bonjour KTM

Je ne pouurais pas t'aider, mais...
Il serai préférable de faire "remonter" ta première demande plutôt que multiplier la même.

Si tu n'as pas de réponse, c'est peut-être que tu ne donne pas d'exemple du code que tu as déjà fait.

Cordialement
Merci
Voici comment je supprime par exemple le sous dossier "M"

Sub SupprimerDossierM()
Dim dossier As String
dossier = ThisWorkbook.Path & "\M"
If Dir(dossier, vbDirectory) = "" Then Exit Sub
Dim FS
Set FS = CreateObject("Scripting.FileSystemObject")
FS.Deletefolder dossier
End Sub

Mon souci est comment boucler sur tous les autres sous dossiers excepter les sous dossiers X et Y et les supprimer d'un seul coup.
Je pense avoir mieux exposé ma preoccupation. Encore Merci.
 
Bonjour KTM, Efgé,

En supposant que les dossiers à supprimer sont les sous-dossiers du dossier du fichier de la macro :
VB:
Sub SupprimerDossiers()
Dim chemin$, dossier$
chemin = ThisWorkbook.Path & "\"
dossier = Dir(chemin & "*", vbDirectory)
On Error Resume Next
While dossier <> ""
    If dossier <> "X" And dossier <> "Y" Then RmDir chemin & dossier
    dossier = Dir
Wend
End Sub
A+
 
Bonjour KTM, Efgé,

En supposant que les dossiers à supprimer sont les sous-dossiers du dossier du fichier de la macro :
VB:
Sub SupprimerDossiers()
Dim chemin$, dossier$
chemin = ThisWorkbook.Path & "\"
dossier = Dir(chemin & "*", vbDirectory)
On Error Resume Next
While dossier <> ""
    If dossier <> "X" And dossier <> "Y" Then RmDir chemin & dossier
    dossier = Dir
Wend
End Sub
A+
Merci Beaucoup Job75
 
Bonjour KTM, Efgé,

En supposant que les dossiers à supprimer sont les sous-dossiers du dossier du fichier de la macro :
VB:
Sub SupprimerDossiers()
Dim chemin$, dossier$
chemin = ThisWorkbook.Path & "\"
dossier = Dir(chemin & "*", vbDirectory)
On Error Resume Next
While dossier <> ""
    If dossier <> "X" And dossier <> "Y" Then RmDir chemin & dossier
    dossier = Dir
Wend
End Sub
A+
Merci à Vous
J'ai adapté comme suit pour supprimer tous les dossiers sauf "MySave" mais je voudrais mettre en debut de procedure cette instruction:
"si le dossier MySave est seul dossier alors Exit Sub"


Sub Supprimer_ToutDossier()
("si le dossier MySave est seul dossier alors Exit Sub")
Dim chemin$, dossier$
chemin = ThisWorkbook.Path & "\"
dossier = Dir(chemin & "*", vbDirectory)
On Error Resume Next
While dossier <> ""
If dossier <> "MySave" Then RmDir chemin & dossier
dossier = Dir
Wend
End Sub
 
Bonjour KTM, Efgé,

En supposant que les dossiers à supprimer sont les sous-dossiers du dossier du fichier de la macro :
VB:
Sub SupprimerDossiers()
Dim chemin$, dossier$
chemin = ThisWorkbook.Path & "\"
dossier = Dir(chemin & "*", vbDirectory)
On Error Resume Next
While dossier <> ""
    If dossier <> "X" And dossier <> "Y" Then RmDir chemin & dossier
    dossier = Dir
Wend
End Sub
A+
OK. Mais il se trouve que la macro ne supprime que les Dossiers vides
 
Bonjour KTM, le forum,
Mais il se trouve que la macro ne supprime que les Dossiers vides
Oui, alors utiliser :
VB:
Sub SupprimerDossiers()
Dim chemin$, sf As Object
chemin = ThisWorkbook.Path
For Each sf In CreateObject("Scripting.FileSystemObject").GetFolder(chemin).Subfolders
    If sf.Name <> "X" And sf.Name <> "Y" Then sf.Delete
Next
End Sub
Bonne journée.
 
Bonjour KTM, le forum,

Oui, alors utiliser :
VB:
Sub SupprimerDossiers()
Dim chemin$, sf As Object
chemin = ThisWorkbook.Path
For Each sf In CreateObject("Scripting.FileSystemObject").GetFolder(chemin).Subfolders
    If sf.Name <> "X" And sf.Name <> "Y" Then sf.Delete
Next
End Sub
Bonne journée.


Merci Job75 ca marche hyper bien. Un dernier detail pour clore ce sujet:
j'aimerais transcrire en debut de procedure cette instruction:
"Si X et Y sont les seuls dossiers presents alors Exit sub"

Sub SupprimerDossiers()
"Si X et Y sont les seuls dossiers presents alors Exit sub"
Dim chemin$, sf As Object
chemin = ThisWorkbook.Path
For Each sf In CreateObject("Scripting.FileSystemObject").GetFolder(chemin).Subfolders
If sf.Name <> "X" And sf.Name <> "Y" Then sf.Delete
Next
End Sub

Merci Encore pour tout
 
Les débutants mettent des MsgBox partout mais bon :
VB:
Sub SupprimerDossiers()
Dim chemin$, sf As Object, flag As Boolean
chemin = ThisWorkbook.Path
For Each sf In CreateObject("Scripting.FileSystemObject").GetFolder(chemin).Subfolders
    If sf.Name <> "X" And sf.Name <> "Y" Then sf.Delete: flag = True
Next
If Not flag Then MsgBox "Aucun dossier supprimé..."
End Sub
 
Les débutants mettent des MsgBox partout mais bon :
VB:
Sub SupprimerDossiers()
Dim chemin$, sf As Object, flag As Boolean
chemin = ThisWorkbook.Path
For Each sf In CreateObject("Scripting.FileSystemObject").GetFolder(chemin).Subfolders
    If sf.Name <> "X" And sf.Name <> "Y" Then sf.Delete: flag = True
Next
If Not flag Then MsgBox "Aucun dossier supprimé..."
End Sub
merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Réponses
12
Affichages
352
Réponses
8
Affichages
203
Retour