Excel 2007 fusion des feuilles de classeurs différents

Bonjour à tout le monde,

Je viens solliciter votre aide car je dois créer une macro qui permet de sélectionner des fichiers excel de même type( depuis un répertoire) et fusionner certaines feuilles des fichiers sélectionnés.

En exemple je vous joints trois fichiers.

Fichier1 et Fichier2 sont les deux fichiers que doit choisir l'utilisateur et la fusion doit donner le fichier3.

J’espère être clair et si c'est pas le cas je suis à votre disposition.

Merci d'avance de votre aide

Saliou.

31ficher1.xls (18.00 Ko)
32ficher2.xls (18.00 Ko)
39ficher3.zip (6.69 Ko)

Bonjour,

Un essai à adapter suivant tes besoins (chemin fichiers).

A te lire.

Cdlt

Option Explicit
Private Sub cmdConsolider_Click()
'Nécessite d'activer la référence
    'Microsoft ActiveX Data Objects 2.8 Library (à adapter suivant version Excel, je pense!)
Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim xConnect As String, Cible As String
Dim Fichier As String, Dossier As String, Feuille As String
Dim i As Long

    With Application
    .DisplayAlerts = False
    .ScreenUpdating = False
    End With

    'nom du répertoire contenant les classeurs à regrouper
    Dossier = "C:\users\Administrateur\Documents\Consolidation"
    'Nom de la feuille dans les classeurs fermés
    'Ne pas oublier le symbole $ après le nom de la feuille
    Feuille = "Base$"
    i = 2
    Fichier = Dir(Dossier & "\*.xls")

    'boucle sur les fichiers du repertoire
    Do While Len(Fichier) > 0
        'MsgBox Dossier & "\" & Fichier
        xConnect = "DRIVER={Microsoft Excel Driver (*.xls)};" & _
        "ReadOnly=1;DBQ=" & Dossier & "\" & Fichier
        'connection classeur
        Set Cn = New ADODB.Connection
        Cn.Open xConnect

        'Requete
        Cible = "SELECT * FROM [" & Feuille & "];"

        Set Rs = New ADODB.Recordset
        Rs.Open Cible, xConnect, adOpenStatic, adLockOptimistic, adCmdText
        j = 1
        'Ecriture dans la feuille de calcul
        If Not Rs.EOF Then Cells(i, 1).CopyFromRecordset Rs
        i = Cells(i, 1).End(xlDown).Row + 1

        Rs.Close
        Cn.Close
        Set Cn = Nothing
        Set Rs = Nothing
        Fichier = Dir()
    Loop

    'MsgBox "Terminé"

    With Application
        .DisplayAlerts = True
    End With

End Sub
50ficher3.zip (11.49 Ko)
55consolidation.zip (15.47 Ko)

Rebonjour Jean-Eric,

Merci pour ton aide.

C'est exactement ce que je cherchais en partie car maintenant je veux donner la possibilité à l'utilisateur de choisir les fichiers qu'il veut merger.

Saliou.

Rechercher des sujets similaires à "2007 fusion feuilles classeurs differents"