すると、こんな感じかな?
Sub test()
Dim ws As Worksheet
Dim r As Range
Dim Cri, rRes As Range, nextRow As Long
Intersect(Me.Columns("B:E"), Me.UsedRange.Offset(2)).ClearContents
Me.Range("B3:E3") = Array("氏名", "年月日", "人数", "天気")
Cri = Me.Range("C1").Text
For Each ws In Worksheets
If ws.Name <> Me.Name Then
With ws
Set r = .Range("C2", .Cells(.Rows.Count, "A").End(xlUp))
r.AutoFilter Field:=1, Criteria1:=Cri
Set rRes = r.Columns("A").SpecialCells(xlCellTypeVisible)
If rRes.Cells.Count > 1 Then
nextRow = Me.Cells(Me.Rows.Count, "B").End(xlUp).Row + 1
r.Offset(1).Copy Me.Cells(nextRow, "C")
Me.Cells(nextRow, "B").Resize(rRes.Cells.Count - 1) = ws.Name
End If
.AutoFilterMode = False
End With
End If
Next
End Sub