Sub RecapHebdo()
Dim Plage As Range, c As Range, cDest As Range
Dim sh As Worksheet
For Each sh In ThisWorkbook.Worksheets
If sh.Name <> "RECAP" Then
With sh
Set Plage = .Range(.Cells(7, 1), .Cells(.Rows.Count, 1).End(xlUp))
If Plage.Row > 6 Then 'vérifier que la plage n'est pas vide
For Each c In Plage.Cells
If IsDate(c(1, 9)) Then
Set cDest = Sheets("RECAP").Cells(Rows.Count, 1).End(xlUp).Offset(1)
cDest = sh.Name
c.Resize(, 12).Copy Destination:=cDest(1, 2)
End If
Next
End If
End With
End If
Next
'Tri de la plage de récupération
Set Plage = Sheets("RECAP").Range("A6").CurrentRegion
With Plage
If .Rows.Count > 2 Then
.Sort Key1:=.Cells(1, 1), key2:=.Cells(1, 10), Header:=xlYes
End If
End With
End Sub