beri nama macro tersebut dengan nama Coba, dan shortkey tombol q di keyboard Anda.
ketikan kata coba pada range A1
lalu Stop Recording Macro
Lihat hasil pencatatan pada Visual Basic Editor Excell Anda,
kode Macros akan tertulis pada module1,
Range("A1").Select
Merupakan perintah pada VB Excell untuk memilih range A1, bila “A1” diubah menjadi “A4” maka kata “coba” akan dituliskan pada range A4.
ActiveCell.FormulaR1C1 = "coba"
Berarti pada sel aktif yang telah dipilih (select) rumus (Formula) “coba” akan dituliskan. Activecell sendiri menunjuk pada sel dimana kursor aktif.
Rangkaian kode di atas dapat disederhanakan dengan kode seperti berikut ;
bila dijalankan, maka kode ini akan menghasilkan yang sama dengan sebelumnya.
Menggunakan Range dengan Cell
Kita dapat membuat sebuah range pada Excell sebagai “titik pusat” lalu dengan bantuan Cells(Rowindex, Columnlindex)., kita dapat menempatkan sebuah nilai atau rumus di
Range("D5").Cells(1, 1).Value = "pusat"
Range("D5").Cells(0, 1).Value = "atas"
Range("D5").Cells(2, 1).Value = "bawah"
Range("D5").Cells(1, 0).Value = "kanan"
Range("D5").Cells(1, 2).Value = "kiri"
jalankan program, maka hasilnya akan seperti demikian;
dapat
Bila kita menginginkan sel yang menjadi titik pusat adalah sel dimana kursor aktif, maka kode berikut dapat digunakan
ActiveCell.Offset(0, 0).Value = "pusat"
ActiveCell.Offset(0, 1).Value = "kiri"
ActiveCell.Offset(0, -1).Value = "kanan"
ActiveCell.Offset(1, 0).Value = "bawah"
ActiveCell.Offset(-1, 0).Value = "atas"
buka Sheet1,
lalu tekan Ctrl +q, maka akan menghasilkan
kemudian pilih range H15, tekan Ctrl+q maka akan dihasilkan,
Selain dengan kode diatas, terdapat cara lain
bila dijalankan maka hasil yang sama akan didapatkan.
Menunjuk sel pada worksheet tertentu
Karena ditulis di module maka kode-kode diatas bekerja pada Worksheet yang aktif. Artinya bila Sheet1 yang sedang tebuka maka program aka dijalankan pada Sheet1. Bagaimana bila kita menginginkan agar range yang ditunjuk berada di dalam sheet tertentu. Caranya cukup dengan menuliskan nama worksheet di depan range, sebagai contoh:
Sheet1.Range(“A1”).value=”oke”
Akan mengacu pada range A1 pada Worksheet Sheet1, bila kita menginginkan agar range A1 pada Sheet2 maka ganti kode sebelumnya dengan:
Sheet2.Range(“A1”).value=”oke”
Cara penulisan lain juga dapat dilakukan, contohnya:
Set Pesan = Sheets("sheet3").Range("A1")
Set Pesan = Sheets(2).Range("A1")
Multiple Range
Kita sudah mempelajari bagaimana menujuk sebuah range tunggal sebagai sasaran pemograman. Sekarang bagaimana bila kita menginginkan multiple range.
Range (“A1:C3”).value = ”oke”
Range(“A1”,”D4”).value = “oke2”
Kode-kode di atas menunjuk pada multiple range. Pada kode pertama yang ditunjuk adalah range A1 sampai C3, sedanga yang kedua adalah A1 sampai D4.
Range Bernama
Bagi Anda yang sering menggunakan Excel, mungkin sering memberi nama pada sebuah range untuk mempermudah pekerjaan. Pertanyaan dapatkah menunjuk range bernama tersebut dalam VB Excel ? jawabannya, DAPAT!!
Misalkan Anda memiliki sebuah range yang bernama “sel”, maka range ini dapat ditunjuk dengan
Range (“sel”).value = ”ini sel”
Membuat Sebuah Variabel dari Range
Membentuk sebuah variabel dari range sangatlah mudah pada VBE. Tujuannya agar mempermudah dalam pemograman. Pertama kita harus membuat dimensinya terlebih dahulu, caranya dengan menuliskan kode seperti ini:
Dim Pesan As Range
Kemudian kita set variabel tersebut, sesuai dengan range yang kita inginkan ;
Set Pesan = Range("A1")
Atau
Set Pesan = Range("A1").Cells(1, 2)
atau
Set Pesan = Sheet1.Range("A1")
atau
Set Pesan = Sheets("Sheet3").Range("A1")
Kemudian kita dapat melakukan operasi range pada variabel yang telah dibentuk. Sebagai contoh
Dim Pesan As Range
Set Pesan = Sheet1.Range("A1")
Pesan.Value = "pesan nih"
Pesan(1, 2).Value = "pesan kedua"
Range A1 pada Sheet1 akan tertulis “pesan nih” dan range A2 akan tertulis “pesan kedua”. Sebab Pesan(1,2) sama dengan Sheet1.Range(“A1”).Cells(1,2).
Sebenarnya kita dapat membentuk variabel tanpa membuat dimensinya terlebih dahulu, tetapi cara ini idak dianjurkan karena memboroskan memori. Caranya adalah seperti demikian:
Set Pesan = Sheet1.Range("A1")
Pada kasus ini perintah-perintah berikut bisa bekerja,
Pesan.Value = "pesan nih"
Pesan(1, 2).Value = "pesan kedua"
27 komentar:
bagus nih buat teman yang mau belajar vbe excel, agar perintah tidak berulang-ulang mas coba tolong kasih contoh penggunaan select case dan do while biar kita pada lebih ngerti nih tanks ya..
oke..saya coba buatkan tulisannya...dituggu saja.
bisa ndak mas, buat hyperlink ke sheet yang tersembunyi?
sehingga hanya tampak 1 sheet tapi jika di klik hyperlink-nya bisa langsung nyambung ke sheet yang lain.
trimakasih atas jawabannya...saya tunggu lho...
bisa mas, bisa bikin button yang nyambung ke sheet lain.
yang diatus adalah properti visible pada sheet
contoh
Sheet1.Visible = xlSheetHidden
maka sheet1 akan tersembunyi, dan bila
Sheet1.Visible = xlSheetVisible
sheet1 akan muncul..
semoga membantu..
salam kenal om ben
saya khazena, baru mengenal vb dan banyak bekerja dengan angka.selama ini selalu kerja manual. saya mohon bantuan, apa bisa & gmn rumus VB nya ???
cara mengimpor isi file dari file excel lain (kondisi tidak aktif)
cth: sheet 1 range A1:A100. ke ws excel yg kita kerjakan. file di import hanya dengan mengcopy nama filenya saja & di pastekan pada tempat yang di tetapkan lalu tinggal klik comand button update.isinya tercopy semua.
terima kasih banyak ditunggu pencerahannya & semoga sukses selalu
sepertinya kode berikut cocok untuk permasalhana Anda....coba saja...
Private Sub CommandButton1_Click()
Dim wb As Workbook
Dim ws As Worksheet
Set ws = ActiveSheet
Set wb = Workbooks.Open(Application.GetOpenFilename)
wb.Worksheets(1).Cells.Copy
ws.Range("A1").PasteSpecial
wb.Save
wb.Close
End Sub
salam kenal mas ben.
saya kerja di skool yg kalau akan rapotan sibuk 1/2 hidup (hehe),yaiut ngeprin rapot sebanyak 750 lbr selama 2 hari, supaya cepat saya ingin membuat buton {PRINT} dengan VB caranya gimana ya mas ben, bantu dong
ini contoh ngeprint sel A1 sampai E20, kopinya 1...printernya default printer (yg biasa dipake)
Private Sub CommandButton1_Click()
Range("A1:E20").PrintOut copies:=1
End Sub
coba pelajari juga link ini :
http://forums.devx.com/archive/index.php/t-78786.html
mas ben..klw saya buat macro form input
nama
sekolah
kota
nah,,pertanyaan'y klw dalam excel nanti hasilnya sdh d kelompokkan ke dalam tabel2 berdasarkan kota tp msh dlm 1 sheet gmn y mas ?
caranya jadikan data kota sebagai patokan...atau bahasa kerennya "kata kunci"...
bagus banget, saya aby bru kenal dengan VBA Excel, padahal setiap hari sya bekerja dg excel.
sya punya masalah kaitannya dengan VBA, sya punya worbook 15 dlm workbook tersbut form sheetnya sama kira-kira bisa ndak saya gabung atau memanggil worbok tersbut biar satu tempatnya sehingga mudah digunakan..
mohon penjelasan lebih lanjut.
bagus bangeet nih.
saya setiap hari menggunakan excel tapi baru kenal nih namanya VBA sya sering kali disuruh buat Raport untuk siswa dimana saya buat dengan mnggunakan excel tapi saya mash pake yang sederhana saja seperti rumus vlookup, dan juga kalo kepepet saya menggunakan mail merge.. naha yang ingin saya pertanayakan disini bagaimana menggunakan vba untuk pengolahan nilai dan pembuatan raport untuk siswa sehingga tidak terlalu banyak worbook yang tersimpan, saya punya 15 kelas, jadi setiap kelas itu saya punya file tersendiri apakah dlm VBA bisa menggabungkan 15 file worbook itu..
mohon penjelasannnya.. terima kasih
mohon panduan vba excel 2007..
tunggu tulisan saya berikutnya pak...disitu ada sedikit panduan buat vba 2007...
coba kirim contoh workbook nya ke email saya pak...saya lihat dulu...terimakasih
numpang nyedot.....sukses selalu
tararegkyu mas...
Bang Ben Sungguh menginspirasi...
bang kalau untuk input/ambil pake form tapi nyimpennya ke sheet bisa ndak ya.. misalkan input data karyawan langsung masuk sheet karyawan begitu tekan button add nyimpan ke cell bawahnya ...kasih ilmunya dong bang.. terima kasih sebelumnya.. sukses bang ben
seperti ini kding nya mas...
di button yang dibuat di form nya
private sub comandbuton_click()
range("A1").value = text1.text
end sub
Bang Ben Sungguh menginspirasi...
bang kalau untuk input/ambil pake form tapi nyimpennya ke sheet bisa ndak ya.. misalkan input data karyawan langsung masuk sheet karyawan begitu tekan button add nyimpan ke cell bawahnya ...kasih ilmunya dong bang.. terima kasih sebelumnya.. sukses bang ben
kode sebumnya jga masuk sheet mas, cuma masuk nya ke sheet yg aktif....
kalo mau sheet spesifik tinggal tambahin
Sheet1.range("A1").value = text1.text
data pada text1 akan masuk ke sel A1 di Sheet1...
oke mas, tararengkyu...sukses juga buat mas...
salam kenal om Ben, btw boleh tau buku yang bagus untuk belajar VBA hingga mahir apa ya?,,, biar bisa jago kayak om Ben (kidding)...
salam kenal juga Om Neza...
saya sih gak pernah belajar VBA dari buku...kalo VB6 iya...
dulu jarang ada buku tentang VBA...jadi belajar via mbah google dan VBA help di excel...
sekarang saya lihat di toko2 buku dah banyak buku tentang VBA...
silahakan beli salh satu dan yang paling penting..praktek mas... hehe
Pa Ben, bisa tidak Pa mengajarkan VBA privat case study..
Saya bisa datang ke tempat Bapak,saya dapat info Bapak membuka lembaga kursus VBA Makro disekitar serpong, bisa Sabtu Bapak?
Terimakasih
bisa mbak/bu, sy memang buka lembaga kursus di sekitar serpong untuk VBA.
untuk pengaturan jadwal dan materi nya silahkan email langsung ke bernadushs@yahoo.com mbak/bu
bagus tutorialnya, paham jadinya.....
mohon bantuan jika sheet 2 aktif maka otomatis isi sheet 1 tercopy di sheet 2 hanya valuenya saja
di sheet 2 bikin procedure yang event nya di trigger acntive sheet
bis itu cukup pake kode semacam ini
Sheet2.Range("A:A").value = Sheet1.Range("A:A").value
Posting Komentar