Tampilkan postingan dengan label Loop. Tampilkan semua postingan
Tampilkan postingan dengan label Loop. Tampilkan semua postingan

Kode Macro VBA untuk menampilkan Informasi Data Dari 3 Kriteria

kriteria macro vba

Banyak cara yang digunakan dalam menentukan ukuran yang menjadi dasar untuk menampikan atau menyembunyikan suatu data, atau lebih mudahnya disebut sebagai kriteria. Ya, suatu kriteria dapat digunakan sebagai patokan kapan atau bagaimana data-data tersebut ingin ditampilkan, atau diambil untuk kemudian diolah lagi dengan data lainnya.

Ambil contoh seperti berikut, seorang pengunjung toko handphone ingin mengetahui harga sebuah produk, sebut saja VIVO versi V5 yang dibuat atau direlease di tahun 2015, serta ingin mengetahui juga ketersediaan barangnya. Dan jika dari kumpulan data-data yang tersimpan didalam komputer tersebut memiliki informasi berupa merk VIVO dengan versi V5-nya serta buatan tahun 2015, maka komputer atau aplikasi akan menampilkan informasi harga serta stok barang sesuai dengan kriteria yang dimasukkan oleh pengunjung toko tersebut.

Nah dari gambaran diatas, variabel seperti VIVO, V5 dan tahun 2015 adalah sebuah kondisi yang harus dipenuhi untuk menampilkan hasil berupa Informasi Harga Produk dan Stok Barang.

Jika contoh diatas diterjemahkan dalam sekumpulan data Microsoft Excel, maka tampilannya kurang lebih seperti berikut :
Data toko handphone

Ok, sekarang kita akan mencoba melakukan pencarian data seperti yang dilakukan oleh pengunjung toko handphone menggunakan data-data yang tersimpan dalam Microsoft Excel.
Saya berasumsi data-data yang tersimpan di komputer memiliki susunan yang kurang lebih seperti apa yang saya sajikan diatas. Dan selanjutnya kita akan mencari nilai dari sekumpulan data-data yang sudah ada ini untuk menampilkan informasi berdasarkan 3 (tiga) buah kriteria seperti yang sudah saya gambarkan sebelumnya.
Dan sesuai dengan judul tutorial ini, maka syarat yang tidak kalah penting yang harus dilakukan terlebih dahulu adalah menonaktifkan keamanaan Macro Microsoft Excel anda, agar nantinya kode-kode yang ditulis bisa dijalankan secara maksimal.

Jika persiapan sudah oke, silahkan ikuti langkah demi langkah yang saya sajikan berikut ini :
  1. Aktifkan terlebih dahulu jendela Microsoft Visual Basic Editor jika belum, yakni dengan menekan tombol pintas ALT+F11
  2. Buat sebuah module baru melalui menubar Insert, kemudian pilih Module
  3. Tulis atau tempelkan sederetan baris Macro VBA berikut ini di dalam module yang sudah dibuat dilangkah sebelumnya
    Sub TigaKriteria()
    On Error Resume Next
    Dim a, b As Variant 
    Dim c As Double 
    Dim psn As Boolean
    Dim isi
    psn = False
    isi = Cells(Rows.Count, 1).End(xlUp).Row
    
    a = Application.InputBox("Nama item atau produk")
    b = Application.InputBox("Jenis versi produk")
    c = Application.InputBox("Tahun dibuat")
    For i = 2 To isi
    If InStr(UCase(Cells(i, 2)), UCase(a)) And _
       InStr(UCase(Cells(i, 3)), UCase(b)) And _
       Cells(i, 4) = c Then
    If psn = False Then
        MsgBox "Hasil pencarian untuk item : " & _
                Cells(i, 2) & " " & Cells(i, 3) & " " & Cells(i, 4) & vbCr & _
                "Price : " & Format(Cells(i, 5), "#,##0") & vbCr & _
                "Stok : " & Cells(i, 6) & " bh"
        psn = True
    End If
    End If
    Next
    End Sub

    Untuk lebih memahami kode-kode yang sudah saya tuliskan ini dan tidak asal copy-paste, berikut akan saya jelaskan secara singkat baris-baris penting yang terdapat dalam serangkaian kode Macro VBA diatas
    • On error resume next
      adalah sebuah statement yang akan mengabaikan semua perintah jika terjadi sebuah kesalahan
    • Dim a, b As Variant
      saya mendeklarasikan variabel a dan variabel b sebagai variant, karena nantinya nilai-nilai yang terdapat dalam variabel ini berisi sebuah teks (nama item dan versi handphone)
    • Dim c As Double / Long
      sesuai dengan cerita contoh diatas bahwa terdapat sebuah variabel yang menunjukkan tahun dikeluarkannya sebuah produk Handphone, maka variabel c saya deklarasikan sebagai Double atau anda juga bisa mendeklarasikan sebagai Long agar dapat menyimpan nilai sebagai angka (numeric)
    • Dim psn As Boolean
      Untuk variabel psn, saya fungsikan ia sebagai sebuah Boolean agar ia bisa menyimpan nilai TRUE atau FALSE. Variabel nilai psn sendiri saya gunakan agar nantinya kotak pesan (MsgBox) tidak muncul secara berulang-ulang
    • psn = False
      melanjutkan dari penjelasan sebelumnya, variabel psn yang sudah saya deklarasikan sebagai Boolean saya beri dia nilai awal dengan nilai FALSE.
      Variabel dan nilai dari psn ini bersifat pilihan, artinya jika anda ingin menampilkan hasil pencarian langsung ke dalam lembar kerja maka anda tidak perlu menempatkan baris perintah ini
    • isi = Cells....
      Baris kode ini memuat sebuah nilai yang dapat digunakan untuk mencari informasi baris terakhir yang berisi data berdasarkan kolom A atau indeks kolom ke-1, sehingga ia akan mencari jumlah atau banyaknya data secara otomatis
    • a = ... nama item
      Nilai ini dideklarasikan sebagai sebuah Variant yang digunakan sebagai kriteria pertama, dan untuk contoh ini kriteria yang dimaksud adalah Nama Item yang dapat dimasukkan melalui jendela InputBox
    • b = ... versi produk
      sama seperti nilai a, hanya saja ia di dijadikan sebagai kriteria kedua yakni akan membaca versi sebuah produk
    • c = ...tahun
      Berbeda dengan nilai a dan nilai b, nilai ini menyimpan informasi sebagai angka dan dijadikan sebagai kriteria ketiga.
    • For i = 2 to Isi
      Baris ini merupakan perintah awal untuk pengulangan (loop), yang mana pengulangan akan dibaca mulai dari baris ke-2 sampai dengan baris sebanyak yang diketahui oleh nilai yang didapatkan oleh variabel isi
    • If InStr.......
      Kata kunci dari bahasa logika yang cukup panjang ini terdapat dalam baris perintah InStr...., saya gunakan untuk 'mengunci' dan mencari kesamaan nilai antara nilai yang dimasukkan di setiap variabel dengan kolom indeks yang sesuai dengan kriteria yang dimasukkan, seperti :
      • variabel a memiliki nilai sama dengan nilai yang ada di kolom indeks ke-2, dan
      • variabel b memiliki nilai sama dengan nilai yang ada di kolom indeks ke-3, dan
      • variabel c memiliki nilai sama dengan nilai yang ada di kolom indeks ke-4
      dengan menggunakan parameter InStr..., Maka Macro VBA akan 'memaksa' untuk menyamakan penulisan karakter huruf besar atau huruf kecil agar tidak bersifat case-sensitive.
      Masih dalam logika IF yang pertama, dimana jika semua kondisi-kondisi ini terpenuhi maka baris perintah yang akan dieksekusi adalah :
      • If Psn = False
        Ok, logika If ini kita sebut saja sebagai logika IF yang kedua dimana ia terdapat didalam logika IF yang pertama yang mana fungsi utama dari logika IF kedua ini adalah jika variabel nilai psn adalah False (lihat penjelasan psn = False), maka sebuah kotak pesan dengan berbagai informasi pencarian akan ditampilkan.
        Dan setelah logika IF yang kedua ini dieksekusi, maka variabel psn saya rubah nilainya menjadi TRUE agar nantinya hasil pencarian TIDAK ditampilkan secara berulang-ulang
      • End IF
        Adalah sebuah parameter yang wajib dituliskan untuk menutup Logika IF. Karena dalam tutorial ini saya menggunakan 2 logika IF maka parameter End IF berjumlah 2
    • Next
      Baris perintah terakhir dari serangkaian kode Macro VBA ini adalah parameter Next, sebagai penutup dari parameter For i.....

