oguruma
XLDnaute Impliqué
Bonjour Le Forum,
S'il y a des Linuxiens sur forum, vous connaissez et vous avez certainement utilisé le mkdir -p de Linux. Le voici donc façon VBA afin de créer une arborescence de dossiers et sous-dossiers.
PS : il y a encore peut-être plus rapide ? je suis preneur mais en tout cas ça fait le le boulot. Cette fonction est utilisée dans la version LIBMAC 3.3 publiée hier et disponible.
Exemple d'utilisation
	
	
	
	
	
		
Résultat
Le code
	
	
	
	
	
		
	
		
			
		
		
	
				
			S'il y a des Linuxiens sur forum, vous connaissez et vous avez certainement utilisé le mkdir -p de Linux. Le voici donc façon VBA afin de créer une arborescence de dossiers et sous-dossiers.
PS : il y a encore peut-être plus rapide ? je suis preneur mais en tout cas ça fait le le boulot. Cette fonction est utilisée dans la version LIBMAC 3.3 publiée hier et disponible.
Exemple d'utilisation
		VB:
	
	
	Sub Test_MakeDirP()
    MakeDirP "D:\TEST\DOSSIER\SOUS_DOSSIER\SOUS_SOUS_DOSSIER"
End SubRésultat
Le code
		VB:
	
	
	Function MakeDirP(hPath As String) As Boolean
    Dim oFSO As Object
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    '------------------------------------------------------
    ' Possible que ce soit un fichier donc hors sujet
    '------------------------------------------------------
    If oFSO.FileExists(hPath) Then
        MakeDirP = False
        Exit Function
    End If
    '------------------------------------------------------
    ' Le dossier existe déjà donc inutile de le créer
    '------------------------------------------------------
    If oFSO.FolderExists(hPath) Then
        MakeDirP = True
        Exit Function
    End If
    '------------------------------------------------------------------------------------------------------
    ' On part en profondeur dans l'arborescence pour créer les dossiers en utilisant la récursivité
    '------------------------------------------------------------------------------------------------------
    If MakeDirP(oFSO.GetParentFolderName(hPath)) Then
        ' si la création échoue
        If oFSO.CreateFolder(hPath) Is Nothing Then
            MakeDirP = False
        Else
            ' Création réussie
            MakeDirP = True
        End If
    Else
        MakeDirP = False
    End If
    
End Function