Rozsireny filtr, ktery je implementovan v Excelu (Data>Filtr>Rozsireny filtr) pozaduje umistit kriteria i oblast pro vysledek na tentyz list.
Pokud trvas na umisteni kriterii a vysledku na jinem listu, pak nezbude nez napsat vlastni proceduru opirajici se o For Each...Next statement.
Neco takoveho:
Option Explicit
Sub najdi()
Dim Krit1 As Variant, Krit2 As Variant, PoslRadek As Long
Dim Databaze As Range, Extrakt As Range, c As Range, i As Long
'definovat oblast databaze a kriterii
Set Krit1 = Worksheets("list2").Range("f1")
Set Krit2 = Krit1.Offset(0, 1)
PoslRadek = Worksheets("List1").Cells(Rows.Count, "A").End(xlUp).Row
Set Databaze = Worksheets("list1").Range("a1")
Set Databaze = Databaze.Resize(PoslRadek, 1)
'definovat oblast extrakt a clear
PoslRadek = Worksheets("List2").Cells(Rows.Count, "A").End(xlUp).Row
Set Extrakt = Worksheets("list2").Range("a1")
Set Extrakt = Extrakt.Resize(PoslRadek, 1)
Extrakt.ClearContents
' vykonna smycka
i = 0
For Each c In Databaze.Cells
If c.Value >= Krit1 And c.Value <= Krit2 Then ' podminky zadat dle potreby
Extrakt.Offset(i, 0).Value = c.Value
Extrakt.Offset(i, 1).Value = c.Offset(0, 1).Value
' pripadne dalsi bunky
i = i + 1
End If
Next c
End Sub