Microsoft 365 Fusionner plusieurs feuilles de calcul issus d'un même fichier

Tidjyphenom

XLDnaute Nouveau
Bonjour,

Je me demandais comment je pouvais fusionner plusieurs feuilles de calcul d'un même fichier Excel en une seule nouvelle feuille. Chaque feuille possèdent les même colonnes du même nom et de même position. Je crois savoir que la fonction Consolider dans Excel devrait m'aider mais je n'ai pas trouver comment l'utiliser correctement même en recherchant sur Google. Voici un fichier exemple en pièce jointe. Le but ici étant d'avoir sur la feuille 3 le contenu des feuilles 1 et 2.

Merci.
 

Pièces jointes

  • Merge Woorksheets.xlsx
    10.3 KB · Affichages: 7
Solution
Une solution VBA très simple, dans le code de Feuil3 :
VB:
Private Sub Worksheet_Activate()
Dim lig&, w As Worksheet, P As Range, h&
lig = 2
Application.ScreenUpdating = False
Rows(lig & ":" & Rows.Count).Delete 'RAZ
For Each w In Worksheets
    If w.Name <> Me.Name Then
        Set P = w.[A1].CurrentRegion.EntireRow
        h = P.Rows.Count - 1
        If h Then
            P.Rows(2).Resize(h).Copy Cells(lig, 1) 'copier-coller
            lig = lig + h
        End If
    End If
Next
End Sub
La macro se déclenche quand on active la feuille.

A+

job75

XLDnaute Barbatruc
Une solution VBA très simple, dans le code de Feuil3 :
VB:
Private Sub Worksheet_Activate()
Dim lig&, w As Worksheet, P As Range, h&
lig = 2
Application.ScreenUpdating = False
Rows(lig & ":" & Rows.Count).Delete 'RAZ
For Each w In Worksheets
    If w.Name <> Me.Name Then
        Set P = w.[A1].CurrentRegion.EntireRow
        h = P.Rows.Count - 1
        If h Then
            P.Rows(2).Resize(h).Copy Cells(lig, 1) 'copier-coller
            lig = lig + h
        End If
    End If
Next
End Sub
La macro se déclenche quand on active la feuille.

A+
 

Pièces jointes

  • Merge Woorksheets(1).xlsm
    18.8 KB · Affichages: 8

Tidjyphenom

XLDnaute Nouveau
Une solution VBA très simple, dans le code de Feuil3 :
VB:
Private Sub Worksheet_Activate()
Dim lig&, w As Worksheet, P As Range, h&
lig = 2
Application.ScreenUpdating = False
Rows(lig & ":" & Rows.Count).Delete 'RAZ
For Each w In Worksheets
    If w.Name <> Me.Name Then
        Set P = w.[A1].CurrentRegion.EntireRow
        h = P.Rows.Count - 1
        If h Then
            P.Rows(2).Resize(h).Copy Cells(lig, 1) 'copier-coller
            lig = lig + h
        End If
    End If
Next
End Sub
La macro se déclenche quand on active la feuille.

A+

Merci, j'avais regardé sur Power Query. Je suis sûr que c'est plus simple d'ailleurs sur Power Query une fois qu'on le maitrise mais de mon côté je n'ai pas réussi. En revanche ta macro fonctionne bien comme demandée. Bien que pour parfaire le truc, l'idéal aurait été de choisir de ne fusionner uniquement que toutes les feuilles à gauche de celle où est appliquée la MACRO afin de ne pas ajoutée des données non voulues dans d'autres feuilles (celles à droite). Mais ta macro m'a fait 99% du travail. Pour le reste je devrais pouvoir bidouiller la bouche for each. :)
 

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 232
Membres
103 161
dernier inscrit
Rogombe bryan