wakakaka...

mas Zainul gak sendirian kok...
Sebagian besar pengguna VBA melakukan demikian kok...
cuman saya ajah yang masih konservatif (maklum, didikan orang tua jaman
dulu)

rencana kumpul milis sih sedang akan didiskusikan secara intensif nih...
(mas dwint n pak Anton nih yang tahu persis)

;)

Wassalamu'alaikum Wr. Wb.
Kid.





2014-02-14 8:24 GMT+07:00 zainul_ulum[at]yahoo[dot]com <
[email protected]>:

>
>
> waduh...
>
> ternyata aku termasuk dalam mode malas=on...
>
> terimakasih penjelasannya mas Kid...
>
>
>
> kapan kumpul-kumpul lagi-lagi?
>
>
>
> wassalam
>
> -zainul-
>
>
>
> *From:* [email protected] [mailto:
> [email protected]] *On Behalf Of *Mr. Kid
> *Sent:* Thursday, February 13, 2014 11:09 PM
> *To:* BeExcel
> *Subject:* Re: [belajar-excel] Bagaimana penulisan Range yang benar ?
>
>
>
>
>
> hehehe....
>
> ternyata mengungkapkan segala sesuatu secara eksplisit dalam pemrograman
> adalah kebiasaan yang baik...
>
> ndak percaya ?
>
> ayo kita buktikan....
>
> ada cekrip berbunyi :
> *Dim rgAsal As Range*
>
> *Set rgAsal =** Range([E1])  'jika ditulis Set rgAsal = [E1] maka
> hasilnya akan salah*
>
>
>
> pada coretan tentang evaluate yang ada 
> disini<http://b-excel.blogspot.com/2013/09/ngobrolin-evaluate-di-vba-yuk.html>dijelaskan
>  bahwa evaluate menghasilkan object range jika ekspresinya
> menghasilkan object range. Hasil evaluate akan menghasilkan nilai skalar
> kalau ekspresinya *tidak bisa *menghasilkan object range.
>
>
>
> Pada kebiasaan kebanyakan pengguna VBA, tampak sekali betapa malasnya
> menulis :
>
> [E1].value untuk mengambil isi dari cell E1
>
> yaitu dengan menulis (mode malas=on) berbunyi :
>
> [E1]
>
> contoh :
> dim sIsiCell_E1 as string, sIsiModeMalas as string
>
> sIsiCell_E1=[E1].value  'akan malas ditulis dan lebih memilih tulisan
> cekrip berbunyi :
>
> sIsiModeMalas = [E1]
> disini<http://b-excel.blogspot.com/2013/09/ngobrolin-evaluate-di-vba-yuk.html>juga
>  dijelaskan bahwa setiap object range memiliki properti default bernama
> Value. Itu sebabnya banyak yang menulis seperti sIsiModeMalas = [E1]
>
> Ketika sudah nested seperti :
> *Set rgAsal = Range([E1])*
>
> maka kemungkinan kehilangan arah akan semakin besar.
>
> bagian *[E1]* menghasilkan object range
>
> bagian Range( ) meminta inputan berupa string (teks)
>
> karena diminta memberikan teks, maka bagian *[E1]* akan mengambilkan
> properti default dari range yang bernama Value.
>
> Jadi, sebenarnya, bagian :
> *Set rgAsal = Range([E1])*
>
> sama dengan penulisan mode rajin=on berbunyi :
> *Set rgAsal = Range([E1].value)*
>
> Kalau sudah sampai sini, maka akan jelas tampak, kenapa kok berbeda antara
> :
>
> *Set rgAsal =** Range([E1])*
>
> dengan
> *Set rgAsal = [E1]*
>
> So... beberapa karakter yang membuat jelas segala sesuatu bukanlah
> perlambatan, tetapi sesungguhnya percepatan dengan keamanan penuh.
>
> Wassalam,
>
> Kid.
>
>
>
>
>
> 2014-02-13 22:24 GMT+07:00 hendrik karnadi <[email protected]>:
>
>
>
> Dear Be-Excellers,
>
> Salah satu kesulitan dalam bermacro adalah pemahaman object dan variabel
> serta penulisannya.
>
> Meskipun Mr. Kid telah banyak bercerita mengenai VBA, namun ada satu hal
> yang buat saya "masih mengganjal" (ga sesuai dengan nalar orang awam),
> yaitu bagaimana penulisan range yang benar dan bagaimana penggunaannya.
>
>
>
> Macro ini saya kutip dari "jawaban" pak Zainal sebelumnya. Tujuan dari
> macro di bawah ini adalah untuk mengcopy beberapa sel yang tersebar ke
> dalam satu Range yang berurutan, dengan bantuan Range("E1").
>
> *Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
> Boolean)*
>
> *    Dim rgAsal As Range, rg As Range, i As Integer*
>
> *    Set rgAsal = Range([E1])  'jika ditulis Set rgAsal = [E1] maka
> hasilnya akan salah*
>
> *    i = -1*
>
> *    For Each rg In rgAsal*
>
> *    i = i + 1*
>
> *    [F1].Offset(i, 0) = rg.Value*
>
> *    Next*
>
>
>
> *    Cancel = True*
>
> *End Sub*
>
>
>
> *Pertanyaan :*
>
> Jika penulisan range *[F1]* cukup ditulis *[F1]* saja maka seharusnya
> *Range([E1])* cukup ditulis *[E1]* saja.
>
> Tetapi jika pada VBE Sheet *Range([E1])* kita ganti dengan *[E1]* maka
> hasilnya tidak sesuai dengan yang diharapkan.
>
> *Mengapa ?*
>
> *Untuk lebih jelasnya saya lampirkan file yang berisi macro tersebut.*
>
> Salam,
> HK
>
>
>
>
>
>  
>

Kirim email ke