[ castor @ 05.07.2006. 11:53 ] @
Imam problem i treba mi pomoć u Excelu.
Imam 60-tak radnih listova u jednoj radnoj knjizi. Na svakom listu je tablica sa određenim operacijama i vremenom trajanja tih operacija (u ćeliji B1 je naziv operacije, a u E2 trajanje operacije, itd...). Imam i formu za printanje koja se također nalazi u toj radnoj knjizi. Mene zanima sve operacije na svim radnim listovima povezati sa tom formom za printanje, na način da mi se kopira i naziv i trajanje određene operacije u print formu. Trebao bi napraviti Gumb koji kad kliknem da mi kopira npr. ćeliju B1 sa određenog lista u ćeliju B15 na print formi. Isto tako i vrijeme, znaci E2 u G15. E sad nastaju problemi. Na radnim listovima imam više takvih operacija koje mi se podudaraju u ćelijama, pa mi se događa prebrisavanje ili preskakanje ćelija u print formi. Treba mi makronaredba koja prepoznaje ako je u nekoj ćeliji već nešto napisano, pa kopirani tekst lijepi u ćeliju ispod.
Nadam se da nisam previše zakomplicirao.

Evo link na primjer otprilike šta mi treba:

http://rapidshare.de/files/24985895/Primjer.xls.html
[ Jpeca @ 05.07.2006. 12:43 ] @
Evo kako da se pozicioniraš u prvu praznu ćeliju u koloni G iz makroa

Range("G65536").End(xlUp).Offset(1, 0).Select

Izvor: www.praktikum.co.yu - Kako otkriti najnižu ćeliju

Pripis iz drugog lista, drugog reda, pete kolona u prvu praznu ćeliju print forme bi mogao da izgleda ovako:
Code:

Sheets(1).Range("G65536").End(xlUp).Offset(1, 0).Value = Sheets(2).Cells(2, 5).Text


[ castor @ 06.07.2006. 08:12 ] @
Hvala lijepo na odgovoru, ali nisam uspio napraviti sto sam htio. Nadam se da ne trazim previse, ali bi li mi mogao malo detaljnije objasniti sta treba napraviti, jer ja nikako ne uspjevam.
[ Jpeca @ 06.07.2006. 08:52 ] @
Evo kod koji vrsi prepisivanja - pre startovanja makroa treba da se nadjes u prvom redu bloka koji prepisujes !

Code:


Sub prepisi()
' Prepisuje podatke iz tekuceg bloka u Print formu na listu 1
' P. Jovanovic za elitesecurity forum
'
Dim rc As Integer     ' tekuci red
Dim rend As Integer  ' krajni red bloka 
Dim rmax As Integer  ' red za upis

rc = ActiveCell.Row  ' Pre startovanja makroa aktivan treba da bude prvi red iz bloka koji se prepisuje
rend = ActiveSheet.Cells(rc, 5).End(xlDown).Row ' Nalazi kraj bloka sa podacima o trajanju
rmax = Sheets(1).Range("G65536").End(xlUp).Offset(1, 0).Row  ' Nalazi prvi prazan red na Print formi
' Upis
Sheets(1).Cells(rmax, 2).Value = ActiveSheet.Cells(rc, 2).Text
Sheets(1).Cells(rmax, 7).Value = ActiveSheet.Cells(rend, 5).Value
End Sub


[ castor @ 07.07.2006. 11:20 ] @
Hvala ti puno..Spasio si me..
[ castor @ 10.07.2006. 12:08 ] @
Sorry sta gnjavim al imam jos jedan mali problem. Zasto mi nece da kopira operaciju i vrijeme koji su u istom redu? To se vidi u Aktivnosti 7 u privitku.

http://rapidshare.de/files/25440745/Primjer.xls.html
[ Jpeca @ 10.07.2006. 13:25 ] @
Nisam uspeo da downloadujem primer, ali pogledao sam kod i da pokušam da odgovorim ovako napamet. Izgleda da je problem u delu gde se traži kraj bloka sa podacima
Code:

rend = ActiveSheet.Cells(rc, 5).End(xlDown).Row 

Ukoliko je taj blok sam jedan red on ga preskoči i ode na početak sledećeg bloka ili kraj lista - mora da se napravi neki komplikovaniji uslov a nalaženje kraja bloka npr. Ispitati da li je naredni red prazan - kraj bloka, pa u zavisnosti od toga. Dakle zameni prethodni red sa:
Code:

' Nalazi kraj bloka sa podacima o trajanju
If ActiveSheet.Cells(rc + 1, 5).Text = "" Then
   rend = rc  ' Blok iz jednog reda
