Ak chceš jedny globálne dátumy Od/Do, ktoré okamžite prefiltrujú 6 listov naraz, najlepší a technicky čistý spôsob je centrálny filter + VBA.
Na každom z 6 listov:
máš tabuľku (ListObject) alebo aspoň rozsah
stĺpec s dátumom je rovnaký názov / rovnaký index (napr. stĺpec „Dátum“)
Ak nemáš rovnaký stĺpec dátumu → najprv to zjednoť.
Vytvor „riadiaci“ list
Napr. list FILTER:
B2 = Dátum OD
B3 = Dátum DO
Tieto bunky budú jediný zdroj pravdy.
Toto vlož do ThisWorkbook:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name <> "FILTER" Then Exit Sub
If Intersect(Target, Sh.Range("B2:B3")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Call ApplyDateFilterToAllSheets
Application.EnableEvents = True
End Sub
(Module1)
Sub ApplyDateFilterToAllSheets()
Dim ws As Worksheet
Dim dtFrom As Date, dtTo As Date
Dim lo As ListObject
Dim colIndex As Long
dtFrom = Sheets("FILTER").Range("B2").Value
dtTo = Sheets("FILTER").Range("B3").Value
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "FILTER" Then
If ws.ListObjects.Count > 0 Then
Set lo = ws.ListObjects(1) ' ak máš na liste 1 tabuľku
' Nájdi stĺpec "Dátum"
colIndex = lo.ListColumns("Dátum").Index
With lo.Range
.AutoFilter Field:=colIndex, _
Criteria1:=">=" & CLng(dtFrom), _
Operator:=xlAnd, _
Criteria2:="<=" & CLng(dtTo)
End With
End If
End If
Next ws
End Subcitovat


RSS nejnovější články