Barangkali serangkaian baris kode Macro VBA yang kita tuliskan jika dibahasakan dalam bahasa sehari-hari kurang lebih seperti setiap poin yang saya jelaskan diatas. Dan mudah-mudahan penjelasannya bisa dimengerti.
Namun jika anda menemui kendala, silahkan anda tuliskan beberapa hal yang masih belum dipahami dari tutorial ini dalam kolom komentar dibawah.

Sebagai penutup, berikut saya tampilkan hasil akhir dari tutorial ini. Dan jika anda mengikuti langkah demi langkah yang saya berikan dalam tutorial ini, maka andapun akan mendapatkan hasil akhir seperti yang tampak dalam tampilan berikut
Kode Macro VBA 3 Kriteria

Selamat... anda sudah berhasil mengetahui bagaimana caranya menampilkan informasi berdasarkan 3 (tiga) buah kriteria yang diinput atau dimasukkan melalui jendela InputBox. Mudah-mudahan tutorial kali ada guna dan manfaatnya, dan membantu anda menyelesaikan permasalah excel yang saat ini anda hadapi.
Silahkan bookmark website ini jika anda suka dengan tutorial-tutorial yang telah kami sajikan, dan jangan lupa kunjungi kami lain waktu untuk mengetahui kehebatan Microsoft Excel lainnya bersama excelive.com. Despedida.

Membuat Kotak Pesan Agar Tampil Sekali Dalam Parameter For..Next

msgbox - xcelive

Hampir setiap aplikasi komputer memiliki kotak pesan yang berisi beragam informasi yang bertugas memberitahu kepada pengguna akan apa yang sedang dikerjakan, yang mana munculnya kotak pesan ini dipicu oleh bermacam kondisi dan situasi, sebut saja ketika pengguna berhasil menyimpan hasil pekerjaannya atau ketika pengguna melakukan sesuatu yang 'dilarang' oleh aplikasi tersebut, atau sekedar ingin menampilkan infomasi kepada pengguna tentang status dari pekerjaannya.

Berbagai macam kondisi yang menyebabkan munculnya kotak pesan tentunya berbeda antara aplikasi satu dengan lainnya, namun pada intinya munculnya kotak pesan disebabkan karena terdapat sesuatu yang memicunya. Tujuan dari kotak pesan memang ingin menampilkan informasi kepada pengguna tentang apa yang ia kerjakan dan biasanya juga menampilkan bantuan yang bertujuan untuk membantu pengguna dalam mengoperasikan aplikasi yang dimaksud.

Meskipun boleh dibilang bahwa munculnya jendela kotak pesan dapat membantu pengguna dalam memutuskan apa yang seharusnya dilakukan. Namun terkadang munculnya bisa sangat menggangu dan bahkan tidak diharapkan, terlebih ketika kotak pesan disematkan dalam module pengulangan - sebut saja parameter yang digunakan adalah For...Next. Ya, parameter For..Next adalah salah satu parameter yang terdapat dalam Macro VBA Microsoft Excel yang memungkinkan suatu perintah dapat diulang-ulang beberapa kali dan akan berhenti sampai suatu kondisi telah terpenuhi.

