[ anakin14 @ 18.03.2008. 13:56 ] @
Code: Sub lista() Sheets("pomocni").Select Range("a2:n" & Range("a65000").End(xlUp).row + 1).ClearContents Application.CutCopyMode = False Sheets("baza podataka").Select ListBox1.Clear Selection.AutoFilter Field:=1, Criteria1:=Format(dat(1), "d-mmm") Selection.AutoFilter Field:=2, Criteria1:=obj(1) Selection.AutoFilter Field:=3, Criteria1:=kont(1) Selection.AutoFilter Field:=4, Criteria1:=dob(1) If Range("a65000").End(xlUp).row > 1 Then p = Range("a65000").End(xlUp).row Range("a2:n" & p).Copy Sheets("pomocni").Select Range("A2").Select ActiveSheet.Paste tabela = Range("a2:n" & Range("a65000").End(xlUp).row) For p = 1 To UBound(tabela) With ListBox1 .AddItem tabela(p, 1) .List(ListBox1.ListCount - 1, 0) = tabela(p, 1) .List(ListBox1.ListCount - 1, 1) = tabela(p, 2) .List(ListBox1.ListCount - 1, 2) = tabela(p, 3) .List(ListBox1.ListCount - 1, 3) = tabela(p, 4) .List(ListBox1.ListCount - 1, 4) = tabela(p, 6) .List(ListBox1.ListCount - 1, 5) = tabela(p, 7) .List(ListBox1.ListCount - 1, 6) = tabela(p, 8) .List(ListBox1.ListCount - 1, 7) = tabela(p, 9) .List(ListBox1.ListCount - 1, 8) = tabela(p, 10) .List(ListBox1.ListCount - 1, 9) = tabela(p, 5) .TopIndex = .ListCount - 1 End With Next p Sheets("baza podataka").Select If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData End If Range("a1").End(xlDown).Offset(1, 0).Select End Sub Kao sto vidite da bi napunio listbox, prvo filterujem bazu podataka tako da ostanu podaci kojima zelim da je napunim, pa ih kopiram u pomocni sheet pa promenjlivoj tabela (variant) dodeljujem range iz pomocnog sheeta pa onda punim sa njim listbox... Mislim da sigurno postoji elegantnije resenje da popunim listbox podacima iz baze po zadatim kriterijumima (dat,kont,obj,dob). Hvala puno na pomoci i pozdrav!!! |