MerciBonjour 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.
XL 2016 - Macro suppression Dossiers
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 ? Merciwww.excel-downloads.com
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
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
Merci Beaucoup Job75Bonjour KTM, Efgé,
En supposant que les dossiers à supprimer sont les sous-dossiers du dossier du fichier de la macro :
A+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
Merci à VousBonjour KTM, Efgé,
En supposant que les dossiers à supprimer sont les sous-dossiers du dossier du fichier de la macro :
A+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
OK. Mais il se trouve que la macro ne supprime que les Dossiers videsBonjour KTM, Efgé,
En supposant que les dossiers à supprimer sont les sous-dossiers du dossier du fichier de la macro :
A+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
Oui, alors utiliser :Mais il se trouve que la macro ne supprime que les Dossiers vides
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
Bonjour KTM, le forum,
Oui, alors utiliser :
Bonne journée.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
Quel intérêt ? Si X et/ou Y sont les seuls dossiers présents la macro n'exécute rien !!!j'aimerais transcrire en debut de procedure cette instruction:
"Si X et Y sont les seuls dossiers presents alors Exit sub"
En fait je voudrais inserrer une msgbox pour signaler a l'utilisateur qu'il n'ya pas de dossiers a supprimerQuel intérêt ? Si X et/ou Y sont les seuls dossiers présents la macro n'exécute rien !!!
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
merciLes 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