اَمِين يَا رَبَّ الْعَالَمِيْن

terima kasih doanya Miss.Jan dan penjelasannya yang sangat ampuh buat mengusir 
rasa penasaran saya hehehe....

salam
Shenly ^^*


________________________________
 Dari: Jan Raisin <miss.jan.rai...@gmail.com>
Kepada: belajar-excel@yahoogroups.com
Dikirim: Jumat, 7 Juni 2013 14:39
Judul: Re: [belajar-excel] koreksi my VBA



 
Hai Shenly,

selamat ya.. karena sudah berhasil menemukan dan memperbaiki penyebab error 
yang muncul.

mengenai Option Explicit, script ini ditulis di bagian paling atas script, 
fungsinya agar ada pemeriksaan oleh komputer terhadap semua variabel yang 
digunakan.
jika ada variabel yang tidak dideklarasikan terlebih dahulu maka akan muncul 
peringatan dari komputer saat script dijalankan, script ini juga berguna untuk 
memeriksa kesalahan menulis nama variabel.

Misal, ingin diketahui nomor baris terakhir dari kolom A yang dimunculkan 
melalui message box
jika tanpa Option Explicit maka scriptnya sperti ini:

sub Testing ()
    lRow = cells( rows.count , 1 ).end(xlup).row
    msgbx "Baris akhir data terletak pada baris ke " & lLoe
end sub

script di atas tetap akan tetap berjalan, tetapi akan menampilkan hasil yang 
salah dengan kapasitas file yang besar.

tetapi jika menggunakan Option Explicit seperti script di bawah ini:

option explicit
sub Testing ()
    lRow = cells( rows.count , 1 ).end(xlup).row
    msgbx "Baris akhir data terletak pada baris ke " & lLoe
end sub

maka pada saat script dijalankan maka akan muncul error (error yang muncul di 
sini dinamakan Compile Error) pada baris:
    lRow = cells( rows.count , 1 ).end(xlup).row


--sekedar wacana: ada 3 macam error yang mungkin muncul jika sudah bermain-main 
dengan VBA, yaitu: Syntax Error, Compile Error, dan Run Time Error--

hal ini terjadi karena variabel lRow belum dideklarasikan terlebih dahulu
Jika kesalahan di atas diperbaiki dengan melakukan deklarasi terhadap variabel 
lRow, maka saat dijalankan kembali maka akan muncul error pada baris:
    msgbx "Baris akhir data terletak pada baris ke " & lLoe


hal ini terjadi karena ternyata ada kesalahan penulisan variabel, yang ingin 
diambil adalah variabel lRow tetapi salah ditulis menjadi lLoe

untuk menghindari hal-hal tersebut di atas maka sebaiknya Option Explicit 
selalu ditulis di awal setiap script.
Ada cara mudah agar kita tidak harus selalu menulisnya, dan biarkan komputer 
yang melakukannya, caranya sbb:
pada saat di VBE (Visual Basic Editor), klik Tools >> Options >> kasih tanda 
centrang di kotak Require Variable Declaration >> OK, seperti gambar di bawah 
ini:



semoga cerita di atas sedikit memberikan pencerahan, Jan do'akan semoga mbak 
Shenly cepat mahir dan menguasai VBA, jadi kalo ada yang bertanya tentang VBA 
bisa ikut urun solusi.

اَمِين يَا رَبَّ الْعَالَمِيْن



Wassalam,


-Miss Jan Raisin-

>>> Jangan mengirim pertanyaan melalui japri ke Jan karena tidak akan Jan jawab 
>>> kecuali anda mentransfer ke Jan senilai Rp 1 juta untuk setiap 1 pertanyaan 
>>> yang diajukan;
>>> Untuk kepentingan belajar bersama, pertanyaan ditujukan ke 
>>> belajar-excel@yahoogroups.com;
>>> Jika pertanyaan lama direspon, bersabarlah karena ALLAH beserta dengan 
>>> orang-orang yang sabar QS 2:153;


Pada 7 Juni 2013 10.56, Shenly Ruchman <shenly_excelma...@yahoo.co.id> menulis:


