XL 2019 Gestion des fichiers et répertoires

MarcDJ

XLDnaute Junior
Bonjour à tous,

Où pourrais-je trouver de la documentation pour gérer des fichiers et répertoires en VBA Excel 2019.

L'idée est d'aller sur un disque dur, sélectionner un répertoire avec des noms et en fonction des noms télécharger
les 5 photos correspondant au nom.

Merci d'avance pour réponses
 

MarcDJ

XLDnaute Junior
Bonjour à tous,

Est-ce que la manière suivante de travailler est bonne :
-------------------------------------------------------------------------------------
Sub CreerDossier()

' Créer un Dossier

Dim GestionFichier As New Scripting.FileSystemObject
GestionFichier.CreateFolder "D:\Atelier\Armoire"
Set GestionFichier = Nothing

End Sub
-------------------------------------------------------------------------------------
Je vois dans beaucoup d'exemples que l'on n'emploie plutôt ceci :

Sub CreerDossier()

MkDir ("D:\Atelier\Armoire")

End Sub
--------------------------------------------------------------------------------------
Merci d'avance pour vos réflexions.
 

MJ13

XLDnaute Barbatruc
Bonjour à tous

Oui, Mkdir permet de créer un dossier dans un sous-dossier.

Mais pour créer un dossier avec différents sous-dossiers, tu peux utiliser ce code:

VB:
Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" _
                                             (ByVal hwnd As Long, ByVal pszPath As String, ByVal lngsec As Long) As Long
Sub TestCréationDossier()
Dim Rep As String
    Rep = "C:\repA\repB\repC\RepD"
    nomdossier = Dir(Rep, vbDirectory)
    If nomdossier <> Empty Then MsgBox ("Le dossier existe"): Exit Sub
    CreationDossier Rep
End Sub
Sub CreationDossier(sNomRep As String)
    'ChDrive "D"
    SHCreateDirectoryEx 0&, sNomRep, 0&
End Sub
 

kiki29

XLDnaute Barbatruc
Salut, à tester
VB:
Option Explicit

Sub CreationDossier_Shell()
Dim sdossier As String
Dim sChaine As String
    sdossier = "C:\Essai1\Essai2\Essai3\Essai4\Essai5"
    sChaine = Environ("comspec") & " /c mkdir " & sdossier
    Shell sChaine, 0
End Sub
 

Jacky67

XLDnaute Barbatruc
Bonjour à tous,

Est-ce que la manière suivante de travailler est bonne :
-------------------------------------------------------------------------------------
Sub CreerDossier()

' Créer un Dossier

Dim GestionFichier As New Scripting.FileSystemObject
GestionFichier.CreateFolder "D:\Atelier\Armoire"
Set GestionFichier = Nothing

End Sub
-------------------------------------------------------------------------------------
Je vois dans beaucoup d'exemples que l'on n'emploie plutôt ceci :

Sub CreerDossier()

MkDir ("D:\Atelier\Armoire")

End Sub
--------------------------------------------------------------------------------------
Merci d'avance pour vos réflexions.
Re..
La meilleur manière selon moi, est celle que l'on comprend et que l'on maitrise.
Tous arrivent au même résultat.
 

kiki29

XLDnaute Barbatruc
Re, et un de plus de frederic sigonneau
VB:
Private Function CreationDossier(ByVal sChemin As String) As Boolean
Dim i As Integer, sTmp As String, Ar() As String
    If InStr(sChemin, ":") = 0 Then
        Ar = Split(CurDir & "\" & sChemin, "\")
    Else
        Ar = Split(sChemin, "\")
    End If

    sTmp = Ar(0)
    ChDrive sTmp

    For i = LBound(Ar) + 1 To UBound(Ar)
        If Ar(i) <> "" Then
            sTmp = sTmp & "\" & Ar(i)
            On Error Resume Next
            MkDir sTmp
            On Error GoTo 0
        End If
    Next i

    If Dir$(sChemin, vbDirectory) = vbNullString Then
        CreationDossier = False
    Else
        CreationDossier = True
    End If
End Function
 

MarcDJ

XLDnaute Junior
Bonsoir à tous,

Pourquoi le code suivant me renvoie "objet requis"

Sub AccesRepertoireMesDocuments()

Dim Chemin As String
Chemin = ("C:\Users\MSI Marc\Documents")
' Affichage de l'emplacement Physique du répertoire Mes Documents
MsgBox Chemin
' Affichage du nombre de Sous-Dossiers du répertoire Mes Documents
Dim GestionFichier As New Scripting.FileSystemObject
MsgBox GestionDossier.GetFolder(Chemin).SubFolders.Count
Set GestionFichier = Nothing
' Affichage du Premier Fichier trouvé dans Mes Documents
MsgBox Dir(Chemin & "\*.*")
' Affichage du Dossier Suivant
MsgBox Dir

End Sub

Merci pour vos réponses
 

Jacky67

XLDnaute Barbatruc
Bonsoir à tous,

Pourquoi le code suivant me renvoie "objet requis"

Sub AccesRepertoireMesDocuments()

Dim Chemin As String
Chemin = ("C:\Users\MSI Marc\Documents")
' Affichage de l'emplacement Physique du répertoire Mes Documents
MsgBox Chemin
' Affichage du nombre de Sous-Dossiers du répertoire Mes Documents
Dim GestionFichier As New Scripting.FileSystemObject
MsgBox GestionDossier.GetFolder(Chemin).SubFolders.Count
Set GestionFichier = Nothing
' Affichage du Premier Fichier trouvé dans Mes Documents
MsgBox Dir(Chemin & "\*.*")
' Affichage du Dossier Suivant
MsgBox Dir

End Sub

Merci pour vos réponses
Bonjour à tous
Et tout de suite après, modifier
Dim GestionFichier.......
MsgBox GestionDossier.....
 

Discussions similaires

Réponses
19
Affichages
2 K

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 184
dernier inscrit
Di Martino