Ouvrir plusieurs fichiers Excel dans un dossier

Bonjour tout le monde,

J'ai un fichier synthèse et je dois ouvrir plusieurs fichiers Excel qui se trouve dans un dossier que j'ai appelé "TEST".

J'arrive à ouvrir un dossier mais je ne sais pas comment faire pour boucler sur tous les fichiers du dossier.

Pour mon test j'ai un fichier Excel que j'ai appelé "Personne A" et un deuxième que j'ai appelé "Personne B"

Voila le petit bout de code que j'ai :

Public Sub ouvrir_fichier()

Dim Nom_Fichier As String

Nom_Fichier = "Personne A"

Workbooks.Open "d:\Lcasado\Desktop\TEST\" & Nom_Fichier & ".xlsx"

End Sub

En fait l'objectif c'est de rapatrier les données de tous les fichiers du dossier dans mon fichier Excel Synthèse.

Merci.

J'ai réussi à avancer mais la le problème c'est que ça fonctionne pour un unique fichier et par plusieurs fichier dans un dossier.

Je pense qu'il faut ajouter une boucle IF quelque part mais je ne sais pas où ^^

Option Explicit

Public Sub ouvrir_fichier()

'Enleve les fenetres de demande
Application.DisplayAlerts = False

'Declaration des variable
Dim nom_fichier As String
Dim fichier_synthese As String

nom_fichier = "Personne A"
fichier_synthese = "Synthèse"

'Ouverture du fichier
Workbooks.Open "d:\Lcasado\Desktop\TEST\" & nom_fichier & ".xlsx"

'Activation de la feuille 2
Sheets("Evaluations").Activate

'Sélection des cellules A2 à F18
Range("A2:F18").Copy

Workbooks(fichier_synthese).Activate
Sheets("Synthèse").Activate
Range("A1").Select
ActiveSheet.Paste
Cells.EntireColumn.AutoFit
Cells.EntireRow.AutoFit
Range("A1").Select
Workbooks(nom_fichier).Close SaveChanges:=False
Workbooks(fichier_synthese).Activate
Sheets("Synthèse").Activate
Range("A1").Select
Range("A" & Rows.Count).End(xlUp).Select
ActiveCell.Offset(2, 0).Select

End Sub

Bonjour TeamG1,

A tester :

Option Explicit

Public Sub ouvrir_tous_les_fichiers()

    'Enleve les fenetres de demande
    Application.DisplayAlerts = False

    'Declaration des variables
    Dim nom_fichier As String
    Dim fichier_synthese As String
    Dim dossier As String
    Dim wb As Workbook

    fichier_synthese = "Synthèse"
    dossier = "d:\Lcasado\Desktop\TEST\"

    'Boucle sur tous les fichiers dans le dossier
    nom_fichier = Dir(dossier & "*.xlsx")
    Do While nom_fichier <> ""
        'Ouverture du fichier
        Set wb = Workbooks.Open(dossier & nom_fichier)

        'Activation de la feuille 2
        wb.Sheets("Evaluations").Activate

        'Sélection des cellules A2 à F18 et copie
        Range("A2:F18").Copy

        'Coller dans le fichier synthese
        With Workbooks(fichier_synthese).Sheets("Synthèse")
            .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial xlPasteAll
        End With

        'Fermeture du fichier ouvert
        wb.Close SaveChanges:=False

        'Obtenir le nom du prochain fichier
        nom_fichier = Dir
    Loop

    'Réactiver les alertes
    Application.DisplayAlerts = True

End Sub

Merci beaucoup c'est déjà super !

La j'essaye de faire en sorte qu'il y a une ligne qui soit sautée entre chaque tableau ; )

Vous pouvez simplement modifier la partie de la boucle qui colle les données pour déplacer le collage vers la ligne suivante. Vous pouvez le faire en ajoutant 2 au lieu de 1 à l'Offset dans le code. Le code modifie :

Option Explicit

Public Sub ouvrir_tous_les_fichiers()

    'Enleve les fenetres de demande
    Application.DisplayAlerts = False

    'Declaration des variables
    Dim nom_fichier As String
    Dim fichier_synthese As String
    Dim dossier As String
    Dim wb As Workbook

    fichier_synthese = "Synthèse"
    dossier = "d:\Lcasado\Desktop\TEST\"

    'Boucle sur tous les fichiers dans le dossier
    nom_fichier = Dir(dossier & "*.xlsx")
    Do While nom_fichier <> ""
        'Ouverture du fichier
        Set wb = Workbooks.Open(dossier & nom_fichier)

        'Activation de la feuille 2
        wb.Sheets("Evaluations").Activate

        'Sélection des cellules A2 à F18 et copie
        Range("A2:F18").Copy

        'Coller dans le fichier synthese
        With Workbooks(fichier_synthese).Sheets("Synthèse")
            .Cells(.Rows.Count, "A").End(xlUp).Offset(2, 0).PasteSpecial xlPasteAll
        End With

        'Fermeture du fichier ouvert
        wb.Close SaveChanges:=False

        'Obtenir le nom du prochain fichier
        nom_fichier = Dir
    Loop

    'Réactiver les alertes
    Application.DisplayAlerts = True

End Sub

Effectivement je n'avais pas vu merci beaucoup !

Pas de souci ^^

Rechercher des sujets similaires à "ouvrir fichiers dossier"