Coba perhatikan pernyataan berikut :
Seorang user ingin mengisi baris 1 sampai dengan baris ke 3 pada kolom A dengan huruf ABC
Maka dari pernyataan di atas dapat disimpulkan bahwa pengulangan perintah terjadi selama 3 kali, yakni perintah untuk mengisi huruf ABC mulai dari baris ke-1 dan akan berhenti pada saat masuk baris ke-3.
Bahasa kode VBA sederhana untuk menerjemahkan kalimat diatas adalah :
For a = 1 to 3
  Cells(a,1) = "ABC"
next 
Nah, sekarang coba bayangkan jika sebuah parameter MsgBox ditempatkan dalam parameter ini, pasti yang terjadi adalah pesan yang sama akan dibuka secara berulang-ulang sebanyak 3 kali. dan ini jelas-jelas akan sangat menganggu. Silahkan lihat kotak pesan yang muncul pada demonstrasi berikut
xcelive - loop msgbox

Demonstrasi diatas dihasilkan dari kode Macro VBA seperti ini
For a = 1 to 3
  MsgBox "Pengulangan sebanyak " & a & " kali"
next
Dari kode diatas, saya hanya melakukan pengulangan perintah sebanyak 3 kali saja namun saya sangat terganggu dengan munculnya kotak pesan setiap kali pengungalan dilakukan. Bagaimana jika saya ingin melakukan pengulangan lebih banyak dari ini?! Mungkin capek dan tentu kesal karena harus menekan tombol OK pada jendela kotak pesan agar bisa menuju ke pengulangan berikutnya hingga selesai.

Untungnya dengan menggunakan bantuan logika sederhana, 'kesalahan' ini bisa diatasi dan menghasilkan sesuatu yang seharusnya, yakni menampilkan kotak pesan cukup hanya sekali saja meskipun berkali-kali melakukan pengulangan perintah.
Jika ingin mencobanya, tulis baris kode Macro VBA berikut dalam sebuah Module kemudian jalankan dengan menekan tombol F5 di keyboard anda.
Sub PesanSekali()
Dim Pesan As Boolean
Pesan = True

For a = 1 To 3
If Pesan = True Then
  MsgBox "Pengulangan sebanyak " & a & " kali"
  Pesan = False
End If
Next
End Sub

Rangkuman dan penjelasan singkat kode Macro VBA diatas :
  1. Pesan As Boolean
    Sebuah variabel Macro VBA yang dapat digunakan untuk menyimpan nilai TRUE atau FALSE
  2. Pesan = True
    Digunakan untuk menentukan nilai awal dari nilai Pesan, yakni nilai TRUE
  3. For a = ....
    Berfungsi untuk melakukan pengulangan perintah sebanyak 3 kali
  4. If Pesan = True
    Baris ini berfungsi untuk melakukan pengecekan sebelum mengeksekusi perintah-perintah setelahnya, yakni jika kondisi dari nilai Pesan adalah TRUE.
    Dan karena sebelumnya kita sudah menentukan nilai Pesan dengan nilai TRUE, maka pasti perintah selanjutnya akan dieksekusi
  5. Pesan = False
    Nah, inilah baris perintah yang digunakan untuk menghentikan munculnya jendela kotak pesan secara berulang-ulang, karena paremeter dari Logika IF yang dituliskan sebelumnya hanya akan menjalankan perintah jika status dari nilai Pesan = TRUE
Hasil akhir yang diperoleh dari kumpulan baris perintah Macro VBA yang sudah dibuat diatas tampak seperti dalam tampilan berikut :
kotak pesan berulang - xcelive

Lantas bagaimana cara mengkombinasikannya dengan kode-kode atau perintah lainnya?!
Untuk mengetahui kegunaan dan cara mengaplikasikan kedalam baris perintah yang lebih kompleks, silahkan kunjungi tutorialnya disini

Sebagai penutup untuk tutorial kali ini, saya ucapakan selamat kepada anda karena sudah berhasil mengetahui bagaimana caranya menghentikan munculnya kotak pesan agar tidak tampil secara berulang-ulang ketika di sematkan dalam parameter For..Next. Mudah-mudahan tutorial kali ada guna dan manfaatnya, dan membantu anda dalam menyelesaikan permasalah excel yang saat ini anda hadapi.
Silahkan bookmark website ini jika anda suka dengan tutorial-tutorial yang telah kami sajikan, dan jangan lupa kunjungi kami lain waktu untuk mengetahui kehebatan Microsoft Excel lainnya bersama xcelive.com. We'll be right back
Follow my blog with Bloglovin


Begini Caranya Mengekstrak Huruf atau Angka Dari Data Acak

ekstrak angka dan huruf

Saya pernah mendapat sebuah file hasil download dari internet yang mana isinya menjadi berantakan ketika saya buka di lembar kerja Ms. Excel, tidak sama dengan tampilan yang terlihat di situs tempat saya download file tersebut. Entah apa ini disebabkan karena saya salah dalam memilih jenis formatnya atau yang lainnya. Esoknya ketika saya mencoba download ulang file tersebut, saya lupa dengan alamat website-nya - nahasnya, saya coba cari di history browsing alamat sudah tidak tersedia alias sudah bersih, mungkin ada pengguna lain setelah saya yang menghapus data cache browser.

Cukup lama saya googling dan mencari alamat website penyedia file yang sudah berhasil saya download dihari sebelumnya, akan tetapi tak juga kunjung bertemu dengannya. Dan akhirnya, saya pun menyerah, dan tidak ingin membuang-buang waktu untuk mencari alamat yang saya sudah lupa.
Untung saja file yang saya download memiliki ekstensi .xls atau format file Microsoft Excel, jadinya saya bisa mengutak-atik isinya dengan sedikit kemampuan yang saya miliki, yang sekarang saya share kepada anda semuanya.