Else
  rend = ActiveSheet.Cells(rc, 5).End(xlDown).Row
End If
[ castor @ 11.07.2006. 11:23 ] @
To je to..Hvala puno..
[ castor @ 12.07.2006. 15:59 ] @
Mozda sam već postao naporan, al ko pita ne skita..bar se nadam..:)
Kako napraviti makro da mi određenu ćeliju dijeli sa određenim brojem..na priloženom primjeru, u print formi stavio bi 5 dugmeta. svako dugme bi dijelilo određenu ćeliju sa određenim brojem, npr. dugme 2 sa 2, itd..znaci, oznacim ćeliju sa upisanim vremenom, i kliknem na dugme sa određenim brojem s kojim se dijeli ta ćelija.
Nadam se da nisam previše zakomplicirao..
[ Jpeca @ 13.07.2006. 11:56 ] @
Misliš na operaciju split ćelije (kao u Wordu)?

Split ćelije u Excelu nije moguće osim ako ćelije nisu prethodno spojene - merge. Naravno moguće je simulirati nešto tako: ubaciti nove ćelije pa onda spajati susedne ćelije - ali je ovo u potpunoj suprotnosti sa logičnom organizaciojm tabele u Excelu i znatno otežava korišćenje funkcija.
Takođe moguće je podeliti unesen tekst u više susednih ćelija ako to želiš ...

[ castor @ 13.07.2006. 13:20 ] @
Nisi me shvatio..želim djeliti vrijednost unutar ćelije, a ne ćeliju..npr. u celiji G15 imam vrijednost 109:26 (sati:minute), i sad zelim napraviti 5 gumbova, koji će tu ćeliju kad je označim djeliti sa određenim brojem, koji je pridodan pojedinom gumbu.
[ Jpeca @ 13.07.2006. 14:07 ] @
Nije mi jasno čemu to služi, ali je lako. Napraviš makro koji deli vrednost aktivne ćelije sa zadatim brojem n
Code:

Sub podeli(n As Integer)
    ActiveCell.Value = ActiveCell.Value / n
End Sub

Onda napraviš makro koji poziva prethodni makro sa parametrom koji želiš
Code:

Sub Deli2()
  podeli (2)  ' poziva deljenje sa 2
End Sub

i dodeliš taj novi makro dugmetu.

Usput deljenje može da se obavi i prilikom procesa kopiranja.
1/ Uneseš u neku ćeliju vrednost imenioca npr 3.
2/ Uradiš copy te ćelije
3/ Selektuješ ćeliju koju deliš - brojioc npr. 21
4/ Aktiviraš Edit >> Paste Special, izabereš opciju Divide i vrednost selektovane ćelije je podeljena sa kopiranom (rezultat je 7 u primeru)
[ castor @ 16.07.2006. 22:34 ] @
Hvala ti puno još jednom..
[ castor @ 25.07.2006. 10:36 ] @
Evo ja opet zapeo..
Kako napraviti da mi kopira tekst (bez vremena) u tocno određene ćelije, bez da mi prepiše već upisani tekst..Malo sam preradio print formu tako da pri vrhu imam 6 ćelija koje su spojene u tablicu (B8, B9, B10, E8, E9 i E10). Zelim napravit slicnu stvar kao i prije, al da mi popunjava samo te ćelije, znaci ako je npr. B10 upisana da mi slijedeći tekst upisiva u E8.
[ Jpeca @ 25.07.2006. 10:53 ] @
Ajde uploaduju novi primer uz poruku da se prisetim o čemu se radi. Ako ti nije teško napravi rekapitulaciju - biće od pomoći.
[ castor @ 25.07.2006. 11:55 ] @
evo link od primjera:
http://rapidshare.de/files/26942374/Primjer2.xls.html

[ Jpeca @ 25.07.2006. 12:21 ] @
Pa nije problem da se preradi postojeći kod za ovaj slučaj, ali to zahteva da odeš na stranicu Imena selektuješ neko ime, pa klik. Selektuješ sledeće ime pa klik. Pri tom ne vidiš šta se desilo na "Print formi". Čini mi se pametnije (a i jednostavnije) da koristiš validaciju. Vidi primer, pa ako ti odgovara potraži na forumu uputstva kako da kreiraš listu za validaciju na osnovu postojeće liste - bilo je već toga. Ukoliko se ipak odlučiš za makroe - pokušaj sam da prepraviš postojeći kod, nije teško samo zameni nazive listova, opsege ćelija i sl. Ja ću ti pomoći ukoliko imaš neki problem.
[ castor @ 27.07.2006. 06:53 ] @
Imaš pravo. Toga se nisam ni sjetio. Hvala puno još jednom..