Asalamualaikum warahmatullah, Mas Kid dan Mas Zaenul, terima kasih atas penjelasannya. sesuai dengan harapan untuk mempermudah membuat soal.
wasalamualaikumwrahmatullah NangAgus 2015-04-28 2:05 GMT+07:00 'Mr. Kid' [email protected] [belajar-excel] < [email protected]>: > > > 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 >> >> >> > >