Saya tidak akan menampilkan file hasil download yang berantakan ketika saya buka di program Microsoft Excel, akan tetapi saya akan memberikan contoh yang mudah untuk di mengerti serta memiliki struktur yang hampir mirip dengan file tersebut - yang isinya kurang lebih seperti ini
Data Acak
Contoh data di atas pada dasarnya terdiri dari dua jenis, yakni huruf dan angka. Akan tetapi agak susah dibaca jika dalam kondisi penulisan yang berantakan seperti yang saya tulis diatas.
Nah, pada kesempatan ini saya akan share sebuah kode Macro VBA untuk membongkar data tersebut dan memisahkannya agar lebih enak dipandang dan tentunya agar lebih mudah dibaca.

Dan seperti biasa, karena yang akan saya share adalah berupa kode Macro VBA, maka pastikan jendela Microsoft Visual Basic Editor sudah diaktifkan, jika belum silahkan tekan tombol pintas ALT+F11.
Selanjutnya adalah buat sebuah Module Baru, kemudian silahkan masukkan kode berikut kedalamnya.
Sub extext()
Dim a, b, c As Long
Dim d, e As Variant

Range("E:F").Clear
For a = 1 To 5
e = Cells(a, 1)
b = Len(e)
For c = 1 To b
    If Mid(e, c, 1) >= "0" And Mid(e, c, 1) <= "9" Then
        Cells(a, 5) = Cells(a, 5) & Mid(e, c, 1)
    ElseIf Mid(e, c, 1) > "9" Then
        Cells(a, 6) = Cells(a, 6) & Mid(e, c, 1)
    End If
Next
Next a
End Sub
Dua baris pertama dari kode diatas bertugas untuk mendeklarasikan nilai , kemudian dilanjutkan dengan perintah untuk menghapus kolom E dan F. Perintah ini saya gunakan untuk membersihkan kolom tempat peletakan hasil ekstraksi, agar tidak terjadi penumpukan hasil.

Baris perintah inti dari kode di atas, penjelasan singkatnya kurang lebih sebagai berikut:
  1. nilai a terdiri dari nilai 1 sampai dengan 5, yang mana nantinya digunakan untuk membaca baris. Banyaknya jumlah baris bisa disesuaikan dengan banyaknya data yang tersimpan dalam lembar kerja, atau juga bisa menggunakan kode Current Region untuk mendeteksi jumlah baris secara otomatis.
  2. nilai e berasal dari baris ke-a dan kolom pertama
  3. nilai b berfungsi untuk membaca berapa jumlah karakter yang didapat dari nilai e
  4. nilai c memiliki fungsi yang hampir sama dengan nilai a, hanya saja nilai ini akan melakukan pengulangan mulai nilai 1 hingga panjang karakter yang terdapat di nilai b. Sementara didalam struktur perintah c, terdapat sebuah kondisi yang harus dipenuhi antara lain:
    • Jika karakter yang terdapat di nilai e (baris ke-a dan kolom 1) untuk setiap karakter ke-c (karakter 1 hingga panjang yang didapatkan dari perintah atau nilai b) mempunyai nilai lebih kecil sama dengan 0 (nol) dan lebih besar sama dengan 9 (sembilan), maka sel ke-a kolom ke-5 akan diisi dan ditambahkan dengan nilai yang berisi angka.
    • Kondisi yang kedua adalah, jika karakter-karakter tersebut memiliki nilai lebih besar dari 9, maka hasilnya berupa teks dan akan di letakkan di sel ke-a dan kolom ke-6
  5. Selesai.

Sekilas, bahasa logika diatas terkesan membingungkan, akan tetapi jika dipahami dengan seksama maka saya yakin anda akan mudah untuk memahaminya. Dan untuk melengkapi tutorial ini, seperti biasa saya akan menampilkan hasil akhir seperti dalam tampilan berikut :
ekstrak data acak

Selamat, anda sekarang sudah bisa memecah dan memisahkan antara karakter berupa huruf dan angka dari data acak. Semoga tutorial kali ini ada guna dan manfaatnya untuk anda, dan bisa dengan mudah untuk dipahami.
Silahkan bookmark situs kami dan kunjungi kami lain waktu untuk mengetahui kehebatan Microsoft Excel lainnya bersama excelive.com. Arrivederci !!


Menampilkan Informasi Nama Bulan Sebelumnya Dari Tanggal Saat Ini

Menampilkan nama bulan terakhir

Jika anda terbiasa dengan internet banking, mungkin anda bisa menebak kemana arah dan tujuan dari pembahasan kali ini. Ya, karena fitur ini terdapat dalam salah satu menu internet banking, yakni ketika pengguna ingin melihat rekening koran atau mutasi bulanan pembukuan perbankan - yang pada umumnya pengguna hanya diberikan akses untuk melihat pembukuan selama dua atau tiga bulan terakhir dari tanggal saat ini.

Salah satu contoh internet banking yang menerapkan konsep seperti ini adalah Klik BCA, seperti yang terlihat dalam tampilan berikut :
Klik BCA
Gambar disamping merupakan gambar dari rekening pribadi yang saya ambil bersamaan dengan dibuatnya postingan ini, sebagai contoh agar lebih mudah memahami tujuan dari tutorial kali ini.
Dan jika anda lihat, situs KlikBCA memungkinkan pengguna untuk melihat, mencetak, dan atau mendownload mutasi rekening maksimal 2 bulan sebelumnya yang ditampilkan dalam kotak ComboBox. Tentu hal ini cukup beralasan, dan mungkin salah satu alasannya adalah agar tidak membebani tugas server dalam menampikan informasi rekening yang hanya dibatasi maksimal 2 bulan terdahulu.

Kembali ke pokok pembahasan Microsoft Excel.
Bayangkan jika anda memiliki sekumpulan data transaksi keuangan yang tersimpan dalam lembar kerja dalam jumlah yang sangat banyak, kemudian anda ingin membatasi pengguna agar bisa melihat transaksi selama 2 atau 3 bulan terakhir saja agar kinerja komputer tidak terlalu berat. Maka, konsep dari situs KlikBCA seperti gambar diatas dapat anda jadikan sebagai alternatifnya.

