[ printer @ 26.11.2006. 14:31 ] @
Negde sam pokupio mogucnost da u okviru jednog lista mogu pretrazivati podatke iz drugog lista u recimo istom direktorijumu. Interesuje me da li je moguce da recimo u nekom listu u celiji a1 napravim padajucu listu ciji su elementi u stvari ostali listovi u tom direktorijumu. Potom kada odaberem neki element iz te liste da mogu da obavim "popunjavanje" odredjih polja.Hvala u napred!
[ Jpeca @ 27.11.2006. 08:37 ] @
Citat:
da li je moguce da recimo u nekom listu u celiji a1 napravim padajucu listu ciji su elementi u stvari ostali listovi u tom direktorijumu

Pokušaj da budeš precizniji da li u padajućoj listi treba da se pojave radne tabele iz direktorijuma ili radni listovi iz radne tabele ili nešto treće (direktorijum -> radne tabele -> radni listovi).
U principu da bi se nešto pojavilo na padajućoj listi treba
a/ da se direktno upiše kao niz stringova ili
b/ da se padajuća lista poveže sa nekim opsegom ćeilja koji sadrži elemente padajuće liste

Varijanta b/ mogla bi da se iskoristu u tvom slučaju ako iskoristiš neki makro ili funkciju da popuniš opseg ćelija potrebnim podacima.

Citat:
Potom kada odaberem neki element iz te liste da mogu da obavim "popunjavanje" odredjih polja.

Na koji način treba da se i popunjavaju i koja polja?
[ printer @ 27.11.2006. 21:33 ] @
Evo ovako sam ja to smislio. U direktorijumu je"c:\firma\1.xls" Napravim svesku fakturaoriginal.xls a u njoj u polju a1 kazem da procita sve *.xls iz direktorijuma firma. Tada vidim koji je poslednji tj najveci broj faktura u direktorijumu. Tada ispisem fakturuoriginal.xls i sa F12 je upamtim kao sledecu fakturu. npr c:\firma\2.xls. Kod sledeceg pisanje podizem opet fakturaoriginal.xls ali sada u njenom polju a1 stoji redni broj dva (procitala je sve datoteke *xls u direktorijumu c:\firma\". Ponovo ispunim fakturu original.xls i ponovo je sa F12 upamtim ali sada kao c:\firma\3.xls. Ne znam da li sam jasan, ali ja to tako nesto tripujem da uradim da ne sirim zasto je to bas tako. Ake je i bitno zasto onda cu i o tome detaljnije. Zahvalan strpljivima i dobronamernima !!! Printer.
[ Jpeca @ 28.11.2006. 08:03 ] @
Ja sam ovo radio tako što na drugom listu original radne sveske zapamtim broj poslednje izdate fakture u pomoćnoj ćeliji.

Prilikom otvaranja original radne sveske (u događaju Open) prenesem vrednost pomoćne ćelije (poslednja izdata faktura) i uvećam za jedan.
Code:

Private Sub Workbook_Open()
  Sheets("Faktura").Range("C2").Value = Sheets("Pom").Range("B1").Value +1
End Sub


Prilikom čuvanja radne sveske (u događaju Before Save) prenesem vrednost broja fakture u pomoćnu ćeliju na drugom listu. I sačuvam original svesku ( fakturaoriginal.xls )
Code:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Sheets("Pom").Range("B1").Value = Sheets("Faktura").Range("C2").Value 
  ActiveWorkbook.Save
End Sub

Sledeći put kad se otvori fakturaoriginal.xls popuniće se sledeći broj fakture na osnovu sadržaja pomoćne ćelije.

Naravno, ukoliko je iz nekog meni nepoznatog razloga neophodno, može se rešiti i pretraživanjem direktorijuma. Na primer funkciju koja traži najnoviji fajl u direktorijumu možeš naći na adresi
http://j-walk.com/ss/excel/tips/tip97.htm. Ova funkcija se može prepraviti tako da uvek uzima xls fajlove i vraća samo naziv fajla - u tvom slučaju broj.



[Ovu poruku je menjao Jpeca dana 28.11.2006. u 09:27 GMT+1]

[Ovu poruku je menjao Jpeca dana 28.11.2006. u 09:27 GMT+1]
[ printer @ 28.11.2006. 17:17 ] @
E, ovo zvuci skroz OK, pokusacu pa cu da javim sta sam uradio.Posto nisam bas srodan preterano sa pisanjem kodova-mora malo da se razgibam :-).
[ printer @ 06.01.2007. 21:59 ] @
E ovo je sve OK i radi besprekorno, but.....Dobio sam sada datoteke 0001.xls;0002.xls........medjutim preko potrebno bi mi bilo da mogu da uradim sledece: oformim jednu posebnu svesku recimo analiza.xls u istom direktorijumu a u njoj "pocupam" odredjene celije iz svake datoteke koju sam napravio (0001.xls;0002.xls.....) recimo da su to polja brfakture,nazivfirme,datumfakturisanja. Na taj nacin bih mogao da pratim niz dogadjaja na dalje. Ima li neko ideju kako da zapravo napravim jednu tabelu svih datoteka odnosno pojedinih celija iz njih.
[ Brz_na_tastaturi @ 08.01.2007. 15:33 ] @
To je izvodljivo preko vba koda ako su podaci jednobrazni tj ako su polja koja su ti potrebna u zbirnoj tabeli isto rasporedjena u pojedinačnim tabelama.
Za neko detaljnije objašnjenje bilo bi poželjno da postaviš neki fajl sa primerom.
[ printer @ 08.01.2007. 21:04 ] @
E sad ovako detalji: u istom direktorijumu se redjaju fakture 0001.xls;0002.xls;itd Tu je takodje i izdatefakture.xls. U njoj te potrebno napraviti u stvari tabelu ciji su podaci tj polja isti. Potrebno je da se ona automatski updatuje svaki put kad se pokrene tj. da se uvek popuni podacima iz najnovije 0890.xls. Shvatljivo je da ova izdatefakture.xls sluzi za dalju analizu izdatih faktura sto cu nadalje nadam se umeti sam. Put svega ovoga je "d:\firma2007\fakture\". Polja koja je potrebno "povezati" se nalazi u izdatefakture.xls. Pa eto u napred zahvaljujem.
[ Brz_na_tastaturi @ 10.01.2007. 22:04 ] @
Ovo bi trebalo da ti odradi to što ti treba.
Zameni tvoj fajl izdatefakture.xls fajlom iz priloga.
Samo ovo ne radi automatski da bi odradilo to što ti treba pokreni makro PrikaziZbirno.
Ovaj makro ne menja fajlove u kojima su pojedinačne fakture.
Iako ti ovaj način preuzimanja podataka o kupcima vrši posao mislim da bi to moglo elegantnije da se reši preko vba koda, na sličan način na koji se u ovom fajlu preuzimaju podaci iz pojedinačnih faktura.
[ Jpeca @ 11.01.2007. 08:26 ] @
Ne znam da li je elegantnije, ali moglo bi da dodaš na original fakturi dugme Izdato. To dugme povežeš sa makroom AzurIzdate. Nakon snimanja i izdavanja fakture moraš da klikneš na dugme kako bi se nova faktura dopisala u tabelu Izdate fakture. Kod za makro je sledeći:
Code:

