Neće ti baš puno pomoći ali eto pokušaj je pokušaj, nisam programer ali evo ti primjer kao vodič u smjeru rješavanja. Postoji mogućnost rješenja formulama pa filtriranjem.
U prilogu datoteka koja sadrži formule a formule možeš ugraditi u VBA macro. Jedino još bi trebalo postaviti uvjet između dva datuma.
Ako radiš direktno sa formulama tada postoji mogućnost usporavanja Excela ako imaš puno redova podataka.
U ćeliji A13, ovo je ARRAY ili "CSE formula" koju završavaš sa Ctrl+Shift+Enter (ne samo enter)
Formula reagira na uvjete SALDO ili naziv iz PP u ćeliji B8.
Code:
=IF($B$8="SALDO";IF($C$7>=ROWS(A$13:A13);INDEX(KN!A:A;SMALL(IF(KN!$E$2:$E$1000=$B$7;ROW(KN!$A$2:$A$1000));
ROWS(A$13:A13)));"");IF($C$8>=ROWS(A$13:A13);INDEX(KN!A:A;SMALL(IF(KN!$G$2:$G$1000=$B$8;ROW(KN!$A$2:$A$1000));
ROWS(A$13:A13)));""))
Ovo je VBA macro u Module1
Code:
Sub Macro1()
Range("A13:J100").Select
Selection.ClearContents
Range("A13").Select
Selection.FormulaArray = _
"=IF(R8C2=""SALDO"",IF(R7C3>=ROWS(R13C:RC),INDEX(KN!C,SMALL(IF(KN!R2C5:R1000C5=R7C2,ROW(KN!R2C1:R1000C1)),ROWS(R13C:RC))),""""),IF(R8C3>=ROWS(R13C:RC),INDEX(KN!C,SMALL(IF(KN!R2C7:R1000C7=R8C2,ROW(KN!R2C1:R1000C1)),ROWS(R13C:RC))),""""))"
Selection.AutoFill Destination:=Range("A13:J13"), Type:=xlFillDefault
Range("A13:J13").Select
Range("B13:C13").Select
Selection.NumberFormat = "m/d/yyyy"
Range("A13:J13").Select
Selection.AutoFill Destination:=Range("A13:J100"), Type:=xlFillDefault
Range("A13:J1000").Select
ActiveWindow.ScrollRow = 20
ActiveWindow.ScrollRow = 19
ActiveWindow.ScrollRow = 18
ActiveWindow.ScrollRow = 17
ActiveWindow.ScrollRow = 14
ActiveWindow.ScrollRow = 12
ActiveWindow.ScrollRow = 10
ActiveWindow.ScrollRow = 9
ActiveWindow.ScrollRow = 8
ActiveWindow.ScrollRow = 7
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 2
ActiveWindow.ScrollRow = 1
Range("H13:J100").Select
Selection.NumberFormat = "#,##0.00"
Range("A13").Select
End Sub
Nije do kraja završen jer nema uvjete datuma od-do filtriranja. Možda bi ga netko mogao doraditi.
pozdrav