Ok, tutorial ini dibuat dengan menggunakan sebuah ComboBox yang diletakkan didalam Userform, jadi silahkan anda buat dan desain dulu UserForm serta ComboBox nya. Kemudian tuliskan kode berikut dan letakkan ke dalam even UserForm Initialize, agar ComboBox dapat terisi secara otomatis dengan nama-nama bulan sebelumnya ketika Userform dibuka atau aktifkan.
Dim a As Long
Dim b As Variant
For a = 2 To 0 Step -1
b = Month(Date) - a
ComboBox1.AddItem Format(DateSerial(Year(Date), b, 1), "mmmm yyyy")
Next a
Penjelasan Singkat dari kode diatas :
  1. Daftar-daftar yang terdapat di ComboBox tidak ditulis secara manual, akan tetapi ditulis secara otomatis dengan menggunakan perintah pengulangan (Loop For...Next) dengan cara dihitung mundur (Step -1) mulai dari angka 2 sampai dengan angka 0.
    Artinya bahwa kode-kode berikutnya nanti akan mengambil informasi dari nilai ini.
  2. Sementara untuk mengisi nama-nama bulan, menggunakan perintah Month(Date) yang akan menghasilkan nama-nama bulan berdasarkan tanggal yang terdapat dalam system komputer. Namun untuk menampilkan hanya beberapa nama bulan terakhir dari 12 nama bulan tersebut, maka baris perintah ini harus dikurangi dengan nilai a yakni 2 to 0 step -1. Dan hasil sementara dari pembacaan kode ini adalah;
    > bulan sekarang - 2
    > bulan sekarang - 1
    > bulan sekarang - 0 (nama bulan yang saat ini aktif)
    Jika anda tidak ingin menampilkan nama bulan saat ini ke dalam daftar ListBox ataupun ComboBox, silahkan ganti parameter nilai a menjadi 2 to 1 Step -1
  3. Terakhir adalah, menampilkan nama bulan tersebut dengan menggunakan parameter standar untuk mengisi daftar ListBox maupun ComboBox, yakni menggunakan parameter AddItem. Akan tetapi, sekali lagi item atau nama-nama bulan tidak harus diketik secara manual, ia berasal dari parameter b, yakni Month(Date) - a.
    Belum selesai sampai disini, karena parameter Month(Date) - a hanya akan menghasilkan indeks nama bulan, seperti nilai 12 untuk Desember, 7 untuk Juli, 5 untuk bulan Mei, dan seterusnya.

    Maka dari itu agar Indeks tersebut berbunyi nama-nama bulan, maka item b harus disematkan dalam parameter Format dengan penulisan lengkapnya seperti berikut :
    Format(DateSerial(Year(Date), b, 1), "mmmm")
    • nilai "mmmm" akan mengkonversi indeks menjadi nama bulan dengan model nama panjang.
    • anda dapat mengubah nilai "mmmm" menjadi "mmm" jika ingin menyingkat nama bulan.
    • atau anda bisa mengkombinasikan nilai ini seperti "mmmm yyyy" untuk menghasilkan nama bulan (format nama bulan panjang) dan di akhiri dengan tahun.

Finish.... dan silahkan lihat hasil dari tutorial ini
Menampilkan nama bulan terakhir

Sekarang Anda sudah berhasil mengetahui bagaimana caranya menampilkan nama beberapa bulan terakhir ke dalam jendela ListBox ataupun ComboBox menggunakan Macro VBA. Semoga belajar Macro VBA excel bersama excelive untuk edisi ini ada manfaatnya.
Kunjungi kami lain waktu untuk mengetahui kehebatan Microsoft Excel lainnya, see you soon.


Dua Cara Memisah Kalimat Menjadi Beberapa Bagian (huruf)

cara memecah kalimat

Kalimat adalah satuan bahasa terkecil, dalam wujud lisan maupun tulisan yang mengungkapkan pikiran secara utuh. Dalam wujud tulisan (string) kalimat terdiri dari beberapa huruf yang dirangkai sedemikian rupa untuk mengutarakan isi dari pikiran si pengguna.

Dari setiap huruf yang telah dirangkai tersebut, maka jadilah sebuah kalimat, dan setiap kalimat yang saling berhubungan antara satu dengan lainnya akan membentuk sebuah paragraf atau alinea. Jadi semua ini berasal dari sebuah huruf atau jika dibahasakan dalam bahasa pemrograman, ia dinamakan dengan string.

Nah, gabungan dari beberapa huruf-huruf tersebut akan kita coba untuk pisahkan menjadi beberapa bagian (per huruf) tergantung dari banyaknya jumlah huruf-huruf yang dipakai dalam kalimat atau paragraf yang ingin dipisahkan dengan menggunakan bantuan Macro VBA.

Kenapa harus Macro VBA??
Jawaban yang bisa saya berikan dari pertanyaan ini cukup sederhana yakni efektif dalam mengkalkulasi setiap paragraf, kalimat, atau kata yang akan dipecah, karena tidak banyaknya peran dari formula-formula yang akan dikalkulasi dalam lembar kerja.
Dengan kata lain, kasus seperti yang sudah diutarakan di atas tentu saja bisa dilakukan tanpa menggunakan bantuan Macro VBA atau bisa menggunakan formula sederhana.

Ok, sebelum mulai memecah kalimat, berikut ini adalah sekumpulan data-data yang akan kita pecah


Menggunakan Formula Excel
Formula yang digunakan untuk memecahkan solusi ini adalah gabungan dari formula MID dan formula COLUMNS.
Formula MID digunakan untuk menampilkan huruf atau karakter dari posisi yang ditentukan, sementara formula COLUMNS digunakan untuk mengetahui posisi kolom yang ada pada tabel yang sudah kita kelola.
Formula lengkap untuk memisahkan kalimat dari contoh gambar di atas adalah :
=MID($A2;COLUMNS($A:A);1)
Letakkan formula ini di sel B2 kemudian silahkan copy paste ke sel-sel yang diinginkan.
formula memisahkan kalimat

