Showing posts with label VBA. Show all posts
Showing posts with label VBA. Show all posts

VBA: Menggunakan Form pada Excel 2010

Ada cukup banyak jenis form yang dapat digunakan bersama VBA di Excel, tapi jika yang dimaksud adalah form yang dapat kita buat dengan fleksibel maka itu adalah UserForm.

Artikel berikut akan menunjukkan cara membuat userForm, menambahkan kontrol di atasnya dan memasukkan kode VBA sehingga dapat berinteraksi dengan worksheet Excel 2010.

Menambahkan dan Menyusun Layout Form

  1. Jalankan aplikasi Microsoft Excel 2010.
  2. Buat dan simpan worksheet baru dengan nama userform-excel-2010.xlsm.
  3. Tekan CTRL+F11 untuk membuka Visual Basic Editor. Jika penekanan tombol tersebut tidak berhasil, klik tab menu Developer dan pilih Visual Basic.
  4. Pada bagian jendela Project Explorer klik kanan pada node VBA Project dan pilih menu Insert diikuti UserForm.

  5. Akan muncul satu form dengan nama UserForm1. Muncul juga satu dialog Toolbox dimana kita bisa mengambil berbagai kontrol untuk diletakkan pada form, dan terakhir ada panel Properties yang bisa gunakan untuk melakukan konfigurasi form maupun kontrol.

  6. Pada Properties, rubah nama dari UserForm1 menjadi FormEntri. Pada caption, rubah teks UserForm1 menjadi Form Entri.
  7. Pada Toolbox, klik kontrol Label.

  8. Klik salah satu area pada form Anda dan atur penempatan label yang akan segera ditambahkan ke form tersebut. Hasilnya kira-kira terlihat terlihat seperti pada gambar berikut.

  9. Pada Properties, namakan label tersebut dengan mengisi teks pada bagian Name dengan lblNama dan pada Caption isi dengan teks Nama.
  10. Klik area pada form untuk memunculkan kembali Toolbox. Tambahkan kontrol Textbox pada form dengan cara seperti pada langkah 7 dan 8.

  11. Pada Properties, namakan textbox tersebut dengan mengisi txtNama pada bagian Name.
  12. Klik area pada form untuk memunculkan kembali Toolbox.
  13. Tambahkan dua kontrol command button pada form. Isi Name untuk masing-masing tersebut dengan btnHapus dan btnTambah. Caption untuk btnHapus diisi dengan teks Hapus, dan untuk btnTambah dengan teks Tambah.
  14. Tampilan form akhir Anda akan terlihat seperti pada gambar screenshot berikut ini.

  15. Simpan worksheet Anda dengan menekan tombol CTRL+S.

