Terima kasih atas bantuan  dan solusi yang diberikan Mr. Kid, Pak Hendrik, dan 
master lainnya yang telah berkenan.

Salam,

Kelik 

From: [email protected] [mailto:[email protected]] On 
Behalf Of hendrik karnadi
Sent: 30 Agustus 2012 19:34
To: [email protected]
Subject: Re: Fw: [belajar-excel] Isian Bon sesuai dengan baris yang di klik

 

  

Terima kasih Mr. Kid atas pencerahannya.

Seingat saya, sejak saya bergabung dengan milis ini hanya 2 Master yang pernah 
menggunakan CLng, yoitu Mbak Siti dan Mr. Kid.

 

Salam,

Hendrik Karnadi

 

  _____  

From: Kid Mr. <[email protected]>
To: [email protected] 
Sent: Thursday, 30 August 2012, 19:27
Subject: Re: Fw: [belajar-excel] Isian Bon sesuai dengan baris yang di klik

 

  

Tentang penggunaan fungsi CLng.
CLng adalah fungsi konversi tipe data menjadi bertipe data Long (bilangan bulat 
pada interval angka tertentu yang lebih lebar dari pita tipe data integer)

Excel pada dasarnya selalu berusaha mengkonversi suatu nilai data menjadi 
bertipe data dasarnya. Jika nilai data terdiri dari angka seluruhnya, maka akan 
diubah menjadi bertipe numerik (umumnya double) dan sebagainya.
Contoh, jika ada suatu nilai data berbunyi :
BELAJAR bertipe string, maka Excel akan mengubahnya menjadi BELAJAR bertipe 
string
12345 bertipe string, maka Excel akan mengubahnya menjadi 12345 bertipe double
45678 bertipe long, maka Excel akan mengubahnya menjadi 45678 bertipe double
41151 bertipe datetime, maka Excel akan mengubahnya menjadi bertipe double

Kejadian diatas tidak berlaku untuk tipedata string jika format cell yang 
dituju adalah Text.
Misal, cell i33 diset formatnya berupa Text, maka ketika ada suatu nilai data 
berbunyi :
BELAJAR bertipe string, Excel membacanya sebagai data bertipe string, dan akan 
ditulis ke cell i33 sebagai string, lalu diformat Text
12345 bertipe string, Excel membacanya sebagai data bertipe string, dan akan 
ditulis ke cell i33 sebagai string, lalu diformat Text
45678 bertipe long, Excel membacanya sebagai data bertipe double, dan akan 
ditulis ke cell i33 sebagai data bertipe double, lalu diformat Text
41151 bertipe datetime, Excel membacanya sebagai data bertipe double, dan akan 
ditulis ke cell i33 sebagai data bertipe double, lalu diformat Text

Pada kasus ini :
1. Berdasar kaidah database, maka tabel data pada kasus ini tidak memenuhi 
kaidah database. Hal ini disebabkan oleh adanya 2 tipe data dalam sebuah kolom.
Jika terlalu sulit untuk seluruh kolom data, minimal kolom kuncinya lebih dulu 
(kolom X).
Kolom ini berisi tipedata string (record pertama) dan tipe data numerik (selain 
record pertama)

2. Pada bentuk struktur output, ada sebuah cell input oleh user (i33) yang 
diset formatnya sebagai Text (masih ingat kejadian tentang Excel berusaha 
mengkonversi tipe data diatas tadi ya).

3. Pada bentuk struktur output, ada sebuah cell berisi formula memanfaatkan 
fungsi lookup dengan lookup value adalah isian user (cell i33).
Karakteristik dasar lookup oleh excel (baik melalui VLookUp, HLookUp, LookUp, 
Match), selalu berdasar tipe data lookup value.
Jika i33 diisi data bertipe numerik, maka proses lookup akan memanfaatkan kolom 
X yang bertipe numerik saja.
Jika i33 diisi data bertipe string, maka proses lookup akan memanfaatkan kolom 
X yang bertipe string saja.

4. Tentang baris kode :
     Range("i33").Value = CLng(Right(.Value, 7))
>> A. hasil dari fungsi Right adalah bertipe string. Format cell i33 yang 
>> berupa Text, akan menyebabkan Excel tidak melakukan konversi data dari 
>> string menjadi double karena hasil fungsi Right yang bertipe data string. 
>> Padahal native-nya, tipe data kolom X adalah bertipe numerik.
>> B. dipilih menggunakan CLng karena format cell i33 adalah Text (lihat nomor 
>> 2) dan native-nya data kolom X adalah bertipe numerik.
Akibatnya, ketika user double click di record pertama, hasilnya mestinya error 
value.

Jadi, agar prosedur bisa berlaku untuk seluruh record, maka formula di record 
pertama kolom X diubah agar menghasilkan tipe data numerik.
Formula yang ada di record pertama kolom X memanfaatkan fungsi concatenate yang 
menghasilkan tipe data string.
Dengan mengubah formulanya menjadi : (ubah dulu format cellnya menjadi 
berformat general)
=CONCATENATE(F9,F10,F11)+0
maka tipe data kolom X akan seluruhnya bertipe numerik.

Wassalam,
Kid.

2012/8/30 hendrik karnadi <[email protected]>

  

Ini memang langkah Master.

Sebelumnya saya coba buat tanpa Cancel = True namun programnya looping terus 
sampai error.

 

Mr Kid, mau nanya mengenai  CLng(Right(.Value, 7)), mengapa kalau CLng 
dihilangkan hasilnya menjadi error, padahal kan tujuh angka tsb (dari kanan) 
sudah merupakan bilangan bulat....

 

Mohon pencerahannya.

 

Terima kasih.

 

Salam,

Hendrik Karnadi

 

 

----- Forwarded Message -----
From: Kid Mr. <[email protected]>
To: [email protected] 
Sent: Thursday, 30 August 2012, 16:26
Subject: Re: [belajar-excel] Isian Bon sesuai dengan baris yang di klik

 

  

Coba ubah isi prosedur event worksheet before double click menjadi :
    With Target   'pada object range bernama target
        If .Count = 1 Then         'cek jumlah cell yang di double click 
(hehehe... butuh gak ya?)
            If .Column = 35 Then   'cek indeks kolom yang di double click
                Range("i33").Value = CLng(Right(.Value, 7))    'ganti isi cell 
i33
                Call cetak         'panggil prosedur cetak
                Cancel = True      'batalkan proses double click
            End If                 'akhir blok cek indeks kolom
        End If                     'akhir blok cek jumlah cell yang di double 
click
    End With                       'akhir blok pada object range bernama target

Wassalam,
Kid.

2012/8/30 Kelik Pitoyo <[email protected]>

  

Selamat Siang,
Yth. Be Exceller,

Sebelumnya saya ucapkan banyak terima kasih dan mohon maaf bila banyak code 
/makro dan rumus yang saya ambil dari temen-temen.
Sebelumnya saya pernah posting hal ini namun dengan permasalahan berbeda,
bila saya menginginkan kolom "AI" diklik 2x maka akan muncul print preview form 
bon BBM,
Permasalahan yang saya hadapi isian bon BBM belum sesuai dengan baris yang saya 
klik untuk di cetak. (harus manual mengganti no BON)
Bagaimana pemecahannya, mohon pencerahannya.

Terima kasih sebelumnya,
Salam,
kelik

 

 

 

 

 



Kirim email ke