Une solution avec la macro suivante :
Sub consolide()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To Sheets.Count - 1
With Sheets(i)
If .[a1] <> "" Then
.UsedRange.Offset(1).Copy Range("a" & Cells.Find("*", , , , xlByRows, xlPrevious).Row).Offset(1)
Else
.Rows(.Cells.Find("*", , , , xlByRows, xlPrevious).Row).Copy Range("a" & Cells.Find("*", , , , xlByRows, xlPrevious).Row).Offset(1)
End If
End With
Next i
End Sub
Il est important que la dernière feuille soit toujours la feuille "cumul".