Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Fusionner classeur avec consolidation des données

pierrof

XLDnaute Occasionnel
Bonjour,

Je dispose d'une trentaine de classeurs identiques avec des données différentes sur 2 feuilles). J'aimerais savoir si c'est possible de consolider tous ces classeurs en un seul avec la somme des données.

Je vous joins des fichiers type.

Merci de vos lumières

Bonne journée
 

Pièces jointes

  • Consolidé.xlsx
    14.8 KB · Affichages: 5
  • TEST.xlsx
    14.7 KB · Affichages: 5
  • TEST2.xlsx
    14.7 KB · Affichages: 4
  • TEST3.xlsx
    14.7 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Pierrof,
Un essai en PJ. Il faut que tous les fichiers à consolider ainsi que ce fichier ce trouve dans le même dossier, et que les noms de feuilles soient toujours identiques et les données au même endroit. Avec :
VB:
Sub Consolide()
Dim Wb, Fichier, Dossier, Colonne, DL, Axe2, Axe3
Sheets("Axe2").Cells.ClearContents                  ' On efface les 2 feuilles
Sheets("Axe3").Cells.ClearContents
Colonne = 5                                         ' On commence en colonne E
Application.ScreenUpdating = False
Dossier = Dir(ThisWorkbook.Path & "\")
CeFichier = ThisWorkbook.Name
While Dossier <> ""                                 ' On parcourt tous les fichiers
    If Dossier <> CeFichier And Right(Dossier, 4) = "xlsx" Then
        Workbooks.Open (Dossier)                    ' On ouvre le fichier
        DL = Sheets("Axe2").[E1000].End(xlUp).Row   ' On sauvegarde les données dans les tableaux Axe2 et Axe3
        Axe2 = Sheets("Axe2").Range("E1:E" & DL)
        DL = Sheets("Axe3").[E1000].End(xlUp).Row
        Axe3 = Sheets("Axe3").Range("E1:E" & DL)
        Workbooks(Dossier).Close SaveChanges:=False ' On ferme le fichier
        Sheets("Axe2").Cells(1, Colonne).Resize(UBound(Axe2, 1), UBound(Axe2, 2)) = Axe2 ' Restitution des données
        Sheets("Axe2").Cells(1, Colonne) = Dossier
        Sheets("Axe3").Cells(1, Colonne).Resize(UBound(Axe3, 1), UBound(Axe3, 2)) = Axe3
        Sheets("Axe3").Cells(1, Colonne) = Dossier
    Colonne = Colonne + 1                           ' Prochaine colonne où coller
    End If
    Dossier = Dir                                   ' Prochain fichier à ouvrir
Wend
End Sub
 

Pièces jointes

  • Consolidation.xlsm
    22.2 KB · Affichages: 0

chris

XLDnaute Barbatruc
Bonjour

Cela peut se faire aisément en quelques clics via PowerQuery intégré à Excel.

Mais de toute évidence tes exemples sont très simplifiés...

Une feuille pour indiquer le dossier où se trouvent les classeurs : à modifier avant d'utiliser, Données Actualiser Tout

Edit : j'avais commencé avant de voir le message de Merinos que je salue
 

Pièces jointes

  • Consolidé_PQ.xlsx
    27.3 KB · Affichages: 0

Discussions similaires

Réponses
45
Affichages
2 K
Réponses
10
Affichages
420
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…