[ srdjanm3 @ 08.11.2006. 11:24 ] @
Problem je malo komplikovaniji nego sto je naziv teme ( bar za mene ). E ovako, kako bih se vezao za neku celiju ( ali bez $ ) u odnosu na neku drugu celiju. Treba mi sledeca varijanta: u jednom sheetu imam gomilu tabela koje se razlikuju samo po broju redova (sto zapravo i stvara problem).

Celija npr C3 je fixna,ali za svaku tabelu razlicita je njena vrednost ( znaci za jednu tabelu vrednost je recimo 10, a za sledecu je 5 i tako se menja od tabele do tabele). U tom redu 3 se vise nista ne unosi, sledeci je red 4 u kom se racuna i sada: E4 = C3-D4, E5 = C3-D5.....E11=C3-D11 (11 je broj redova prve tabele) Kad sam napravio tu prvu tabelu onda mi je ona matrica i nju onda samo kopiram dalje jednu ispod druge i koristim za dalji racun. E sada kad kopiram tabelu onda celija c3 vise nije c3 nego recimo c14( sto zavisi od broja redova prve tabele jer je ova sledeca odmah ispod nje). Sada celija e15 nije e15=c14-d15, kao sto bi trebalo zato sto se celija c3 pomerila.

1. Ako formulu pisem sa E4=$C$3-D4, onda to vazi samo za prvu tabelu (nadam se da je to jasno)
2. Ako idem sa E4 = $C3-D4, onda ce E5 = $C4-D5, a to mi ne valja (jer mi vrednost celije c treba fixna a ne da se pomera po redovima)
3. Ako recimo napisem rucno celu prvu tabelu bez ikakvih znakova E4=C3-D4 onda kad kopiram celu tabelu bice sve ok ( znaci gde god dole da je kopiram i jedna i druga celija ce se pomeriti tacno za odredjenu vrednost i tada ce sve biti ok. ALI, problem je sto nema svaka tabela isti broj redova i onda kad ubacim nekoliko redova kad mi zatreba i kopiram formulu od gore opet ce se celija c3 pomeriti po redovima

Pitanje: Kako da kopiram tabelu, koja mi sluzi kao matrica, koliko hocu puta a da ne moram stalno rucno da prepravljam formulu za kolonu E?

Da li je moguce nekako preko makroa? U attachmentu je primer kako izgleda. E sada celiju e15 prvo rucno promenim da bude c14-d15 pa je onda kopiram dole do kraja tabele. Problem je sto imam milion tablela
[ Jpeca @ 09.11.2006. 07:51 ] @
Citat:
Ako recimo napisem rucno celu prvu tabelu bez ikakvih znakova E4=C3-D4 onda kad kopiram celu tabelu bice sve ok ( znaci gde god dole da je kopiram i jedna i druga celija ce se pomeriti tacno za odredjenu vrednost i tada ce sve biti ok. ALI, problem je sto nema svaka tabela isti broj redova i onda kad ubacim nekoliko redova kad mi zatreba i kopiram formulu od gore opet ce se celija c3 pomeriti po redovima

Kod mene ovo funcioniše ispravno - ukoliko sam razumeo šta hoćeš.

Može naravno i da se napravi makro koji kopira šablon i kreira potrebne formule. Pri tome uzeo sam da je kolona sa problematičnim formulama poslednja kolona iz oblasti koja se kopira.

Code:

Sub CopyTbl()
Dim rngSource As Range
Dim rngDest As Range
Dim rngFormula As Range
Dim Fiks As String
Dim c As Range

' Izbor za kopiranje 
Set rngSource = Application.InputBox("Selektuj šablon tabelu:", _ 
              "Oblast za kopiranje", Type:=8)
If (rngSource Is Nothing) = True Then Exit Sub

Set rngDest = Application.InputBox("Selektuj gde se kopira:", _
                 "Odredišna celija", Type:=8)
If (rngDest Is Nothing) = True Then Exit Sub

' Kopiranje 
rngSource.Resize(ColumnSize:=rngSource.Columns.Count - 1).Copy
rngDest.PasteSpecial
Application.CutCopyMode = False

' Izmena kolone sa formulom
Fiks = rngDest.Cells(1, 1).Address(ColumnAbsolute:=False)
Set rngFormula = _
   rngDest.Offset(RowOffset:=1, ColumnOffset:= _
    rngSource.Columns.Count - 1).Resize(RowSize:=rngSource.Rows.Count - 1)
For Each c In rngFormula
   c.Formula = "=" & Fiks & "-" & _
     c.Offset(ColumnOffset:=-1).Address(RowAbsolute:=False, ColumnAbsolute:=False)
Next c

End Sub

[ srdjanm3 @ 09.11.2006. 09:36 ] @
Hvala za makro, radi mada javlja da ima neku gresku ali iskopira ok, ali problem je ostao.
Ne znam kako bih objasnio ovako preko poruka. Probacu opet, ako bude isto kao i prethodna oruka izvinjavam se.
Znaci, radi se o tome sto u celiju Cx (ako je x proizvoljan red) upisujem neku vrednost koja je na vrhu tabele i koja mi treba za racun u toj tabeli. Celija u kojoj se nalazi formula koja uzima tu vrednost je Ex+1 u stvari cela kolna E(znaci samo jedan red nize). E sad formula je Ex+1 = Cx-Dx+1. E sada, kad napravim prvu tabelu bez ikakvih unosa (znaci napravim samo formule, a ne unosim nikakve vrednosti) onda mi je ona dalje osnova za dalji racun. Recimo sada da mi treba 10 takvih tabela, i sada kad kopiram tu tabelu dole onda mi formula u nekom Y redu bude:

1. Ey+1=Cx-Dy+1, ako sam u prvoj tabeli napisao formulu sa $C$x

2. Ey+1=Cy-Dy+1, ako sam u prvoj tabeli napisao formulu bez icega (bez $$) - OVAKO TREBA DA BUDE

Medjutim, druga formula (koja je dobra) je problematicna kad treba da ubacim posle jedan red (znaci kad sve zavrsim i vidim recimo da sam zaboravio nesto da ubacim. I onda idem insert row i on mi razmakne dva reda i ubaci naravno prazan red. E sada posto ta tabela ima 11 kolona (A,B,C,D,E,F....) i u svima njima su neke formule i podaci koji se u poslednjoj koloni koriste za krajnji rezultat, ja moram da kopiram jedan od vec postojecih redova iznad ili ispod u taj red da bi imao sve te formule. Nadam se da je to jasno. I kad postojeci red iskopiram u taj novi prazan red onda se remeti formula 2 zato sto je napisana bez ikakvih znakova ($$). Probacu da objasnim i to. Znaci ako hocu kompletan red Y+1 od 11 kolona da kopiram u prazan red Y+2, onda formula bude:

1. Ey+2=Cy+1-Dy-2, znaci celija Cy se pomerila za jedan red dole, a nije smela. Znaci da je u toj tabeli formula bila zapisana sa $$ onda se ovo ne bi desilo, ali ne moze se napisati sa $$ jer je to kopirana prethodna tabela i da je gore pisano sa $$ ostala bi celija Cx iz prve tabele.

Znaci idealno bi bilo kada bi formulu pisao sa $C$x za prvu tabelu zato sto onda mogu da umecem i radim sta hocu, ali kad kopiram tabelu bi trebalo da bude bez $$. A kad se iskopira tabela odmah u tom trenutku mi opet treba da bude opet sa $$ (samo sto je u pitanju Y red, znaci $C$y) da bih mogao da umecem redove i kopiram redove unutar tabele.

Mislim da to ne moze, ali ako neko zna bilo bi strava. Idealno resenje bi bilo kada ne bih morao da se vezujem za tu celiju C nego direktno za celiju u kojoj se nalazi formula ( znaci za kolonu E). Kad bi recimo mogao da kazem nekom formulom da je celija Cx = -2Ex+1 - Znaci da nekako nekim kao numerickim koracimao kao po X,Y osi poistovetim kolou Ex+1 sa kolonom Cx. Kad bi recimo ispred E stavio neki broj ili neku f-ju koja ce pomeriti celiju za 2 unazad, znaci oznaci celiju u koloni C koja je u istom redu kao Ex+1, a onda opet nekim brojem da se pomeri na gore za 1. To je znaci kao da sam rekao da po X osi ide za -2, a zatim po Y za 1.

Postoji jos jedno resenje, koje nije bas sjajno upravo zbog toga sto se moze desiti da posle treba da sirim redove i da ubacujem dodatne, a to je: napravim prvu tabelu sa 20 redova sa formulom bez $$ i onda kad kopiram bice sve ok, ali problem ce nastati kada kopiram postojeci red zbog formula jer ce mi se poeriti celija Cy na Cy+1.

Nadam se da sam bar malo mozda bolje objasnio.

Hvala unapred na resenjima, ako postoji uopste resenje.
[ Jpeca @ 09.11.2006. 10:44 ] @
Koja formula ti piše u koloni E kopirane tabele pomoću makroa?
Za red y treba da bude:
Treba da bude =c$x -dy

Mislio sam da je to što ti treba - fiksiran je red x iz koje se uzima vrednost za kolonu C.Nije problem da se naprav kakva god hoćeš formula.

U prilogu sam stavio primer pa najbolje na njemu objasni šta nije u redu. Kod mene makro ne prijavljuje nikakvu grešku:

1/ Startuješ makro CopyTbl
2/ Selktuješ celu tabelu za kopiranje - zajedno sa kolonom E, pa OK
3/ Selektuješ ćeliju od koje počinje nova tabela (Cx), pa OK

i tako bi trebala da bude formirana nova tabela sa odgovarajućom formulom.
[ srdjanm3 @ 09.11.2006. 17:47 ] @
Ne treba za red Y da bude C$x-Dy vec, ako je treci red X, a 10 Y onda formula koja koristi vrednost iz treceg reda se nalazi u cetvrtom redu, a formula koja koristi vrednost iz 10 je u 11 redu. Tako da u stvari treba da bude u konkretnom slucaju E4=C3-D4, odnosno E11=C10-D11.

Stvarno ti hvala na trudu i objasnjenju. Nasao sam zasto nije radilo. U prilogu je na slici prikazano kako sam do sada selektovao tabelu, i kad tako selektujem onda ni makro ne radi kako treba, a ni formula sa C$x. Kad selektujem samo tabelu onda sve radi. Kakve to sada ima veze?

Ne znam zasto, ali radi samo na jednostavnijim primerima, u mom slucaju nece. Kad smo se vec upetljali da ti objasnim o cemu se radi. Ja se bavim grejanjem i klimatizacijom i koristim excel za proracun toplotnih gubitaka/dobitaka. E sada worksheet sadrzi tabelu u koju se sa paste special->paste link unose podaci iz drugih sheetova i to je sve povezano. Ima puno podataka koji su povezani jer u slucaju izmene necega onda lako mi se menjaju svi podaci u racunu.
I vec neke formule nisu htele da mi rade koje su mi pre radile. Ne znam (sad cu tako da lupim) da li mozda postoji neki konflikt sa nekim formulama ili da li je moguce da u jednom sheetu ima previse formula(sto ne mogu da verujem ako ima) pa da to pravi neki problem prilikom kopiranja tih tabela. Evo sad sam probao primer koji si mi dao i u njemu sve radi kako mi treba. Medjutim otvorim moj faj koji koristim za racun i opet nece.

Hvala ti puno u svakom slucaju, ja cu sada da malko kopam pa cu nesto iskopati vec.

[Ovu poruku je menjao srdjanm3 dana 09.11.2006. u 19:05 GMT+1]