Formula di atas akan membaca spasi sebagai sebuah karakter, sehingga menghasilkan ruang kosong dalam hasil pemisahan kalimat-kalimat tersebut.

Baca Tutorial Formula Excel Lainnya
Solusi Handal Melakukan Pencarian
Kombinasi Fungsi Match dan Index
Mengenal Formula Pembulatan Angka
Konversi Angka ke Huruf

Menggunakan Macro VBA
Sekarang, mari kita coba memecahkan kasus di atas menggunakan bantuan Macro VBA.
Langkah awal yang harus anda lakukan adalah membuka terlebih dahulu jendela Microsoft Visual Basic Editor yang bisa anda akses menggunakan tombol pintas ALT+F11, kemudian tambahkan sebuah Module Baru dan ketikkan baris kode berikut didalamnya.
Sub Pisah_Kalimat ()
Baris = 2
For a = 2 To 4
    Kata = Replace(Cells(Baris, 1), " ", "")
    Pjg = Len(kata)
    Kolom = 2
For i = 1 To Pjg
    b = Mid(Kata, i, 1)
    Cells(Baris, Kolom) = b
    Kolom = Kolom + 1
Next
Baris = Baris + 1
Next
End Sub 
memisahkan kalimat menggunakan Macro VBA
Penjelasan singkat dari baris kode Macro VBA di atas :
  • Baris
    Adalah sebuah variabel yang berfungsi untuk menentukan letak awal dimana kalimat tersebut berada
  • For a = 2 to 4
    Baris perintah untuk melakukan pembacaan baris, yakni dimulai dari baris ke-2 hingga baris ke-4 (silahkan ubah nilai 4 jika terdapat beberapa baris yang ingin di proses)
    atau jika anda ingin agar pembacaan baris dapat dibaca secara otomatis, silahkan anda buat sebuah variabel baru untuk menggantikan nilai 4 - silahkan cari tutorial otomatisasi di situs ini
  • Kata
    Berfungsi untuk membaca setiap kalimat yang terdapat di baris yang sudah ditentukan dengan menghilangkan karakter spasi (Replace).
    Dan jika anda ingin agar karakter spasi tetap dituliskan, maka ganti baris kode ini menjadi Cells(Baris, 1)
  • Pjg
    Digunakan untuk mementukan jumlah panjang dari kalimat yang akan dipecah. Hal ini berfungsi untuk menentukan posisi kolom untuk meletakkan setiap hurufnya.
  • Kolom = 2
    Merupakan nilai indeks dari kolom sebagai awal untuk meletakkan hasil pemecahan kalimat, untuk tutorial ini kolom awalnya adalah kolom B (indeks = 2)
  • For i = 1 To Pjg
    Menentukan berapa banyaknya huruf yang nantinya akan dihasilkan
  • b = Mid(Kata, i, 1)
    Memiliki fungsi yang sama dengan formula MID dalam Microsoft Excel
  • Cells(Baris, Kolom) = b
    Bertugas untuk meletakkan hasil dari formula MID ke setiap sel-sel yang ditentukan oleh variabel Baris dan Kolom.
  • Kolom = Kolom + 1
    Berfungsi untuk melanjutkan atau meneruskan pembacaan kolom jika masih terdapat huruf-huruf yang harus ditulis.

Keputusan akhir ada di tangan anda, mana dari kedua metode di atas yang sesuai dengan kebutuhan anda untuk memecahkan permasalahan dalam hal memisahkan kalimat baik menggunakan Formula Excel atau menggunakan bantuan Macro VBA. Dan jika anda memutuskan untuk menggunakan Macro VBA, jangan lupa untuk menyimpan format file Microsoft Excel anda ke bentuk .xlsm atau .xlsb agar kode-kode yang sudah anda tulis ikut tersimpan dan tentunya agar bisa dijalankan.

Sekarang anda sudah mengetahui bagaimana caranya untuk memisahkan kalimat menjadi huruf-huruf baik menggunakan Formula Excel maupun dengan Macro VBA, dan semoga tutorial kali ini ada guna dan manfaatnya.
Silahkan kunjungi kami lain waktu untuk mengetahui kehebatan Microsoft Excel lainnya bersama excelive.com. see you soon.



Pencarian Berulang-ulang Berdasarkan Kriteria

looping search

Lagi...kita ditugaskan untuk melakukan pencarian, ya...apalagi kalau bukan mencari sebuah nilai, akan tetapi pencarian kali ini didasarkan sebuah kriteria tertentu. Jadi, apalagi yang kita tunggu.

Pencarian memang seringkali diperlukan ketika kita menghadapi sekumpulan data yang luar biasa banyak, dan Microsoft Excel sendiri menawarkan beragam metode atau pendekatan untuk melakuan sebuah pencarian, salah satu yang paling umum adalah melalui fitur Find and Replace yang bisa diakses mengunakan tombol pintas CTRL + F. Akan tetapi apakah hasil dari pencarian sesuai dengan yang diinginkan atau masih kurang?.

Memang dalam melakukan sebuah pencarian, ada baiknya menentukan terlebih dahulu apa yang ingin dicari dan hasil apa yang kita inginkan. Kalau hanya sebatas mencari dan mengganti sebuah teks yang terdapat di dalam lembar kerja, maka saya pikir tidak perlu menggunakan formula, atau bahkan mungkin sekumpulan baris kode VBA yang njlimet. Kita hanya perlu menekan tombol CTRL + F untuk menampilkan jendela Find and Replace dan memasukkan kata yang ingin dicari, maka kita akan langsung mendapatkan hasil sesuai dengan apa yang kita cari.

Saya yakin 100% bahwa Microsoft Excel memiliki beragam teknik pencarian selain yang sudah saya sebutkan di atas, terlebih jika hasil dari apa yang kita cari berdasarkan kriteria tertentu, maka CTRL + F bukanlah sebuah jawaban yang cukup memuaskan.

Pendekatan yang ingin saya bahas untuk tutorial kali ini adalah menggunakan fasilitas LOOP, dan lagi-lagi menggunakan Macro VBA untuk mencari data-data berdasarkan kriteria, dimana kriteria tersebut diletakkan dalam deretan kode Macro VBA.

