Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, rg As Range
Application.ScreenUpdating = False
Cells.EntireRow.Hidden = False
If Target = [B1] Then
Set rg = ActiveSheet.Range("B1:B" & ActiveSheet.Range("B65000").End(xlUp).Row)
For Each c In rg
If Month(c) <> Month([B1]) Then c.EntireRow.Hidden = True
Next c
End If
Application.ScreenUpdating = True
End Sub