> 
>terima kasih Miss.Jan dan Pak hendrik juga, atas penjelasannya....
>
>dari penjelasan Miss.Jan saya udah ada gambaran mengenai kesalahan di scrip 
>yang saya buat dan sudah saya perbaiki sendiri.
>
>Tapi seteleh saya membaca penjelasan Miss.Jan di bawah, waaaaah ternyata dari 
>pemilihan type scrip yg saya buat itu juga udah salah. yang harusnya 
>menggunakan Long malah menggunakan Integer . dan masih banyak lagi kesalahan 
>dalam pemilihan type dlm scrip yg sya buat, maklum baru belajar VBA hehehe...
>terus untuk Option Explicit saya tidak tau menau mengenai menu / srip ini. 
>Mohon Miss.Jan atau para master yang lain menjelaskan mengenai scrip / menu 
>Option Explicit dan tata letaknya
>
>
>Shenly ^^*
>
>
>
>
>________________________________
> Dari: Jan Raisin <miss.jan.rai...@gmail.com>
>Kepada: belajar-excel@yahoogroups.com
>Dikirim: Jumat, 7 Juni 2013 11:17
>Judul: Re: [belajar-excel] koreksi my VBA
>
>
>
> 
>hai Shenly,
>
>
>coba kirimkan sample filenya untuk diteliti bersama.. lebih mudah melihat 
>filenya langsung daripada hanya membayangkannya
>
>
>dugaan sementara terjadnya error sbb:
>1. penulisan nama sheet salah >> sudah disebutkan oleh pak Hendrik
>    solusi: perbaiki penulisan nama sheet
>2. tombol Input terletak pada sheet yang berbeda
>    solusi: coba pindahkan script pada suatu modul lalu panggil modul tersebut 
>melalui tombol input yang tadi
>3. tipe data tidak sesuai
>    solusi: ubah tipe data dengan yang sesuai
>
>
>saran lain untuk perbaikan, (tidak ada hubungannya dengan pertayaan)
>1. gunakan Option Explicit di awal setiap script
>2. deklarasikan variabel dengan cara sbb:
>    Dim NamaVariabel as TipeData , NamaVariabel2 as TipeData , NamaVariabel3 
>as TipeData
>    dibandingkan cara seperti ini
>    Dim NamaVariabel , NamaVariabel2 , NamaVariabel3 as TipeData
>
>3. Gunakan tipe data yang sesuai, misal untuk menyimpan nomor baris gunakan 
>Long Integer dan bukan Integer
>    coba lihat tabel di bawah ini:
> 
>Data type
>Storage size
>Range
>Byte 1 byte 0 to 255
>Boolean 2 bytes True or False
>Integer 2 bytes -32,768 to 32,767
>Long
>(long integer) 4 bytes -2,147,483,648 to 2,147,483,647
>LongLong
>(LongLong integer)  8 bytes  -9,223,372,036,854,775,808 to 
>9,223,372,036,854,775,807 (Valid on 64-bit
platforms only.)
>LongPtr
>(Long integer on 32-bit systems, LongLong
integer on 64-bit systems)  4 bytes on 32-bit systems, 8 bytes on 64-bit 
systems  -2,147,483,648 to 2,147,483,647 on 32-bit systems,
-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 on 64-bit
systems
>Single
>(single-precision floating-point) 4 bytes -3.402823E38 to -1.401298E-45 for 
>negative values; 1.401298E-45 to
3.402823E38 for positive values
>Double
>(double-precision floating-point) 8 bytes -1.79769313486231E308 to
>-4.94065645841247E-324 for negative values;
4.94065645841247E-324 to 1.79769313486232E308 for positive values
>Currency
>(scaled integer) 8 bytes -922,337,203,685,477.5808 to 922,337,203,685,477.5807
>Decimal 14 bytes +/-79,228,162,514,264,337,593,543,950,335 with no decimal
point;
>+/-7.9228162514264337593543950335 with 28 places to the right of the
decimal; smallest non-zero number
is
>+/-0.0000000000000000000000000001
>Date 8 bytes January 1, 100 to December 31, 9999
>Object 4 bytes Any Object reference
>String
>(variable-length) 10 bytes + string length 0 to approximately 2 billion
>String
>(fixed-length) Length of string 1 to approximately 65,400
>Variant
>(with numbers) 16 bytes Any numeric value up to the range of a Double
>Variant
>(with characters) 22 bytes + string length (24 bytes on 64-bit systems) Same 
>range as for variable-length String
>User-defined
>(using Type) Number required by elements The range of each element is the same 
>as the range of its data type.
>
>
>    perhatikan keterangan di atas
>    Tipe data Integer dapat menyimpan sampai dengan nilai 32.767
>    bandingkan dengan jumlah baris pada Excel di tempat Shenly (tekan CTRL 
>panah bawah sampai baris terakhir), apakah mungkin tipe data tersebut mampu 
>menyimpan nilai baris yang diambil dengan script Rows.Count?
>4. Sebisa mungkin hindari penggunaan tipe data Variant atau variabel yang 
>tidak dideklarasikan terlebih dahulu, ini dia gunanya Option Explicit yang 
>tadi disebut dinomor 1.
>    Kenapa harus dihindari? coba lihat kapasitas penyimpanan yang harus 
>disediakan untuk variabel tersebut, pinjam istilah mr Kid kemarin, kalo 
>datanya bisa disimpan pakai amplop di dalam saku baju kenapa juga harus 
>bawa-bawa kontainer segede gaban untuk menyimpan data.
>
>
>ditunggu samplenya.. mudah-mudahan malah ketemu sendiri penyebabnya setelah 
>membaca dongeng di atas
>
>
># sampaikan masalah yang sering anda temui saat menggunakan Excel pada pooling 
>berikut 
>http://tech.groups.yahoo.com/group/belajar-excel/database?method=addRecord&tbl=3
>
>
>Sedikit waktu yang anda luangkan untuk mengisi pooling tersebut sangat 
>berharga untuk Be-Exceler yang lain
>
>Wassalam,
>
>
>-Miss Jan Raisin-
>
>
>>>> Jangan mengirim pertanyaan melalui japri ke Jan karena tidak akan Jan 
>>>> jawab kecuali anda mentransfer ke Jan senilai Rp 1 juta untuk setiap 1 
>>>> pertanyaan yang diajukan;
>>>> Untuk kepentingan belajar bersama, pertanyaan ditujukan ke 
>>>> belajar-excel@yahoogroups.com;
>>>> Jika pertanyaan lama direspon, bersabarlah karena ALLAH beserta dengan 
>>>> orang-orang yang sabar QS 2:153;
>
>
>Pada 6 Juni 2013 14.04, hendrik karnadi <hendrikkarn...@yahoo.com> menulis:
>
>
>> 
>>Hi Shenly,
>>Penulisan nama sheetnya sudah benar?
>>
>>
>>Salam,
>>HK
>>
>>
>>
>>________________________________
>> From: Shenly Ruchman <shenly_excelma...@yahoo.co.id>
>>To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
>>Sent: Thursday, 6 June 2013, 10:47
>>Subject: [belajar-excel] koreksi my VBA
>>
>>
>>
>> 
>>Assalamualakimun Wr.WB
>>
>>
>>haloo para master, kembali sya bertanya, kemarin saya iseng2 membuat form 
>>inputan dengan scrip seperti ini
>>
>>
>>
>>
>>
>>
>>Private Sub cmdinput_Click()
>>
>>
>>    Dim tanggal, namauser, produk As Integer
>>    Dim jumlahdeposit, BarisTerakhir, BarisTujuan As Integer
>>    
>>    With Worksheets("attainment fist depo")
>>        tanggal = .Cells(3, 3).Value
>>        namauser = .Cells(4, 3).Value
>>        produk = .Cells(5, 3).Value
>>        jumlahdeposit = .Cells(6, 3).Value
>>        
>>        BarisTerakhir = .Cells(.Rows.Count, 1).End(xlUp).Row
>>        BarisTujuan = BarisTerakhir + 1
>>        .Cells(BarisTujuan, 1).Value = tanggal
>>        .Cells(BarisTujuan, 2).Value = namauser
>>        .Cells(BarisTujuan, 4).Value = produk
>>        .Cells(BarisTujuan, 6).Value = jumlahdeposit
>>    End With
>>         
>>End Sub
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>tapi ko malah error, tolong master-master berkenan memberi pencarahannya
>>
>>
>>terima kasih
>>
>>
>>Shenly ^^*
>>
>>
>
>
>


Kirim email ke