Baca Tutorial Macro VBA Menggunakan Loop Lainnya
Dua cara memisahkan kalimat menjadi per huruf
Silahkan ulangi perintah jika salah!
Membuat kotak pesan secara berulang-ulang

Silahkan lihat data-data berikut:
data ganda ekskul siswa

Kalau anda perhatikan data di atas, Dina adalah salah satu siswa yang mengikuti kegiatan ekstrakurikuler sekolah lebih dari satu, sementara siswa yang lain hanya mengikuti satu macam ekskul saja. Maka, dalam melakukan pencarian, Dina bisa dikategorikan sebagai kriteria pencarian dan hasil dari pencarian tersebut akan menghasilkan ekskul Drumband, PMR, dan Seni Tari.

Jadi, untuk melakukan pencarian dari data-data tersebut, maka sudah bisa dipastikan bahwa fitur Find and Replace tidak bisa memberikan hasil yang diinginkan, dan otomatis opsi yang sangat memungkinkan adalah menggunakan bantuan Macro VBA. Dan, untungnya anda sudah menemukan artikel ini, karena baris kodenya sudah bisa langsung dipraktekkan.

Sub CariLagi()
Dim Rng As Range
Dim Hsl As Variant
For Each Rng In Sheets(1).Range("A2:A9")
    If Rng.Value = "Dina" Then
    Hsl = Hsl & Cells(Rng.Row, 2) & vbCr
    End If
Next
MsgBox "Jenis ekskul yang di ikuti Dina :" & vbCr & Hsl
End Sub
Catatan : kriteria pencarian untuk baris kode di atas bersifat sensitif, atau dengan kata lain kata "Dina" tidak sama dengan "dina"
Sebenarnya kriteria pencarian dengan menggunakan metode di atas agak sedikit 'memaksa', karena kita meyakini bahwa "Dina", "dina", atau "diNA" (tidak peduli menggunakan penulisan karakter huruf kecil atau huruf kapital) adalah siswa yang sama. Maka solusi untuk mengatasi permasalahan ini adalah dengan menggunakan Wildcard (baca tutorial wildcard lainnya disini), sehingga hasil penyempurnaan dari baris kode di atas adalah seperti berikut.

Sub CariLagi()
Dim Rng As Range
Dim Hsl As Variant
For Each Rng In Sheets(1).Range("A2:A9")
    If Rng.Value Like "*ina" Then
    Hsl = Hsl & Cells(Rng.Row, 2) & vbCr
    End If
Next
MsgBox "Jenis ekskul yang di ikuti Dina :" & vbCr & Hsl
End Sub

Kesimpulan dari tutorial ini saya kembalikan kepada anda semua, mana dari dua model pencarian di atas yang bagus dan yang terpenting adalah sesuai dengan kebutuhan anda.

Mau lihat tutorial ini di youtube??


Sekarang Anda sudah mengetahui bagaimana caranya untuk melakukan pencarian data menggunakan pendekatan metode Loop (For Each) dengan cepat. Semoga belajar Macro VBA anda bersama excelive untuk edisi ini cukup menyenangkan.
Kunjungi kami lain waktu untuk mengetahui kehebatan Microsoft Excel lainnya.



Silahkan Ulangi Perintah Jika Salah

pengulangan perintah

Judul diatas adalah sebuah pernyataan yang mengisyaratkan tentang sebuah kegiatan yang dilakukan secara berulang-ulang untuk memenuhi suatu permintaan yang telah ditentukan. Dengan kata lain, sekumpulan perintah akan terus menerus dilaksanakan sampai ia bertemu sebuah kondisi dimana ia harus dihentikan, yakni ketika syarat tertentu sudah terpenuhi.

Biar lebih gampang memahami alur dari perintah ini, saya akan beri contoh sederhana seperti berikut.
Robi diminta oleh pimpinan untuk melakukan tes tulis terhadap 10 karyawan yang dilakukan secara terpisah dan dilakukan satu persatu, maka yang terlintas dalam pikiran Robi adalah ia harus memberikan tes tulis terhadap masing-masing karyawan hingga selesai agar bisa mendapatkan reward dari pimpinan. Ia yakin bahwa reward tersebut tidak akan diterima hingga ia menyelesaikan tugasnya,

Agak bingung ya...coba anda lihat diagram dibawah ini agar lebih mudah memahami.
perintah loop dengan Macro VBA

Kalau dilihat dari diagram diatas tampak bahwa terjadi sebuah pengulangan (loop) perintah ketika kondisi belum terpenuhi atau kondisi dinyatakan salah. Dan sebaliknya, perintah ini akan segera dihentikan ketika sudah menemui kondisi benar sesuai dengan yang diinginkan.

Skema di atas jika diterjemahkan ke dalam bahasa Macro VBA maka akan menjadi
Do Loop..... Until atau Lakukan Pengulangan....Sampai....
dan jika contoh diatas diterjemahkan ke dalam Macro VBA Do Loop .... Until maka ketentuannya kurang lebih seperti berikut:
  • 10 Karyawan
    sebuah kondisi yang harus dipenuhi
  • Tugas/Perintah
    sebuah syarat agar mendapatkan reward dari pimpinan
  • Tes Tulis
    Hasil yang ingin ditampilkan, misal laporan atau pesan bahwa tes sudah dilakukan
Dari ketentuan tersebut, maka akan kita dapatkan sebuah rumusan kode Macro VBA seperti berikut
Do Until karyawan>=10  
  karyawan = karyawan + 1
  msgbox ("Tes tulis dari karyawan " & karyawan & " sudah selesai")
Loop
Mudah kan!

Coba anda perhatikan baris kode
karyawan = karyawan + 1
tahukah anda apa maksud dan tujuan dari kode tersebut?

