Nestačí ti na to obyčajný filter?
Makro by mohlo vyzerať takto:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim aSelection As Range
Dim aRange As Range
Dim aFirstCell As Range
Dim aLastCell As Range
Dim aCell As Range
Dim aRow As Range
Set aRange = Intersect(Target, Range("F1"))
If Not aRange Is Nothing Then
Set aFirstCell = Range("A1")
Set aLastCell = aFirstCell.End(xlDown)
For Each aCell In Range(aFirstCell, aLastCell)
If Month(aCell) <= Range("F1") Then
Set aRow = aCell.Resize(1, 5)
If aSelection Is Nothing Then
Set aSelection = aRow
Else
Set aSelection = Union(aSelection, aRow)
End If
End If
Next
If Not aSelection Is Nothing Then
aSelection.Select
End If
End If
End Sub
Maximálne môže byť označených 2048 oblastí. To je obmedzenie priamo v Exceli (nie v makrách) a je rovnaké minimálne od verzie 2000.