Wa'alaikumussalam wr wb

Secara, bawaan dari sananya, sebuah function yang digunakan dalam suatu
cell tidak bisa mengubah nilai di range lain. Bahasa kodenya, bisa
dikatakan bahwa kode dalam suatu function yang memasang suatu nilai ke cell
lain melalui properti value suatu object range tidak akan bekerja ketika
function tersebut digunakan sebagai sebuah formula dalam cells.

Jadi, jika ada function dengan udf berbunyi :
public function Kid1( nilai as long, rngTarget as range) as string
     rngtarget.value=nilai
end function

tidak akan berjalan jika digunakan dalam worksheet seperti di cell K1
diberi formula =Kid1(456,$a$1)

Jadi, untuk kasus ini, ide dari mas Zain untuk mengubahnya menjadi UDF yang
menghasilkan suatu array adalah salah satu jalan keluarnya. Karena formula
menghasilkan array, maka cell yang dipasangi formula adalah seluruh cell
hasilnya alias harus membentuk sebuah area range.

Demikianlah karakter dasar function dalam VBA yang akan digunakan dalam
worksheet sebagai sebuah fungsi untuk menyusun suatu formula.

btw, imho,
Excel termasuk aplikasi yang para pembuatnya saja tidak bisa menguasai
seluruh kemampuan hasil buatannya. Artinya, bisa jadi ada suatu potensi
untuk membuat hasil suatu formula ditulis di range lain. Contohnya begini :

public function KidIsengCariMasalah( dblNilai as double, rngTarget as
range) as string
     dim rng as range, dblTemp as double
     dbltemp=dblnilai
     for each rng in rngtarget
           dbltemp=dbltemp*10
           rng.replace rng.value,"kid"
           rng.characters.text= "kid" & dbltemp
           rng.replace "kid",vbnullstring
     next rng
     'misal cell berformula diisi dengan keterangan input
     KidIsengCariMasalah=dblnilai & "|" & rngtarget.address
end function

lalu di worksheet, misal a1 bernilai 13
dan di c1 diberi formula berbunyi :
=KidIsengCariMasalah( a1 , g1:k1 )
maka hasil c1 adalah informasi inputan, dan di g1:k1 adalah hasil
pengolahan nilai oleh baris
dbltemp=dbltemp*10

so,
selamat berkreasi

Wassalamu'alaikum wr wb
Kid




2015-04-27 15:42 GMT+10:00 Nang Agus [email protected] [belajar-excel] <
[email protected]>:

>
>
> Asalamualaikum warahmatullah.
>
> Dear member B-Excel.
>
> mohon bantuannya.
> Dapatkah dibuat sebuah UDF yang hasilnya dapat diletakkan pada 4 cell?
>
> misalnya saya pasang Rumus UDF di cell C1, nanti hasilnya ada di cell D1,
> E1, F1.
>
> Public Function rumus(a as long, b as long) as long
> dim rumusb as long
> dim rumusc as long
> dim rumusd as long
> rumus = a + b
> rumusb = a - b
> rumusc = a*b
> rumusd = a/b
> end function
>
> bagaimana caranya agar rumusb diletakkan di D1, rumusc di E1 dan rumusd di
> F1
>
> terima kasih
> wasalamualaikum warahmatullah
>
>
>  
>

Kirim email ke