[ Pupazzo @ 24.12.2015. 19:08 ] @
Da li je izvodljivo ovo što želim da dobijem pomoću neke naredbe, preko makroa ili kako već. Primjer dajem u prilogu kako bih ja da mi to igzleda. u listu KART preuzima podatke iz lista KN i klikom na naredbu FILTER daje podatke kako želim da mi filtrira. Kriterijumi koje izaberem su u poljima B7, B8, B9 i B10. ako je u polju B8 PP neki sa liste onda daje njegovu karticu a ako piše SALDO onda daje njihov saldo sabirajući sve sa dugovne i potražne strane i daje njihov saldo. Da li se ovo može pomoću ednog makroao ili mora više njih i kako? Bio bih zahvalan ako može neko ovo da odradi.
[ Pupazzo @ 27.12.2015. 21:41 ] @
Mislim da bi se ovo moglo odradit uz pomoć tri makroa ono što bi meni trebalo. E, tu je sad problem, jer ih ja ne umijem odradit. Eto u prilogu je onako kako mislim da bi moglo da se postavi, al ako ima neko dobre volje da pomogne bio bih zahvalan.
[ Ivek33 @ 28.12.2015. 08:36 ] @
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
[ Ivek33 @ 28.12.2015. 15:04 ] @
Evo ti još jedan primjer
btw: sigurno postoji jednostavniji VBA kod ali dok ga ne nađeš možda ti ovo može poslužiti
[ 2012 @ 28.12.2015. 18:27 ] @
@Pupazzo

tabele su ti pogresno kreirane, zbog toga je tesko uspostaviti veze izmedju tabela na nacin kako si ti zamislio.
Prvo treba kreirati nove tabele, treba napisati nekoliko makroa: za unos podataka, za filter listanje i za pravljenje izvestaja (eventualno printanje i slanje mailom).

razumem sta ti treba, samo si pogresno poceo, takodje ima gresku kako u funkcionalnom tako i u konceptualnom smislu, mesas analitiku i sintetiku (barem je tako ispada iz fajla koji si prikacio)
[ Pupazzo @ 09.01.2016. 02:07 ] @
Nešto sam radio al nije u redu ovaj makro KARTICA. Kada otvorite vidjećete da nešto nisam odradio kako treba da daje karticu posebno. To jedna stvar, i druga stvar je da je nešto previše usporen cijeli fajl. Zbog čega je to?

Sub Filter_Kartica()

Application.ScreenUpdating = False

wsPRIN.Range("A2:G1000").ClearContents

Dim kupac As String, brn As Integer
kupac = wsKART.Range("N1").Value
brn = wsKART.Range("K1").Value

wsKART.Activate
Range("G1:G" & brn).AutoFilter Field:=1, Criteria1:=kupac
Range("A1", Range("G" & brn).End(xlDown)).Copy
wsPRIN.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False
Selection.AutoFilter
Range("A1").Select

wsPRIN.Activate

Dim xy As Long
xy = wsPRIN.Range("K1").Value

Range("D" & xy + 4).Value = "---------------------"
Range("D" & xy + 5).Value = "SVEGA :"
Range("E" & xy + 4).Value = "-------------------"
Range("E" & xy + 5).Value = Range("I1").Value
Range("F" & xy + 4).Value = "-------------------"
Range("F" & xy + 5).Value = Range("J1").Value
Range("G" & xy + 4).Value = "-------------------"
Range("G" & xy + 5).Value = Range("E" & xy + 5) - Range("F" & xy + 5)

Range("A1").Select

wsPRIN.PageSetup.LeftHeader = "EEEE doo ANALITICKA KARTICA KUPCA --- " & kupac

End Sub