Onglet Récapitulatif

Bonjour à tous.

Débutant VBA, je suis confronté à un problème dont j'aimerais beaucoup vos lumières pour m'aider à avancer dessus.

Le contexte est simple : j'ai dans un même classeur 17 onglets. Les 16 premiers sont des onglets remplis par des instances différentes. Le dernier onglet doit "tout simplement" concaténer tout cela. c'est à dire que j'aimerais que tout ce qui est renseigné dans les 16 onglets soit retranscrit dans le dernier onglet. Le problème est aussi celui ci : onglet 1, première ligne = une information. Idem pour onglet 2 première ligne. Et ainsi de suite.

L'idée, pour que je puisse conserver toutes les lignes, c'est que dans mon onglet récapitulatif, les lignes viennent donc s'ajouter en fonction d'une colonne qui est celle intitulée " Date début opération"

Pour plus de clarté, fichier joint présentant succinctement mon projet avec 4 onglets seulement.

Vraiment merci, merci, merci pour vos pistes. Je poursuis de mon côté mes réflexions.

bonsoir,

une proposiition

Sub recap()
    Set wso = Sheets("recap global")
    dlo = 2
    For Each ws In Worksheets
        If ws.Name <> wso.Name Then
            dli = ws.Cells(Rows.Count, 1).End(xlUp).Row
            ws.Rows("2:" & dli).Copy wso.Cells(dlo, 1)
            dlo = dlo + dli - 1
        End If
    Next
    dlo = dlo - 1
    wso.Range("a1:t" & dlo).Sort key1:=wso.Range("C1"), order1:=xlAscending, Header:=xlYes
End Sub

Bonjour H2so4,

Comme envoyé en mp, un grand merci mais il reste juste un petit souci : c'est que dans mon onglet récap, ma ligne d'en-tête se trouve dupliquée. J'ai essayé de modifier les valeurs dans le code mais je ne dois pas procéder de la bonne façon.

J'en profite pour te remercier une nouvelle fois.

Thomas

Bonjour,

une version adaptée

Sub recap()
    Set wso = Sheets("recap global")
    dlo = 2
    wso.Rows("2:" & dlo).ClearContents
    For Each ws In Worksheets
        If ws.Name <> wso.Name Then
            dli = ws.Cells(Rows.Count, 1).End(xlUp).Row
            If dli > 1 Then
                ws.Rows("2:" & dli).Copy wso.Cells(dlo, 1)
                dlo = dlo + dli - 1
            End If
        End If
    Next
    dlo = dlo - 1
    wso.Range("a1:t" & dlo).Sort key1:=wso.Range("C1"), order1:=xlAscending, Header:=xlYes
End Sub

Génial.

Mille mercis.

Voilà qui me donne envie de progresser en VBA pour à mon tour aider cette communauté.

Bonne journée

Rechercher des sujets similaires à "onglet recapitulatif"