[ Sudarica @ 25.01.2007. 21:05 ] @
Pozdrav,

Trebala bih pomoć kod izdvajanja podataka iz Popisa u Tabelu. Pokušala sam snimiti makro jer se ovaj posao ponavlja svaki mjesec. Broj redova može biti veći ili manji ali broj stupaca i raspored ostaje isti.
Ovako probala sam koristiti filtere međutim

1. nije mi dobar format datuma pa sam ga morala formatirati u korisničkoj
2. neće mi kopirati filtere, - dok snimim makro i ponovno ga pokrenem on jednostavno sve obriše
3. nije mi dobar makro dok zbrojim stupac D i I - dok ga kopiram u sljedeći red, odnosno povučem, ne radi dobro



Usput - često koristim Podzbrojeve, i imam problem sa makro naredbom. Dok radim pješke, kako mi to kažemo, ja koristim Podatke-->Podzbrojeve i prilikom kopiranja koristim CTRL-->C pa iz međuspremnika kopiram na drugi radni list - to u makro naredbi ne radi.

Pokušala sam sve moguće ali neide
Neću okolišati trebam pomoć i to jako pa odmah ću prikačiti primjer da se više ne mučim Hvala vam

Još jednom da ponovim Trebam iz Popisa izdvojiti sve ono što je veće od 31.12.2006 i upisati u tabelu svako u svoju kolonu i moram ju formatirati točno tako kako izgleda na listu2 i pospremiti je na Predložak.koji mi se nalazi C: \Ulaz-Izlaz\Predložak.xls

Hvala
[ Jpeca @ 26.01.2007. 08:10 ] @
Pošto su ti makroi komplikovani, pokušaću da napravim rešenje sa izvedenim tabelama (pivot).

Pre svega neke napomene o organizovanju podataka:
1/Lista podataka treba da ima zaglavlje - Excel će lepo iskoristi zaglavlje za labele u dijagramu, sortiranje, izvedene tabelame...
2/ Lista podataka ne sme da ima prazne redove - kao kod tebe redove koji odvajaju grupe podataka. Ako sortiraš listu po nekoj koloni koja ima prazne ćelije lista će biti haotična. Kako god se lista sortira ona treba da ostane korektna. Prazni redovi mogu da daju pogrešne informacije ako treba prebrojavanje ulaza/izlaza i dr.

Za početak objasni šta koja kolona u listu Popis znači, i šta se sa čim sabira i oduzima da se dobiju podaci u listu Tabela.
[ Sudarica @ 28.01.2007. 16:20 ] @
Ispričavam se što nisam odmah odgovorila a i što sam poslala tako sve neorganizirano, ali tako sam se loše osjećala. Htjela bih raditi sa makroima i napravila sam si puno toga nakon Vaše pomoći sa spiskom Iskoristila sam Vaše naredbe ugrađujući ih u svoje i sve funkcionira savršeno i onda ne znam kopirati filter. Čak sam si ugradila code da mi ne blica ekran prilikom rada makroa. Idemo na posao.

Ovako,

Prvo u Popisu moram maknuti sve ono što je manje ili jednako 31.12.2006 u Stupcu G (sljedeći mjesec će to biti 31.1.2007.) Sada su mi ostali podaci koje koristim i raspoređujem u Tabelu.

Filterima izdvojim u Stupcu A "96 Ulaz" zatim:
1. U stupac A Tabele prepisujem podatke iz Stupac B iz Popisa
2 U stupac B Tabele prepisujem podatke iz Stupca C iz Popisa
3 U stupac C Tabele prepisujem podatke iz Stupca E iz Popisa
4 U stupac D Tabele zbroj podataka iz Stupca D i Stupca I

Filterima izdvojim U stupcu A "92 Izlaz"
5 U stupac E Tabele prepisujem podatke iz Stupca E iz Popisa
6 U Stupac F Tabele prepisujem podatek iz Stupca H iz Popisa
7 U Stupac G Tabele prepisujem podatke iz Stupca I iz Popisa
8 U Stupac H Tabele prepisujem podatke iz Stupca F iz Popisa
9 U Stupac I Tabele prepisujem podatke iz Stupca G iz Popisa

Mislim da je to ono što ste me pitali

Pozdrav

PS.
Gdje bi Vas mogla pitati o izvođenju coda koji počinje sa Public, Private, Function ili možda ima nekakav tutorial na kojemu je sve opisano kada gdje i kako se koriste. Odnosno sve od samog početka za totalne neznalice (malo starije kako sam ja). Sve ono što počinje sa Sub i završava sa End Sub znam kako primjeniti osim naravno kopiranja filtera ili Subtotala.


[ Jpeca @ 29.01.2007. 14:38 ] @
Datumi ti nisu ispravno uneseni. Verovatno koristiš regionalna setovanja US, a unos je poštujući lokalna regionala stovanja. Tako unesene datume Excel tumači kao tekst i nećeš ih moći upoređivati niti filtrirati. Dakle prvo treba da koriguješ datume. Podesi regionalna setovanja na English-UK. Koristeći Replace, tako što označiš kolone kolone F i G i izvršiš zamenu svih . (tačka) u /(kosu crtu). Ako je OK, zapamti ovaj fajl pa vrati regionalna setovanja.Ako ovo često radiš , razmisli da promeniš regionalna setovanja.