Ya, seperti contoh yang sudah saya gambarkan di atas dimana Robi harus melakukan tes terhadap 10 karyawan dan terdapat sebuah ketentuan yang harus ia penuhi, yakni ia harus menyelesaikan sebuah tes tulis terhadap 1 (satu) karyawan hingga selesai agar bisa melakukan tes terhadap karyawan berikutnya. Bagaimana?!.... Mungkin cuplikan dari hasil tutorial ini bisa membatu pemahaman anda.
do loop

Sekarang anda sudah berhasil mempelajari bagaimana caranya membuat sebuah perintah yang dilakukan secara berulang-ulang menggunakan Do Loop Until. Semoga Anda menyukai tutorial dari excelive untuk edisi ini.
Kunjungi kami lain waktu untuk mengetahui kehebatan Microsoft Excel lainnya, 작별 (sampai ketemu lagi....).


Membuat Kotak Pesan Berulang (Loop)

Loop Message in Excel

Kotak pesan atau yang lebih umum dikenal dengan nama MessageBox merupakan sebuah fitur yang terdapat di hampir setiap aplikasi, yang memiliki fungsi utama untuk memberikan informasi kepada pengguna berupa kotak dialog dan menunggu keputusan pengguna untuk mengeksekusi perintah-perintah seperti Yes, No, maupun Cancel.

Perintah-perintah yang tersemat dalam kotak pesan biasanya dihubungkan dengan perintah lainnya dengan menyesuaikan isi pesan yang disampaikan dalam kotak tersebut.

Contoh umum yang sering kita jumpai adalah ketika akan menyimpan sebuah dokumen di sebuah folder tertentu yang memiliki nama file yang sama, maka kotak pesan tersebut akan menampilkan sebuah pesan, Apakah file yang sudah ada akan ditimpa dengan yang baru?. Jika pengguna menekan tombol Ya (Yes) maka perintah yang akan dijalankan adalah menyimpan dan menimpanya. Sementara jika pengguna menekan tombol Tidak (No), maka tentunya perintah yang dijalankan bukanlah perintah yang sama seperti tombol Ya (kecuali jika programmer menginginkan hal itu).

Ok, Secara umum gambaran MessageBox kurang lebih seperti ilustrasi di atas.

Lantas bagaimana jika kita ingin membuat sebuah MessageBox agar menjalankan perintah secara berulang-ulang hingga pengguna menghentikannya dengan cara menekan tombol tertentu, seperti tombol No.?

Agar lebih memahami konsep dari tutorial ini, coba perhatikan skema sederhana berikut :
  1. MessageBox memilki  struktur standar dan memiliki 2 tombol yakni tombol Yes dan No, Sebut saja MessageBox ini sebagai MessageBox-A. Dan MessageBox ini berisi pesan seperti berikut "Apakah Anda ingin mengisi dan atau menambahkan data di sel A1 dengan nilai 1?". 
    • Jika pengguna menekan tombol No, maka proses eksekusi Kode Macro VBA akan dihentikan disaat itu juga dan tidak akan mengisi data apapun di sel A1.
    • Jika pengguna menekan tombol Yes (selanjutnya nanti menuju langkah no 2), maka sel A1 akan terisi dengan nilai 1 dan akan menampilkan jendela pesan lainnya, dengan isi pesan seperti berikut "Apakah Anda ingin menghentikan proses ini?". Sebut saja MessageBox ini sebagai MessageBox-B, dan tetap dengan struktur standar dengan memiliki tombol Yes dan tombol No yang selanjutnya jendela pesan inilah nanti yang akan di ulang-ulang.
  2. Jika dilangkah pertama pengguna menekan tombol Yes, maka MessageBox-B akan muncul dengan spesifikasi yang sudah disebutkan.
    • Jika pengguna menekan tombol Yes untuk MessageBox-B, maka isi sel A1 akan ditambahkan dengan nilai 1 dan proses akan kembali lagi ke langkah no-2 (inilah yang dinamakan dengan proses loop)
    • Jika pengguna menekan tombol No, maka jendela kotak pesan ini akan tertutup dan menghentikan proses pengulangan.
Langsung saja nikmati proses pengulangan kotak pesan berikut. Dan mudah-mudahan tidak membuat Anda semakin bingung dalam memahaminya.
Demo Loop Message

Bagaimana? sudah paham kan konsep dari loop MessageBox. Kalau masih belum paham, silahkan download hasil akhir dari tutorial ini melalui tautan di bawah.
download

Baca Tutorial Macro VBA Menggunakan Loop Berikut
Pencarian dilakukan secara berulang-ulang
Dua cara memisahkan kalimat menjadi per huruf
Silahkan ulangi perintah jika salah!

Atau, jika ingin membuat sendiri MessageBox loop, berikut ini VBA kode yang harus Anda tuliskan di sebuah module
Dim start As String
Dim finish As String

Application.ScreenUpdating = False
Application.CutCopyMode = False
Application.DisplayAlerts = False

start = MsgBox("Apakah Anda ingin mengisi dan atau menambahkan data" & vbCr & "di sel A1 dengan nilai 1?", vbYesNo)
If start = vbNo Then Exit Sub
Do
  [a1] = [a1] + 1
  If start = vbCancel Then Exit Sub
  finish = MsgBox("Apakah Anda ingin menghentikan proses ini?", vbYesNo)
  If finish = vbYes Then Exit Sub
Loop While finish = vbNo
Application.ScreenUpdating = True

Sekarang Anda sudah berhasil mempelajari bagaimana caranya membuat sebuah pesan yang dapat digunakan secara berulang-ulang hingga pengguna menghentikannya. Semoga Anda menyukai tutorial dari excelive untuk edisi ini.
Kunjungi kami lain waktu untuk mengetahui kehebatan Microsoft Excel lainnya, vous revoir.


Our Services


design

all the design of each tutorial has passed the test for excel 2007 up

installation

every each codes on this site are provided "as is" and are easy to install

youtube

in order to facilitate you in learning excel, you can visit our channel here

download

to complete all excel lessons, we have provided a download link for you

Interested for our works and services?
Get more of our update !