[ Me_De @ 12.02.2010. 15:57 ] @
Pozdravljam,

Apsolutni sam početnik u Excelu pa bi mi dobro došla mala pomoć.
Pravim neku Custom funkciju koja bi trebala da učita 8 parametara, odnosno 2x4 parametara.
Radi se o poređenju zapremine a imam u jednom redu naziv tijela, dužinu, širinu i visinu.
Funkcija je zamišljena tako da označim samo naziv tijela a da ostale podatke učitam kao kolona+1, ..+2, ..+3 zbog toga da nemoram
svaki parametar označavati u onom prozoru posebno.
Eh sad, moje pitanje je kako da dođem do podatka o lokaciji tj. br. kolone i br. reda od izabrane ćelije.

Hvala
[ Take 5 @ 12.02.2010. 20:23 ] @
Citat:
Me_De: .... Eh sad, moje pitanje je kako da dođem do podatka o lokaciji tj. br. kolone i br. reda od izabrane ćelije.

Auuu.... moraćeš prvo bar nešto da pročitaš o samom Excelu!
Ovde ne pomaže "provaljivanje kako radi" nije to igrica nego ozbiljan program za tabelarne proračune.

[att_img]
[ Ivek33 @ 12.02.2010. 20:27 ] @
Citat:
Me_De: Apsolutni sam početnik u Excelu pa bi mi dobro došla mala pomoć.
pogledaj link na tutorial ovdje http://www.elitesecurity.org/t163493-Excel-funkcije-radnog-lista
[ Me_De @ 13.02.2010. 00:38 ] @
Mozda se nisam dobro izrazio, sorry, sve je to u VBA sto meni treba, u modulu,
funkcija koja mi kaze red i kolonu izabrane celije u prozoru od custom fukcije
pa da ja mogu koristiti taj podatak za celiju, red isti, samo kolona+1
[ Take 5 @ 13.02.2010. 07:38 ] @
A da pogledaš u help (nije mi baš najjasnije šta ti to tražiš)?

Citat:
How to: Refer to Cells Relative to Other Cells

A common way to work with a cell relative to another cell is to use the Offset property. In the following example, the contents of the cell that is one row down and three columns over from the active cell on the active worksheet are formatted as double-underlined.

Code:
Sub Underline()
    ActiveCell.Offset(1, 3).Font.Underline = xlDouble
End Sub 


Note
You can record macros that use the Offset property instead of absolute references. On the Tools menu, point to Macro, click Record New Macro, click OK, and then click the Relative Reference button on the Record Macro toolbar.

To loop through a range of cells, use a variable with the Cells property in a loop. The following example fills the first 20 cells in the third column with values between 5 and 100, incremented by 5. The variable counter is used as the row index for the Cells property.
Code:

Sub CycleThrough()
    Dim counter As Integer
    For counter = 1 To 20
        Worksheets("Sheet1").Cells(counter, 3).Value = counter * 5
    Next counter
End Sub

[ 3okc @ 13.02.2010. 09:19 ] @
Citat:
Me_De: funkcija koja mi kaze red i kolonu izabrane celije u prozoru od custom fukcije
pa da ja mogu koristiti taj podatak za celiju, red isti, samo kolona+1


To možeš i pomoću raspoloživih f-ja, npr referenciranje ćelije koja je susedna ćeliji E6 (za kolonu udesno):
Code:
=ADDRESS(ROW(E6);COLUMN(E6)+1;)

Code:
=CELL("address";OFFSET(E6;0;1;1;1))


Ili, preko VBA:
Code:
Function Col_Offset(c As Range) As String

    Col_Offset = c.Offset(0, 1).Address
End Function
[ Jpeca @ 13.02.2010. 10:19 ] @
Ako sam ja dobro razumeo hoćeš da napraviš korisnički definisanu funkciju (UDF) u VBA modulu.
3okc ti je dao rešenje koje si ti tražio, ali po meni je u tom slučaju najjasnije, a i verovatno najjednostavinije je da kao parametar preneseš jedan (ili dva) opsega (range) veličine koje ti treba tj 2x4. U tom slučaju lako možeš pristupiti poziciji ćelije u opsegu preko relativnog broja reda kolone počevši od prve ćelije u opsegu (gore, levo)

Evo primer funkcije koja uzima kao parametar opseg i ne radi ništa pametno (to je ostalo da ti uradiš) nego čita iz opsega ćeliju iz prvog reda i treće kolone.

Code:
Function MyFunction(rngParametri As Range) As Variant
' Zgodno je prvo  proveriti da li je velicina opsega dobra
 If rngParametri.Rows.Count <> 2 Or rngParametri.Columns.Count <> 4 Then
    MyFunction = CVErr(xlErrNA) ' Vraca grešku #N/A
    GoTo Izlaz
 End If
' Vrednosti jednostavno mozes pozvati preko broja reda i kolone iz opsega
' Parametar iz prvog reda i trece kolone
MyFunction = rngParametri.Cells(1, 3).Value

Izlaz:
End Function



[ Me_De @ 13.02.2010. 14:14 ] @
Ovaj treći primjer sa offset-om je upravo to što mi treba.

Hvala puno svima na pomoći :)