Za filtiriranje popisa možeš iskoristiti sledeći kod:
Code:

Sub PostaviFilter(datKraj As String)
'
' PostaviFilter
'
' Filtrira list Popis po koloni G, tako da se prikazu samo redovi za koje
' je u koloni G datum veci od datKraj
' datKraj mora da bude u formaty mm/dd/yyyy
'
' P.Jovanovic za elitesecurity.org
'
   
    Columns("G:G").AutoFilter Field:=1, Criteria1:=">" & datKraj
End Sub


Filtriranje pozivaš zadavanjem odgovarajućeg datuma npr:
Sub Test()
PostaviFilter "12/31/2006"
End Sub


Pošto danas nemam više vremena, proveri da ovo radi pa nastavak nekom drugom prilikom. Koliko sam shvatio za jedan artikl(? ili već šta je u koloni B i C) može da bude samo jedan ili nijedan red za ulaz i jedan ili nijedan red za izlaz u filtriranoj listi? Ako nije tako da li se sabiraju vrednosti za isti artikal?


Vezano za pitanja o Public, Private - pronadji neku dobru knjigu za VisualBasic - I VBA je ustvari verzija Visual Basic-a koji podržava objektni model Excela (i drugih Offica aplikacija) - dodate su mogućnosti pristupa radnom listu, ćeliji, dijagramu... To će ti sigurno koristiti da bolje razumeš kod.
[ Jpeca @ 31.01.2007. 08:04 ] @
Nastavljajući dalje primetio sam da ti ni brojne vrednosti u kolni I nisu ispravene - unesene su kao tekst (zarez umesto decimalne tačke), pa i to treba srediti sa Replace. Nakon toga kod za prepisivanje jednog reda možeš da koristiš sledeći kod:
Code:

Sub PrepisiRed(shSource As Worksheet, rwSource As Long, shDest As Worksheet, rwDest As Long)
' Prepisuje jedan red sa jednog lista na drugi prema zadatim pravilima
' zavisno da li se radi o ulazu ili izlazu
'
' P.Jovanovic za elitesecurity.org     31/1/2007
'
    'Prepisi broj i naziv
     shDest.Cells(rwDest, 1).Value = shSource.Cells(rwSource, 2).Text
     shDest.Cells(rwDest, 2).Value = shSource.Cells(rwSource, 3).Value
    If shSource.Cells(rwSource, 1).Text = "96 Ulaz" Then
    'Formiraj ulaz
     shDest.Cells(rwDest, 3).Value = shSource.Cells(rwSource, 5).Value
     shDest.Cells(rwDest, 4).Value = shSource.Cells(rwSource, 4).Value _
                       + shSource.Cells(rwSource, 9).Value
    Else  ' 92 Izlaz
    'Formiraj izlaz
     shDest.Cells(rwDest, 5).Value = shSource.Cells(rwSource, 5).Value
     shDest.Cells(rwDest, 6).Value = shSource.Cells(rwSource, 8).Value
     shDest.Cells(rwDest, 7).Value = shSource.Cells(rwSource, 9).Value
     shDest.Cells(rwDest, 8).Value = shSource.Cells(rwSource, 6).Value
      shDest.Cells(rwDest, 9).Value = shSource.Cells(rwSource, 7).Value
    End If
End Sub

Sad se može ovo prethodno iskoristiti za prepisivanje red po red nakon što se postavi filter. Kako sam ja shvatio može da bude samo jedan ili nijedan red za ulaz i jedan ili nijedan red za izlaz u filtriranoj listi za isti artikal i ti redovi se prepisuju u isti red Tabele.
Code:


Sub Prepis()
' Glavni program koji postavlja filter i poziva prepisivanje redova
' za sve redove koji zadovoljavaju kriterijum
'
' Na kraju se iskljucuje filter
'
Dim shP As Worksheet
Dim rwKraj As Long
Dim r As Long
Dim rDest As Long
Dim prethodni As Variant
 PostaviFilter "12/31/2006"
 Set shP = Sheets("Popis")
 rDest = 2  ' Pocetni red u tabeli -1
 rwKraj = shP.Range("A65534").End(xlUp).Row  ' Krajnji red popisa
 For r = 2 To rwKraj
   If shP.Rows(r).Hidden Then GoTo Sledeci ' Preskoci skrivene redove
   If shP.Cells(r, 2).Value <> prethodni Then  ' Da li je artikal razlicit od prethodnog
      prethodni = shP.Cells(r, 2).Value
      rDest = rDest + 1
   End If
   PrepisiRed shP, r, Sheets("Tabela"), rDest
Sledeci:
 Next r
 'Iskljuci filter
 shP.AutoFilterMode = False
End Sub



Ako je ovo to što ti treba naknadno treba dodati formatiranja Tabele
[ Sudarica @ 31.01.2007. 20:44 ] @
Ispričavam se što se nisam javila prije, malo sam imala zdravstvenih problema ali sada je sve u redu

