Copier Coller à la suite

Bonjour

J'aimerais créer une macro pour copier coller des données de feuilles différentes sur 1 seule feuille commune.

Mon exemple :

Feuille1 : copier coller les données à partir de la ligne 5 jusqu'à X (X étant la ligne où il n'y a plus de données)

Feuille2: copier coller les données à partir de la ligne 5 jusqu'à X

Feuille5 ...

Et les regrouper à la suite sur Feuille6 (feuille commune) en les copiant à partir de la ligne5 à la suite (données Feuille1 puis données Feuille2 ...)

Une idée ?

Est-il possible de l’exécuter sachant que X varie d'une feuille à une autre ?

Bonjour

un exemple avec X variable

13compil-onglets.xlsm (22.01 Ko)

Merci ça marche mais est-il possible de copier à partir de la ligne 5 sur la 1ere et la 2ieme feuille ?

comment faire pour mettre des noms exactes de plusieurs feuilles dans ce code

If ws.Name Like "A_*" Then

Avec quelques recherches j'ai répondu à ma question moi même

Parfait ! c'est aussi en cherchant à comprendre le code qu'on progresse ...

As-tu d'autres questions ?

J'ai essayé de l'appliquer sur mon fichier avec le code ci-dessous mais marche pas alors que ça marche bien de la même manière sur ton fichier.

Vois-tu le soucis au niveau de

With Worksheets("PlanningGlobal").ListObjects(1)

?

https://www.cjoint.com/c/IImpDfhLHJl

Option Explicit

Sub compiler()
Dim ligne As Long, ws As Worksheet

Worksheets("PlanningGlobal").Range("A5:XFD1276").ClearContents

    With Worksheets("PlanningGlobal").ListObjects(1)
        If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
    End With
    ligne = 5
    For Each ws In Worksheets
        If ws.Name Like "PlanningAnnuel" Then
            ws.Cells(Rows.Count, 1).End(xlUp).CurrentRegion.Offset(5, 0).Resize(ws.Cells(Rows.Count, 1).End(xlUp).CurrentRegion.Rows.Count - 1).Copy Destination:=ActiveSheet.Cells(ligne, 1)
            ligne = Cells(Rows.Count, 1).End(xlUp).Row + 1
        End If

        If ws.Name Like "PlanningSemestriel" Then
            ws.Cells(Rows.Count, 1).End(xlUp).CurrentRegion.Offset(5, 0).Resize(ws.Cells(Rows.Count, 1).End(xlUp).CurrentRegion.Rows.Count - 1).Copy Destination:=ActiveSheet.Cells(ligne, 1)
            ligne = Cells(Rows.Count, 1).End(xlUp).Row + 1
        End If

        If ws.Name Like "PlanningTrimestriel" Then
            ws.Cells(Rows.Count, 1).End(xlUp).CurrentRegion.Offset(5, 0).Resize(ws.Cells(Rows.Count, 1).End(xlUp).CurrentRegion.Rows.Count - 1).Copy Destination:=ActiveSheet.Cells(ligne, 1)
            ligne = Cells(Rows.Count, 1).End(xlUp).Row + 1
        End If

        If ws.Name Like "PlanningMensuel" Then
            ws.Cells(Rows.Count, 1).End(xlUp).CurrentRegion.Offset(5, 0).Resize(ws.Cells(Rows.Count, 1).End(xlUp).CurrentRegion.Rows.Count - 1).Copy Destination:=ActiveSheet.Cells(ligne, 1)
            ligne = Cells(Rows.Count, 1).End(xlUp).Row + 1
        End If

        If ws.Name Like "PlanningHebdomadaire" Then
            ws.Cells(Rows.Count, 1).End(xlUp).CurrentRegion.Offset(5, 0).Resize(ws.Cells(Rows.Count, 1).End(xlUp).CurrentRegion.Rows.Count - 1).Copy Destination:=ActiveSheet.Cells(ligne, 1)
            ligne = Cells(Rows.Count, 1).End(xlUp).Row + 1
        End If

    Next
End Sub

Vois-tu le soucis au niveau de

With Worksheets("PlanningGlobal").ListObjects(1)

?

ok je regarde

il faut que les données soient structurées en tableau excel (ListObjects)

Pourquoi Offset(5, 0) ?

ws.Cells(Rows.Count, 1).End(xlUp).CurrentRegion

va capter le tableau.

Ensuite je ne prends pas la première ligne, c'est pourquoi je fais Offset(1, 0)

Regarde l'exemple ... dans les 2 onglets, les données commencent à différents niveaux, et je n'ai que Offset(1, 0)

Plus le fait que la synthèse doit être structurée en tableau. Il faut restructurer tes données de synthèse (désolé mais tu n'avais pas dévoilé tes cartes dans ta demande).

Offset(5, 0)

pour copier à partir de la ligne 5. En testant cela marche bien

Oue je vois que ça commence à différent niveau et je ne comprend pas vraiment pourquoi ...

Les restructurer de quel manière, en format tableau ? Je ne peux pas faire autrement que les données affichées de cette manière

Offset(5, 0)

pour copier à partir de la ligne 5. En testant cela marche bien

tu es bien sûr ? regarde ligne à ligne ... pour moi ce n'est pas possible !

Je ne peux pas faire autrement que les données affichées de cette manière

Dans ce cas je passe mon tour, désolé mais je n'avais pas toutes les données du problème faute de fichier de ta part.

Rechercher des sujets similaires à "copier coller suite"