VBA - Boucle pour ouvrir chaque dossier puis fichier contenu

Bonjour à tous,

j'aimerais réaliser une macro me permettant de parcourir une page SharePoint, ouvrir le 1er dossier de cette page, puis ouvrir le fichier excel contenu commençant par "SIMULATION_". Ensuite elle ouvrirait le 2ème dossier, puis ouvrirait le fichier excel contenu commençant par "SIMULATION_". Et ainsi de suite jusqu'à ce qu'elle ait parcouru tous ces fichiers.

Jusqu'ici je parcourais une page SharePoint sur laquelle tous mes fichiers "SIMULATION_" étaient listés et j'utilisais cette macro:

Function BoucleFichiers(Chemin As String, Extension As String) As Integer
    Dim Fichier As String

    BoucleFichiers = 0

    'Boucle sur tous les fichiers 'Extension' du répertoire 'Chemin'
    Fichier = Dir(Chemin & "*" & Extension)

    Do While Len(Fichier) > 0
        BoucleFichiers = BoucleFichiers + ChargerFichier(Chemin & Fichier)
        Fichier = Dir()
    Loop
End Function

Dans ma variable Chemin j'avais rentré l'adresse SharePoint et j'avais rentré ".xlsx" dans ma variable extension. La fonction ChargerFichier que j'appelais me permettait de faire ce que j'avais à faire dans chacun des fichiers. Quelqu'un pourrait-il m'aider ?

Je vous souhaite une bonne journée,

SkillzZ

Rebonjour à tous,

ma demande n'était peut-être pas assez précise ou trop importante. Du coup je vous transmets le travail que j'ai effectué depuis pour essayer d'obtenir ce que je veux:

 Dim i As Long

Sub Consolider_Simu()
    Dim S_Commande As Worksheet
    Dim Chemin As String
    Dim Extension As String

    Set S_Commande = ThisWorkbook.Sheets("Commande")
    Chemin = S_Commande.Cells(3, 2).Value
    Extension = S_Commande.Cells(4, 2).Value
    i = 6

    Nb = BoucleFichiers(Chemin, Extension)

End Sub

Function BoucleFichiers(Chemin As String, Extension As String) As Integer
    Dim Fso As Object
    Dim Dossier As Object
    Dim Fichier As Object
    Dim WB_TargetFichier As Workbook
    Dim TargetSheet As Worksheet
    Dim MainSheet As Worksheet

    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set WB_TargetFichier = Workbooks.Open(Fichier)
    Set TargetSheet = WB_TargetFichier.Sheets("SIMULATION")
    Set MainSheet = ThisWorkbook.Sheets("Main")
    BoucleFichiers = 0

    For Each Dossier In Fso.GetFolder(Chemin).SubFolders
        For Each Fichier In Dossier.Files

            If Fichier = "SIMULATION_" & "*" Then

            TargetSheet.Range("F6:G13").Select
            Selection.Copy
            MainSheet.Range("D" & i).PasteSpecial Paste:=xlPasteValues
            MainSheet.Range("D" & i).PasteSpecial Paste:=xlPasteFormats
            Application.CutCopyMode = False
            i = i + 22
            BoucleFichiers = BoucleFichiers + 1

            WB_TargetFichier.Close savechanges:=False

            Else: i = i + 22
            End If

        Next Fichier
    Next Dossier
End Function

Ma macro ne fonctionne malheureusement pas, j'ai le message d'erreur 91 Variable objet ou variable de bloc With non définie. Je pense que c'est parce que je lui demande d'ouvrir un une variable qui est un "Object" et non un "Workbook". Le souci est que j'utilise derrière une boucle "For each" avec cette même variable, et cette boucle ne fonctionnera pas avec une variable du type "Workbook". Quelqu'un pourrait-il m'aider sur le sujet ?

SkillzZ

Rechercher des sujets similaires à "vba boucle ouvrir chaque dossier puis fichier contenu"