Da ta datoteka je prenešena iz jednog drugog programa u kojem inače radim. Kada prenesem podatke oni su obično *.txt i takvi su ne mogu ih promjeniti. Tražila sam da se to prilagodi program ali neide. Imam problema sa iznosima tako da mi npr. 3.23 pretvara u datum jer je točka umjesto zareza. Inače mjenjam sa replace. Datum me jako namučio, pokušala sam sa podaci --> tekst u stupce i tamo stavljala datum. Ustvari datum mi se promjenio u tekst kada sam makro naredbom pozvala da mi se određene datoteke koje su bile *.txt spoje u jednom radnom listu. Kada sam to napravila dobila sam ono što sam vama poslala. Poslije sam probala promjeniti datum na sve moguće načine ali filteri nisu bili u redu.
Sada ću pokušati napraviti tabelu prema ovom što ste mi napisali, ako zapnem javit ću se.
Pozdrav
[ Sudarica @ 04.02.2007. 17:50 ] @
Molim pomoć, (tiče se kopiranja zato i pitam ovdje a radila sam i na ovoj tabeli dok mi se dogodilo ovo)

Blokirala sam si Copy, odnosno vjerojatno mi je ostalo nešto ne uljepljeno i nemogu više ništa kopirati. Često mi se javlja poruka da mi je međuspremnik pun, a dok ga pozovem unutra nema ništa. Zadnje što se sjećam je da sam makro naredbom pozvala da mi se otvori radna knjiga iz koje sam kopirala i uljepila kopirano u drugu radnu knjigu. Pošto mi to nije bilo kako treba ja sam izbrisala taj modul (jer je bio ogroman) i ne znam da li to ima kakve veze sa tim. Isprobala sam dali mi Copy radi u drugim porgramima i radi sve kako treba, samo mi ne radi u Excelu. Šta da napravim i kako da rješim problem. Dali si mogu poremetiti rad drugih naredbi u Excelu makro naredbom, ne znam koliko sam jasna, recimo da si blokiram neke druge naredbe ili da promjenim njihovo svojstvo. Odnosno koliko su makroi opasni za neznalice kao što sam ja.

Hvala
Pozdrav
[ Jpeca @ 05.02.2007. 07:41 ] @
Da li si probala kopiranje iz menija( ribon trake), ili samo CTRL+C. Proveri i jedno i drugo.

Ako si makroe stavljala tako da budu dostupni samo u određenoj radnoj svesci, a greška se dešava bez obzira koja je radna sveska korišćena ovo ne bi trebalo da ima veze sa makorima.

Ako sumnjaš da je problem u nekom makrou, stavi Security na High tako da se ne startuju makroi. Onda onda probaj da li ti Copy uopšte ne radi u Excelu - Npr. otvori praznu svesku upiši nešto u ćeliju A1 pa pokušaj da kopiraš? Ako ne radi probaj repair Offica iz Control Panela.

Ako Copy radi kad su makroi isključeni, ponovo uključi startovanje makroa, pa kad ti se javi greška otvori Office Clipboard i proveri šta tamo ima. Ako je Office Clipboard popunjen - očisti ga (Clear All) pa prati šta se dešava i kad počinje da se puni. To će ti možda reći o kom makrou je reč, pa možeš da ga izmeniš/izbrišeš.
[ Sudarica @ 05.02.2007. 19:19 ] @
[quote]Jpeca
Da li si probala kopiranje iz menija( ribon trake), ili samo CTRL+C. Proveri i jedno i drugo.

Dok kopiram Ca Ctrl+C radi, ne radi jedino na desni klik miša i u Edit--> Copy. Za sada se služim sa Ctrl+C

Uključila sam Security na High, probala i stanje je isto, ne radi. Znači da makro nije kriv, sada mi je ostalo ono treće "repair Offica iz Control Panela". Nisam baš puno dirala Control Panel. Čini mi se da ovo znači nekakvo obnavljanje (repair). Neznam kako se radi s tim

Office Clipboard mislite na Clipboard iz Edit ako je to nemam ništa unutra, sve sam pobrisala.
Hvala
Pozdrav
[ Sudarica @ 06.02.2007. 18:14 ] @
Sve sam probala neide.Čekat ću vikend pa ću zamoliti nekoga da mi pogleda Control Panel. Za sada sam si iz Trake alata --> odrednice izvukla Copy, Cut i sada to radi ali ne radi na Edit i na desnom gumbu miša, a desni gumb najviše koristim.

Znam zašto mi ne valjaju datumi u mojoj tabeli. Imam puno datoteka koje sam prenjela iz svog programa i nisam ih pospremila u .xls nego sam napravila makro koji to radi ali on kod čarobnjaka jednostavno promjeni datum u text i to je to.

Makro mi obavi dosta posla kod tabele pa ću dalje raditi onako kako sam radila i prije dok ne shvatim sve ono što mi još treba kod makroa. Učit ću.

Nastavit ću ovu temu dok malo proučim Visual Basic u Excelu uz pomoć knjiga koje sam nabavila.

Hvala na razumjevanju i pomoć.
Pozdrav