Sub Synthetiser()
Dim f, i&, lig&
Application.ScreenUpdating = False ' plus rapide
lig = 5 ' N° de ligne de la première copie
With Sheets("Synthèse") ' avec la feuille Synthèse
.Cells(5, "c").Resize(Rows.Count - lig + 1, 3).Clear ' effacer les précédents résultats
For Each f In ThisWorkbook.Worksheets ' pour chaque feuille de calcul f
If f.Name <> "Listes" And f.Name <> "Synthèse" Then ' si le nom de f est diff. de "Listes" et de "Synthèse"
f.Range("g5:i46").Copy .Cells(lig, "c") ' on copie la plage à la ligne lig
lig = .Cells(Rows.Count, "c").End(xlUp).Row + 1 ' N° de ligne de la prochaine copie
f.Range("j5:L46").Copy .Cells(lig, "c") ' on copie la plage à la ligne lig
lig = .Cells(Rows.Count, "c").End(xlUp).Row + 1 ' N° de ligne de la prochaine copie
End If
Next f
lig = .Cells(Rows.Count, "c").End(xlUp).Row ' N° de la dernière ligne avec valeur
For i = lig To 5 Step -1 ' boucle depuis cette ligne jusqu'à la ligne 5
If Cells(i, "c") = "" Then Cells(i, "c").Resize(, 3).Delete shift:=xlShiftUp ' si la cellule colonne C est vide
Next i ' alors on supprime la ligne
End With
End Sub