The following code may do the job for you:-
Application.ScreenUpdating = False
Dim ws As Worksheet
Dim lRow As Long
Dim lCol As Integer
Dim cell As Range
For Each ws In Worksheets
If ws.Name <> "Sheet4" Then
lRow = Range("A" & Rows.Count).End(xlUp).Row
lCol = Cells(1, Columns.Count).End(xlToLeft).Column
For Each cell In Range("C2:C" & lRow)
If IsDate(cell.Value) Then
Range(Cells(cell.Row, "A"), Cells(cell.Row, lCol)).Copy
Sheet4.Range("A" & Rows.Count).End(3)(2).PasteSpecial xlPasteValues
'Range(Cells(cell.Row, "A"), Cells(cell.Row, lCol)).Delete
Application.CutCopyMode = False
Application.ScreenUpdating = True
The code selects each row of data in each sheet based on having a value (date) in Column C and summarises these rows in sheet4.
I'm not sure if you wanted the "used" data in each individual sheet removed once transferred to sheet4. This would be a good idea otherwise you'll end up with multiple duplicates in sheet4. In the above code, you'll see a line in green font (line 21). This is the line of code that will remove the "used" data from each individual sheet. It is currently de-activated but if you would like to activate this line of code, then simply remove the apostrophe at the begining of the line.
Following is a link to my test work book for you to peruse. Click on the button in sheet4 to see the code at work. You can actually execute the code from any sheet:-
I hope that this helps.