Sub AzurIzdate()
' Azurira radnu svesku izdatih faktura sa podacima iz tekuce radne sveske
' P.Jovanovic 10/1/2007 za elitesecurity.org
'
Dim wbkIzdate As Workbook
Dim rwLast As Long
Dim shDest As Worksheet
Dim shSource As Worksheet

' Otvori IzdateFakture
Set wbkIzdate = Application.Workbooks.Open(ThisWorkbook.Path & "\IzdateFakture.xls")
' Dopisi podatke o izdatoj fakturi
Set shDest = wbkIzdate.Worksheets(1)
Set shSource = ThisWorkbook.Worksheets(1)
rwLast = shDest.Range("A65535").End(xlUp).Row + 1

shDest.Cells(rwLast, 1).Value = shSource.Range("C16").Text ' Broj fakture
shDest.Cells(rwLast, 2).Value = shSource.Range("B8").Text ' Nazivfirme
shDest.Cells(rwLast, 3).Value = shSource.Range("F16").Value ' Datum prometa
' itd za ostale potrebne kolone

' Snimi promene i zatvori IzdateFakture
wbkIzdate.Close SaveChanges:=True

End Sub

Kod se može staviti i u događaj Save Workbooka. Ovakva realizacija je automatska, ali komplikovanija. U tom slučaju moralo bi se voditi računa da li je već faktura upisana u listu izdatatih, pa ako jeste da se nađe i azuriraju podaci o njoj, a ako ne da se dopiše - kao u gornjem slučaju.
[ Brz_na_tastaturi @ 11.01.2007. 14:08 ] @
Pod 'elegantnije' sam mislio u odnosu na njegovo rešenje za upis podataka o klijentu na novoj fakturi, jer bi meni smetalo kad svaki put otvorim fakturu da mi se pojavljuje ono pitanje za update linked data souces, a preko vba koda bi mogao da ubaci vrednosti u polja i da svaka faktura bude 'normalan' tj samostalan dokument.
Možda je ovo tvoje rešenje jednostavnije jer se vrednosti iz konkretne fakture odmah u upisuju u zbirnu, a rešenje koje sam ja dao svaki put očitava sve fakture iz foldera.
[ printer @ 11.01.2007. 15:43 ] @
Sto je elegantno nego je jednostavnije. Ne zelim da kudim pomoc koja mi je koristila jer fakture tako rade kako je predlozeno.No istini za volju stvarno me zapitkuje svaki put da li da updatuje i sta god da mu ja kazem on podigne redni broj fakture. Osim toga ako mi je potrebno da posebno pozovem neku vec ranije deponovanu fakturu dogadja se isto- promeni beoj fakture. Ovo kao primedba ako neko hoce i ima interes da to resi kod sebe, ali iskreno meni ne smeta. Ono sto mi je bilo bitno to ste resili i to radi. Sto se tice ovog poslednjeg to jos nisam probao, pa kad to 'apsolviram' javicu se.
UUps ovo nesto nije ok. Zamenio sam izdatefakture.xls ali mislim da to nije taj fajl jer po sastavu polja nije kao moj fajl a pored toga u njemu ne postoji macro. Ne znam da li si okacio pogresan fajl ili sam ja bio nejasan u objasnjenu problema. Problem sa izdatim fakturama.xls je u tome da u njoj treba da su podaci iz svih izdati faktura:

___________________________________________________________________________________________
broj fakture I naziv I iznos za robu I iznos PDV I ukupno sa PDV
--------------------------------------------------------------------------------------------------------
0001 I doo Raca I 1000,00 I 180,00 I 1180,0
--------------------------------------------------------------------------------------------------------
0002 I gashgflajf I 500,00 I 90,00 I 590,00
--------------------------------------------------------------------------------------------------------
itd...........
____________________________________________________________________________________________

dakle ovaj xls snima stanje u direktorijumu fakture i iz svake vadi podatke i smesta u svoju tabelu.


[Ovu poruku je menjao printer dana 11.01.2007. u 17:11 GMT+1]
[ Brz_na_tastaturi @ 11.01.2007. 21:11 ] @
Izvini, pogrešan fajl.

[ printer @ 14.01.2007. 09:42 ] @
E, ovo ne da radi nego je skroz ono sto mi je trebalo. HVALA LEPO jos jednom i topli pozdravi svima!
[ printer @ 14.01.2007. 19:08 ] @
Stvarno radi, sto jest jest, medjutim kad uradim start macro izlistaju se sve fakture u direktorijumu i iscitaju 'potrebna polja' ali se uocavaju dva problema;
1. kada ispisuje u tabelu broj procitanih fajlova na kraju doda jos jedan red u kome upisuje nule, znaci ako imam 5 datoteka koje su iscitane u 5 redova je sve OK alu u sestom redu su ispisane nule.
2. dodao sam i polje recimo h5 koje je =count(A5:A300) sto znaci da bi ono trebalo da izbroji broj iscitanih datoteka.Kada ispisem formulu ona radi, medjutim ako ponovo pokrenem Macro polje H5 se izbrise uredno sa sve formulom.
E sad situacija: Sto se tice 'laznog broja' redova to bi mozda bilo i nebitno (mogao bih nesto da 'sklempam') medjutim to sto mi makro pobrise ovo polje mi je jako bitno. Bitno je zato sto bih slicno uradio da saberem vrednosti recimo kolone 'pdv' 'ukupan iznos' i slicno. Kao sto sam rekao ovakva tabela mi treba da bih mogao nadalje da analiziram podatke.
Uz izvinjenje sto dosadjujem i nadu da ce te razumeti moj problem, u napred vam se zahvaljujem.
Pozdrav printer
[ Brz_na_tastaturi @ 15.01.2007. 00:36 ] @
1. Te nule se javljaju zato što u tom folderu imaš još neki excel fajl osim faktura, fakturaroiginal i izdate fakture, a pretpostavka je bila da nema drugih excel fajlova (suviše optimistično izgleda), to može se ispravi.

2. I to moze da se ispravi, trenutno macro pre ucitavanja briše sva polja od a5 do poslednjeg upotrebljenog polja. Postavi ponovo primer tog fajla sa položajem tih dodatnih polja koji bi trebalo da ti sluze za analizu.