Menambahkan Kode VBA

    1. Klik dua kali pada tombol dengan caption Tambah sehingga memunculkan editor dengan teks berikut.

    2. Tambahkan kode berikut ke dalam fungsi btnTambah_Click().

      Dim rangeSheet1 As Range For i = 1 To Sheet1.Rows.Count Set rangeSheet1 = Range("A" & i) If Len(rangeSheet1.Value) = 0 Then rangeSheet1.Value = txtNama.Text Exit For End If Next i
    3. Klik dua kali pada tombol dengan caption Hapus dan tambahkan kode berikut ke dalam  fungsi btnHapus_Click().

          Dim rangeSheet1 As Range
          
          btnTambah.Enabled = False
          For i = 1 To Sheet1.Rows.Count
              Set rangeSheet1 = Range("A" & i)
              If Len(rangeSheet1.Value) > 0 Then
                  If rangeSheet1.Value = txtNama.Text Then
                      rangeSheet1.EntireRow.Delete
                      btnTambah.Enabled = True
                      btnTambah.SetFocus
                      Exit For
                  End If
              Else
                  Exit For
              End If
          Next i
      
    4. Simpan worksheet Anda dengan menekan tombol CTRL+S.

    Menambahkan Tombol pada Worksheet

    1. Kembali ke worksheet Anda, tambahkan button control menggunakan menu Insert yang terdapat pada tab Developer.

    2. Pada dialog Assign Macro yang muncul. Klik tombol New.
    3. Pada editor yang muncul tambahkan kode berikut pada Button1_Click().

      FormEntri.Show
    4. Pada editor yang muncul tambahkan kode berikut pada Button1_Click().Kembali ke worksheet, klik kanan pada tombol tersebut dan pilih Format Control. Klik tab Properties, dan pilih Don't move or size with cells. Tekan tombol OK.

    5. Hasil akhir worksheet Anda akan terlihat kira-kira seperti pada screenshot berikut.

    6. Simpan worksheet Anda dengan menekan tombol CTRL+S.

    Menjalankan Form Anda

    Form Anda sudah selesai dibuat, saatnya kita coba apa yang bisa diperbuat oleh form ini.
    1. Kembali ke worksheet Anda, klik tombol Button 1.
    2. Pada textbox, masukkan teks Coba dan klik tombol Tambah sebanyak 3 kali. Kemudian ganti isi textbox dengan BelajarExcel, dan klik tombol Tambah sebanyak 2 kali. Hasilnya akan terlihat seperti pada screenshot berikut.

    3. Masih dengan entri teks yang sama, coba klik tombol Hapus. Terlihat bahwa baris pertama ditemukannya teks BelajarExcel yaitu baris ke 4 akan dihapus.
    4. Cobalah ubah teks menjadi Coba, klik tombol Hapus sebanyak dua kali. Terlihat bahwa baris pertama dan kedua yang berisi teks Coba akan dihapus.
    5. Selesai.

    Memiliki Kesulitan untuk Menyelesaikan Praktek di Atas?

    Apabila Anda mengalami kesulitan atau ingin melihat file dan penjelasan yang lebih jauh mengenai kode VBA di atas, silahkan bergabung dengan user group Facebook atau download e-book kami pada alamat berikut:
    Semoga Bermanfaat !

    Cara Mengambil Nilai Acak pada VBA Excel


    Nilai acak sering kita gunakan sebagai simulasi atau menghasilkan data contoh. Pada VBA, fungsi untuk menghasilkan nilai acak adalah RND().

    Pemanggilan fungsi RND akan menghasilkan nilai pecahan dari 0 s/d 1, misalkan nilai 0.96 atau 0.056.

    Selain itu, fungsi ini dapat menerima satu parameter bertipe nilai numerik dengan syntax sebagai berikut.

    RND(PARAMETER_ANGKA)

    Dimana PARAMETER_ANGKA dapat memiliki nilai sebagai berikut.
    • nilai di bawah nol  ( <0 ), akan menghasilkan nilai acak pertama kali saja. Setelah itu nilainya tidak akan berubah-ubah. 
    • nilai di atas nol  ( >0 ), akan menghasilkan nilai acak berikutnya.
    • nilai nol  ( 0 ), akan menghasilkan nilai yang sama dengan nilai acak terakhir yang dihasilkan.
    Semua nilai parameter di atas akan tetap menghasilkan nilai acak pecahan dari 0 s/d 1.

    Jika Anda ingin mengambil rentang nilai diantara 0 s/d 100 maka dapat menggunakan kode berikut:

    RND() * 100

    Dan jika Anda ingin mengambil rentang nilai yang memiliki nilai negatif, misalkan diantara -50 s/d 50 maka dapat menggunakan kode berikut:

    RND() * 100 - 50

    Berikut adalah contoh code VBA pada satu worksheet yang memiliki 3 button dan telah diassign macro masing-masing button1_click, button2_click dan button3_click untuk mensimulasikan penggunaan berbagai variasi fungsi RND. Contoh file Excelnya dapat Anda download disini.

    Sub Button1_Click()
        Sheet1.Range("A1") = "Rnd()"
        Sheet1.Range("B1") = "Rnd(0)"
        Sheet1.Range("C1") = ""
        Sheet1.Range("D1") = "Rnd(5)"
        Sheet1.Range("A2") = Rnd()
        Sheet1.Range("B2") = Rnd(0)
        Sheet1.Range("C2") = ""
        Sheet1.Range("D2") = Rnd(5)
    End Sub
    
    Sub Button2_Click()
        Sheet1.Range("A1") = "Rnd()"
        Sheet1.Range("B1") = "Rnd(0)"
        Sheet1.Range("C1") = "Rnd(-5)"
        Sheet1.Range("D1") = "Rnd(5)"
        Sheet1.Range("A2") = Rnd()
        Sheet1.Range("B2") = Rnd(0)
        Sheet1.Range("C2") = Rnd(-5)
        Sheet1.Range("D2") = Rnd(5)
    End Sub
    
    Sub Button3_Click()
        Sheet1.Range("A1") = "0.00 s/d 100.00"
        Sheet1.Range("B1") = "0 s/d 100"
        Sheet1.Range("C1") = "-50 s/d 50"
        Sheet1.Range("D1") = ""
        Sheet1.Range("A2") = Rnd() * 100
        Sheet1.Range("B2") = CInt(Rnd() * 100)
        Sheet1.Range("C2") = CInt(Rnd() * 100 - 50)
        Sheet1.Range("D2") = ""
    End Sub

    ~~~ Semoga Bermanfaat ~~~


    VBA Excel: Mengenal Object, Property dan Event

    Agar dapat memanfaatkan Excel lebih jauh dengan VBA (Visual Basic for Application), tentunya kita perlu tahu objek apa yang ingin kita olah. Apakah itu warna pada cell? Menu pada ribbon? Dan seterusnya.

    Artikel berikut ini mencoba menjelaskan dengan simpel apa yang perlu kita perhatikan dari pengolahan object di Excel. Pada akhir artikel akan diberikan link langkah demi langkah pengerjaan latihan, sehingga Anda akan lebih memahami apa yang telah disampaikan. Semoga bermanfaat !

    Object

    Object atau objek secara sederhana merupakan elemen yang menjadi bagian dari dokumen Excel. Tiap objek memiliki tipenya sendiri, bisa berupa tombol, cell, worksheet, dokumen workbook, dan banyak lagi tipe lainnya.

    Contoh-contoh Objek (klik untuk memperbesar gambar)

    Nama Objek

    Tiap objek harus memiliki nama agar kita dapat kemudian menjadikannya sebagai referensi untuk diolah lebih lanjut. Nama tiap objek dapat dilihat pada kotak Name Box ketika kita aktif berada pada object tersebut.

    Kotak Name Box menunjukkan nama objek button (Button4)
    Download file Excel yang ditunjukkan pada gambar contoh tersebut disini.

    Hirarki dan Level Object

    Tiap objek pada dokumen Excel kita harus berada pada level tertentu dari suatu hirarki. Ini ada kaitannya dimana suatu objek biasanya menjadi bagian dari objek lain yang lebih besar.

    Sebagai contoh, objek tombol Button4 merupakan bagian dari objek worksheet Sheet1.

    Penulisan Nama Objek

    Agar dapat digunakan, penulisan nama object harus memperhatikan level hirarki. Beberapa contoh penulisannya adalah sebagai berikut.
    • Worksheets("Sheet1")
    • Sheet1
    • Sheet1.Range("B4")
    • Sheet1.Shapes("Button4")
    • Worksheets("Sheet1").Shapes("Button4")
    Mungkin sampai disini Anda sangat bingung bagaimana mengetahui penulisan yang harus menggunakan tipe Worksheets, Shapes, dll. Ditambah lagi penulisan nama ini kadang diapit dengan tanda kutip, dan kadang tidak. Pada kesempatan ini, penulis tidak akan membahas terlalu jauh dulu karena terkait konsep lain, jika Anda ingin meminta penjelasan lebih jauh, silahkan bergabung ke user group kami Facebook kami di http://goo.gl/TWjyub.

    Yang perlu diperhatikan pada penulisan di atas adalah tanda titik yang menunjukkan level antara objek satu dengan objek lainnya. Sebagai contoh, penulisan objek Shapes("Button4") setelah tanda titik dari Worksheets("Sheet1") menunjukkan bahwa Button4 merupakan bagian dari Sheet1.

    Property

    Selanjutnya, tiap object memiliki banyak property yang menentukan karakteristik objek tersebut, misalkan warna, posisi, format, dan lainnya. Nama object sendiri sebenarnya adalah salah satu property. Tiap property memiliki nilai. Nilai ini ada yang bisa dirubah dan ada yang tidak bisa dirubah melalui kode program kita.

    Penulisan Nama Property

    Nama property ditulis di belakang objek dengan pemisahan tanda titik. Berikut adalah beberapa contoh penulisan nama property.
    • Sheet1.Range("A1").Interior.Color
    • Sheet1.Shapes("Button4").Width

    Event

    Setelah kita mengetahui object dan property-nya, pertanyaan berikutnya adalah bagaimana kalau kita melakukan sesuatu terhadap object tersebut? Bagaimana kita menentukan apa yang harus dilakukan sebagai reaksinya?

    Inilah yang kita namakan dengan event atau peristiwa. Tiap event juga memiliki nama, dan bisa disisipkan potongan kode yang kita inginkan sebagai reaksi terhadap peristiwa tersebut.

    Beberapa event antara lain:
    • Event click, ketika terjadi klik pada objek tersebut.
    • Event change, ketika terjadi perubahan pada objek tersebut.

    Latihan VBA

    Untuk mengerti lebih lanjut mengenai konsep-konsep di atas, cobalah lakukan praktek latihan VBA pada halaman http://soal-latihan.belajarexcel.info/2013/10/praktek-vba-merubah-warna-cell-secara-acak.html.

    Semoga bermanfaat !


    VBA: Fungsi Warna RGB

    Pada VBA, pewarnaan cell ataupun objek lainnya sering menggunakan fungsi yang bernama RGB. Pada artikel berikut akan dijelaskan mengenai apa itu RGB dan bagaimana mencari nilai warna yang tepat untuk fungsi ini.

    Apa itu RGB?

    RGB adalah singkatan dari RedGreen dan Blue, (Merah, Hijau dan Biru). Kombinasi 3 warna cahaya ini akan membentuk semua warna yang bisa kita lihat - dengan berbagai intensitas yang berbeda. Tiap nilai intensitas akan diwakili angka dari 0 s/d 255.

    Dan fungsi RGB pada VBA akan menerima nilai ini pada 3 parameter dengan urutan warna sesuai dengan namanya. Berikut adalah 2 contoh penggunaan fungsi RGB:
    • RGB(123,30,20)
    • RGB(255,255,255)

    Mencari Nilai-nilai RGB

    Kita sudah mengerti fungsi tersebut, pertanyaan selanjutnya adalah bagaimana memasukkan nilai-nilai tersebut untuk mendapatkan warna yang kita inginkan?

    Jangan bingung, karena tiap dialog warna pada Excel memiliki informasi tersebut. Berikut adalah contoh pencarian nilai RGB menggunakan dialog warna text.
    • Pada tab Home, klik panah bawah pada icon Font Color, setelah itu pilih menu More Colors....

    • Pada dialog Colors, klik tab Custom. Pastikan Color model yang terpilih adalah RGB.
    • Klik warna yang diinginkan pada layar spektrum warna dan intensitas yang ada. Nilai R,G dan B akan muncul dan siap digunakan pada rumus RGB.

      Pada contoh gambar di bawah ini, warna ungu yang digunakan akan memiliki nilai fungsi RGB(163, 25, 143).

    • Selesai.


    Kasus VBA: Kombinasi Abjad beserta Permutasinya dengan Fungsi Rekursif

    Kombinasi dan permutasi adalah dua susunan yang sangat terkenal di bidang statistik dan probabilitas. Dengan mengetahui julmah populasi dari kedua susunan ini, para analis dapat memperkirakan kemungkinan terjadinya suatu peristiwa dengan lebih baik.

    Pada artikel kali ini, penulis akan mencoba berbagi file Excel yang menghasilkan data kombinasi dan permutasi seperti pada gambar berikut. File ini dapat di-download disini.


    Adapun penggunaannya cukup sederhana:
    1. Masukkan deretan abjad A,B,C, dan seterusnya pada cell H1.
    2. Masukkan jumlah pasangan abjad pada cell H2.
    3. Klik tombol Permutasi untuk menghasilkan populasi permutasi (sensitif terhadap posisi abjad) dari susunan abjad no.1 di atas.
    4. Klik tombol Kombinasi untuk menghasilkan populasi kombinasi (posisi tidak dipermasahkan) dari susunan abjad no.1 di atas.
    Fungsi rekursif yang digunakan pada modul ini terlihat pada kedua gambar berikut.




    Terlihat fungsi Permutasi dan Kombinasi akan memanggil dirinya sendiri dengan indikator pemberhentian fungsi rekursif adalah pada parameter level.

    Cobalah download file contoh tersebut disini, jika ada pertanyaan penulis sangat terbuka untuk berdiskusi dan menjawab di user group Facebook kita di https://www.facebook.com/groups/belajarexcelinfo.

    Akhir kata, semoga artikel ini bisa bermanfaat buat kita semua !

    Mengaktifkan Tab Developer pada Excel 2010

    Pada tutorial VBA dasar, penulis menunjukkan bagaimana developer tab diaktifkan di MS Excel 2007. Nah, ternyata terdapat perbedaanuntuk mengaktifkan tab yang sama di MS Excel 2010.

    Berikut adalah langkah-langkah untuk mengaktifkan tab developer di MS Excel 2010:

    1. Pilih menu tab File | Options.

    2. Pada dialog Excel Options, pilih Customize Ribbon pada bagian panel kiri.

    3. Pada bagian Choose commands from:, pilih Main Tabs.
    4. Pilih Developer dan klik tombol "Add >>".

    5. Klik tombol OK.
    6. Tab Developer sudah aktif dan siap digunakan.

    7. Selesai.

    Tutorial VBA dan Macro Dasar dengan Excel 2007

    Visual Basic for Application atau VBA adalah sebuah bahasa pemrograman yang dibuat oleh Microsoft dan dapat digunakan untuk meningkatkan kemampuan aplikasi Office, termasuk di dalamnya Excel.

    Macro sendiri adalah kumpulan command dan prosedur untuk melakukan tugas tertentu, disimpan dalam bentuk modul pada file Excel. Macro dapat dipanggil untuk menanggapi suatu kejadian (event) seperti suatu klik pada tombol.

    Dengan banyaknya masukan kepada kami untuk membuat artikel tutorial sederhana mengenai VBA dan Macro, kami coba jawab dengan artikel tutorial berikut dengan format ringkas, praktis, tapi padat.  Semoga artikel ini bisa bermanfaat untuk melangkah ke tahap belajar selanjutnya.

    Praktek 1 : Mengaktifkan Tab Developer

    Tab Developer berisi menu-menu yang akan kita gunakan untuk bekerja dengan VBA, berikut adalah langkah-langkah untuk mengaktifkan tab tersebut :
    1. Jalankan aplikasi Microsoft Excel 2007.
    2. Klik menu Office.

    3. Klik tombol Excel Options.

    4. Pada dialog yang muncul, pilih kategori Popular pada bagian panel kiri.
    5. Aktifkan opsi Show Developer tab in the Ribbon.

    6. Klik tombol OK.
    7. Pastikan tab Developer sudah terlihat pada Ribbon.

    Praktek 2 : Visual Basic Editor (Editor)

    1. Klik tab Developer pada Ribbon, dari group Code klik Visual Basic (atau tekan Alt+F11).

    2. Akan muncul Visual Basic Editor, yang merupakan tempat dimana kita memasukkan dan mencoba kode program kita.

    3. Pada panel kiri atas - bagian project, klik kanan pada Sheet1 dari project dengan nama VBAProject (Book1), kemudian pilih menu View Code.



      Ini akan membuka tampilan editor untuk code kita, yang akan dikelompokkan dalam suatu module. Ketikkan code berikut pada editor tersebut.

      Private Sub HelloWorld()
              Worksheets("Sheet1").Range("A1").Value = "Hello World"
              Worksheets("Sheet1").Range("C3").Value = "Hello World"
      End Sub

      Penjelasan : Code ini adalah perintah membuat satu procedure dengan nama HelloWorld, yang didefinisikan di dalam Private Sub ... End Sub.
    4. Arahkan cursor Anda pada bagian dalam prosedur tersebut dan tekan tombol F5 untuk menjalankan program kita. 
    5. Anda akan diminta untuk menyimpan file, masukkan nama BelajarVBA.xlsm. Perhatikan ekstensi yang disimpan bukan tipe xlsx. File .xlsm merupakan file Excel dimana makro diperbolehkan atau disebut dengan Excel Macro-Enabled Workbook file.
    6. Mari kembali ke worksheet kita, Anda akan menemukan bahwa pada Sheet1 sudah terisi kata "Hello World" pada cell A1 dan C3.

    Praktek 3 : Menambahkan Visual Control

    Control adalah komponen visual / grafis seperti tombol, yang dapat ditempatkan pada worksheet kita sehingga aplikasi kita menjadi lebih interaktif. Berikut adalah contoh penggunaan control : 
    1. Masih pada Sheet1, coba arahkan cursor ke alamat E1.
    2. Pada tab Developer, group Controls, klik gambar panah bawah kecil pada menu Insert. Dari pilihan yang muncul klik Spin Button (Form Control), gambar bentuknya pada sheet kita.

    3. Klik kanan pada spinner tersebut, dan pilih Format Control.
    4. Pada dialog yang muncul, klik tab Control dan masukkan nilai-nilai berikut, dan klik tombol OK setelah selesai.
      • Current Value : 0.
      • Minimum Value : 0.
      • Maximum Value : 200.
      • Incremental Change : 25.
      • Cell link : A2.
    5. Cobalah klik gambar panah pada spinner dan perhatikan perubahan nilai yang terjadi pada cell A2.

    Praktek 4 : Menambahkan Macro sebagai Event Handling pada Control

    1. Klik kanan pada spinner control tersebut, pilih Assign Macro
    2. Pada dialog yang muncul klik tombol New.
    3. Editor VBE akan muncul kembali dengan cursor berada pada prosedur bernama Spinner[INDEX]_Change(). Tambahkan code berikut pada body prosedur.

      Dim NilaiSpinner As Integer

      NilaiSpinner = ThisWorkbook.Sheets(
      1).Spinners(1).Value

      ThisWorkbook.Sheets(
      1).Spinners(1).Top = NilaiSpinner

    4. Simpan dengan menekan CTRL + S.
    5. Kembali ke worksheet dan coba klik spinner kita, akan terlihat spinner kita bergerak ke atas atau ke bawah sesuai irama klik tombol panah atas bawah pada spinner.

    Praktek 5 : Menyimpan dan Membuka Kembali Workbook VBA kita

    1. Tutup dan kemudian buka kembali workbook kita.
    2. Secara default, Excel 2007 akan menonaktifkan perintah VBA / Macro pada workbook yang kita buka. Terlihat pada security warning yang muncul pada bar bagian atas worksheet (gambar).

    3. Klik tombol Options pada bar tersebut.
    4. Pilih opsi Enable this content, klik tombol OK.
    5. Anda sudah dapat menjalankan kembali code VBA Anda.
    6. Selesai.

    Kesimpulan

    Demikian kami tuangkan cara penggunaan dasar VBA dengan break down praktek 1 sampai dengan 5. Semoga ini dapat memberikan sedikit pengalaman dan pencerahan bagi Anda untuk melanjutkan pembelajaran melalui berbagai artikel VBA yang ada di internet maupun media lainnya.

    Saat ini artikel VBA disadari masih belum cukup, namun akan ditingkatkan jumlah dan kualitasnya. Untuk Anda yang ingin berdiskusi lebih jauh mengenai makro dan VBA, penulis mengajak Anda bergabung di user group Facebook kita berikut yang saat ini cukup aktif dan telah beberapa kali membahas VBA.

      Mengaktifkan Tab Developer pada Ribbon Excel 2007

      Apa itu Tab Developer ?

      Tab Developer adalah tab yang digunakan untuk mengelola lingkungan pemrograman kita pada Excel 2007. Screenshot tab ini pada ribbon Excel 2007 tampak sebagai berikut.

      Tab Developer yang Sudah Aktif
      Tab Developer tidak aktif secara default pada awalnya, sehingga jika Anda lebih nyaman bekerja dengan menu berupa tab maka sebaiknya Anda mengikuti langkah-langkah berikut untuk mengaktifkan tab ini.

      Mengaktifkan Tab Developer pada Ribbon

      1. Klik menu Office.

      2. Klik tombol Excel Options.

      3. Pada dialog yang muncul, pilih kategori Popular pada bagian panel kiri.
      4. Aktifkan opsi Show Developer tab in the Ribbon.

      5. Klik tombol OK.
      6. Pastikan tab Developer sudah terlihat pada Ribbon Excel 2007.

      7. Selesai.

      Sumber Referensi

      Launching E-BOOK EIUG: Form Entry Sederhana dengan Excel VBA

      Pengunjung BelajarExcel.info Yang Saya Hormati, Pada tanggal 14 Juni 2014,Excel Indonesia User Group (EIUG) yang merupakan salah satu k...