1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| Sub Nettoyage()
SupprimerDossiersVides "d:\données\Test Vide"
End Sub
Function SupprimerDossiersVides(CheminDepart As String) As Boolean
Dim oCollection As New Collection
Dim SousDossier As String
Dim Valeur As String
Dim Compteur As Long
' Chargement de la collection
Valeur = Dir(CheminDepart & "\*.*", vbDirectory)
If Valeur = "" Then Exit Function
Do While Valeur <> ""
If (Valeur <> "." And Valeur <> "..") Then _
oCollection.Add CheminDepart & "\" & Valeur, CheminDepart & "\" & Valeur
Valeur = Dir
Loop
' Collection vide = dossier vide => suppression
If oCollection.Count = 0 Then
RmDir CheminDepart
SupprimerDossiersVides = True
Exit Function
End If
' Si pas vide (test implicite), on boucle
' avec test si dossier
' Si dossier, on (ré)appelle la procédure avec le nouveau chemin
For Compteur = 1 To oCollection.Count
Valeur = oCollection(Compteur)
If (GetAttr(Valeur) And vbDirectory) Then
Do While SupprimerDossiersVides(Valeur) = True
SupprimerDossiersVides = SupprimerDossiersVides(CheminDepart)
Loop
End If
Next
End Function |
Partager