You've probably noticed

We What We Do

About Us


Expertise

We just share with you the tutorials that we ourselves have tested in the workplace and slightly refine it to make it easy for you.

Our Articles

Every article on this site is presented explicitly so that you can understand the purpose of each tutorial.

Efficiency

excelive.com provides examples of just for illustration only, and we do not guarantee that they can be used in all situations.

Contact

Feel free to contact us when u've got some question, and we'll try our best to find out the answer for you.

READ MORE

Do you have any questions ?
Feel free to contact us !

GET IN TOUCH

Class


OPEN SITEMAP

Let's Get Started

choose what suits you

Dua Cara Menampilkan Isi Dari Listbox Ke Dalam Kotak Pesan

dua cara

Salah satu objek Macro VBA yang sering digunakan para pengembang aplikasi berbasis Microsoft Excel adalah ListBox, bahkan boleh dikatakan bahwa objek yang satu ini pasti ada dalam setiap aplikasi. Ya, objek ini memiliki fungsi utama untuk menampilkan serangkaian nilai yang disajikan dalam sebuah daftar berbentuk kotak (List: daftar, Box: Kotak), yang mana pengguna dapat memilih isi dalam daftar tersebut dengan mudah.

Beberapa metode atau cara dalam mengisi daftar ListBox pun bervariatif, tergantung dengan kebutuhan si pengembang aplikasi. Silahkan anda cek beberapa link berikut untuk mempelajari beberapa cara dalam mengisinya :
  Berbagai cara dalam mengisi daftar di ListBox
  Mengisi ListBox dengan data-data yang sesuai dengan kriteria
  Mengisi ListBox hanya dengan nilai unik saja
atau bisa juga anda lihat daftar postingan yang berhubungan dengan ListBox berikut ini
  Label ListBox

Dari beberapa link (posting) yang saya paparkan di atas dapat diambil kesimpulan bahwasanya Excel memberi kita keleluasaan dalam mengolah data untuk menampilkan informasi yang kita inginkan yang tentunya dapat disesuaikan dengan kebutuhan.

Beda cara mengisi daftar di dalam kotak ListBox, beda pula cara atau penulisan kode dalam menampilkan isinya. Dan dalam postingan kali ini, saya akan memberikan kepada anda 2 (dua) buah kode Macro VBA yang dapat anda gunakan untuk menampilkan isi sebuah nilai dalam ListBox ketika ia di klik (dipilih).

Ya, even yang akan kita gunakan untuk menampilkan isi dari salah satu daftar ListBox adalah dengan menggunakan even klik (Click), yakni sebuah even yang akan dijadikan sebagi pemicu untuk menjalankan kode Macro VBA ketika pengguna melakukan klik terhadap ListBox. Dan berikut ini adalah hasil akhir dari tutorial kita kali ini :
ListBox Excelive

Ok. sekarang mari kita mulai tutorial kali ini dengan mengawalinya dengan berdoa, mudah-mudahan apa yang akan kita lakukan ada guna dan manfaatnya.:). Untuk langkah selanjutnya, silahkan ikuti tahap demi tahap berikut ini :
  1. Buatlah sebuah data sederhana mulai dari sel A1 hingga A7 (untuk memudahkan dalam belajar tutorial ini, bisa juga anda isikan data-data di sel tersebut seperti tampilan hasil akhir di atas).
  2. Tekan tombol pintas (Shortcut) ALT+F11 untuk menuju jendela Microsoft Visual Basic Editor (VBE), dan mulailah menambahkan sebuah UserForm dan dilanjutkan dengan meletakkan objek ListBox ke dalamnya.
    Design ListBox
  3. Masih di jendela VBE, klik kanan objek UserForm yang ada di jendela VBAProject dan pilih menu View Code dari menu pop-up yang muncul. Hal ini bertujuan untuk mengganti tampilan objek (design) VBA dengan jendela kode VBA.
    Klik kanan objek VBA
  4. Anda akan dihadapkan dengan sebuah lembar kerja warna putih dan masih bersih karena belum di isi kode-kode atau baris perintah apapun. Di dalam jendela ini, mulailah memilih objek UserForm dan Prosedur Activate dari kotak DropDown masing-masing.
    Prosedur userform aktif
  5. Ok. sekarang kita akan menuliskan baris kode yang sangat sederhana untuk menampilkan data-data yang sebelumnya kita tuliskan dalam kerja untuk ditampilkan dalam kotak ListBox yang terdapat dalam UserForm. Kode-kode ini akan langsung di eksekusi secara otomatis ketika UserForm dibuka atau diaktifkan. Hal ini terjadi karena even atau prosedur yang kita pilih adalah even atau prosedur UserForm_Activate.
    Private Sub UserForm_Activate()
       ListBox1.RowSource = "A1:A7"
    End Sub
  6. Sekarang kita akan tambahkan baris kode yang berfungsi untuk memerintahkan Excel agar mengeksekusi kode ketika isi atau daftar dalam objek ListBox kita klik (pilih). Hal ini dapat dilakukan dengan cara memilih dulu objek serta prosedur yang akan kita gunakan, yakni objek ListBox dan prosedur Click.
    Prosedur Listbox klik
  7. Akhirnya kita sampai pada bagian inti dari tutorial ini, yakni memberikan baris perintah yang bertujuan untuk menampilkan salah satu daftar dalam ListBox ke dalam jendela Kotak pesan.
    Sesuai dengan judul posting, maka silahkan anda pilih salah satu dari dua buah kode berikut yang ingin anda gunakan dan dituliskan dalam even ListBox_Click:
    Cara 1
    Private Sub ListBox1_Click()
       a = ListBox1.List(ListBox1.ListIndex, 0) 
       msgbox a  
    End Sub
    Kode ini akan diawali dengan menentukan nilai a dengan perintah membaca seluruh daftar yang terdapat di ListBox, kemudian memilih daftar berdasarkan Index dan mengambil kolom pertama (kolom 0 dibaca sebagai kolom pertama). Kemudian hasil pencarian tersebut akan ditampilkan dalam kotak pesan yang berisi sesuai dengan nilai a

    Cara 2
    Private Sub ListBox1_Click()
       b = ListBox1.ListIndex + 1 
       MsgBox Cells(b, 1) 
    End Sub
    Cara yang ini diawali dengan menentukan nilai b yang berfungsi untuk membaca nilai yang dipilih dalam daftar ListBox berdasarkan index, kemudian ditambah dengan angka +1. Hal ini dikarenakan index 0 dibaca sebagi baris yang pertama dan seterusnya.
    Kemudian hasil pencariannya diambil dari lembar kerja dengan menggunakan paremeter Cells. Penulisan paremeter Cells yakni diawali dengan baris kemudian kolom, sehingga hasil akhir penulisan parameter ini adalah MsgBox Cells(b, 1), di mana nilai b digunakan untuk menentukan barisnya, sementara angka 1 dari parameter ini berfungsi untuk membaca kolom pertama yakni kolom A.

    Kekurangan dari baris kode ini adalah, anda harus mengganti nilai + 1 pada baris kode ListBox1.ListIndex + 1 sesuai dengan letak dimana baris pertama anda dituliskan dalam lembar kerja.

  8. Langkah terakhir yang harus dilakukan tentu adalah mengujinya, yakni bisa dilakukan dengan cara menekan tombol F5 di keyboard anda

Perbedaan yang paling mendasar dari dua cara di atas terletak pada metode mengambil nilai dari kotak ListBox, dimana Cara 1 mengambil nilai secara langsung dari kotak ListBox itu sendiri, sementara Cara 2 mengambil nilai dari lembar kerja dengan mengacu kepada hasil pilihan yang dilakukan pada ListBox.

Kesimpulan akhir dari tutorial ini ada pada pribadi masing-masing, mana dari kedua kode tersebut yang dirasa sesuai dengan kebutuhan.


Menggunakan Parameter Intersect Dalam Macro VBA Excel

Belajar Intersect Excel

Dalam bahasa indonesia, kata intersect dapat diartikan sebagai titik temu yang mana ia dapat diartikan sebagai pertemuan antara dua buah range dan mengambil sel-sel atau range yang menjadi pertemuan antara keduanya.
Pemahaman Intersect dapat di ilustrasikan dalam gambar berikut :
mengenal parameter intersect excel
Gambar di atas dapat dijelaskan bahwa pertemuan antara Range B2:D5 dan range C5:E7 adalah range C5:D5, inilah yang dinamakan dengan intersect.

Untuk menerjemahkan gambar di atas ke dalam bahasa Macro VBA excel, cara sederhananya adalah dengan menuliskan kode berikut ke dalam sebuah Module kemudian jalankan, maka hasilnya ia akan menampilkan alamat dari pertemuan antara sel-sel atau range tersebut
Sub Test1()
	MsgBox Intersect(Range("B2:D5"), Range("C5:E7")).Address
End Sub
Macro VBA intersect

Sekarang, mari coba kita rubah salah satu parameter yang digunakan dalam penulisan range diatas menjadi seperti berikut:
Sub Test2()
	MsgBox Intersect(ActiveCell, Range("C5:E7")).Address
End Sub
Jika anda menjalankan baris kode di atas dan jika alamat sel yang anda pilih saat ini tidak berada dalam lingkup Range C5:E7, maka pasti anda akan dihadapkan dengan pesan Run Time Error, hal ini terjadi karena parameter ini tidak mampu untuk membaca dan menemukan hasil pertemuan atau perpotongan sel. sebaliknya, jika sel yang saat ini aktif terpilih ada dalam rentang range tersebut, maka pesan yang berisi alamat sel akan ditampilkan.
intersect excel vba

Perbedaan mendasar antara module Test1 dan Test2 di atas terletak pada pemilihan alamat sel atau range yang dijadikan sebagai acuan untuk melihat perpotongan atau pertemuan sel. Anda tidak akan menemukan pesan error pada kode yang dituliskan pada module Test1, karena setiap alamat sel yang dituliskan memiliki perpotongan.
Sementara untuk module Test2, karena salah satu sel berisi parameter ActiveCell yang meminta pengguna untuk menentukan sendiri sel yang jadi perpotongan dengan acuan range C5:E7, maka akan sangat mungkin muncul pesan error jika alamat sel yang aktif terpilih berada diluar range tersebut.

Ok, untuk mencegah pesan error pada module Test2, bisa anda gunakan fungsi logika sederhana dengan menggunakan kata kunci (keyword) NOTHING. Kata kunci ini bertugas untuk menjelaskan kepada Excel bahwa tidak ada sel aktif yang sesuai dengan apa yang seharusnya dipilih.

Sekarang coba perhatikan penyempurnaan dari module Test2 berikut ini :
Sub Test2Lagi()
If Intersect(ActiveCell, Range("C5:E7")) Is Nothing Then
    MsgBox "Coba pilih alamat sel dalam rentang C5:E7"
    Else
    MsgBox Intersect(ActiveCell, Range("C5:E7")).Address
End If
End Sub
Penggunaan logika IF dengan disertai kata kunci Nothing seperti dalam kode di atas, mengganti pesan Run Time Error dengan kotak pesan (MsgBox) yang bisa kita isi sendiri.
intersect dan keyword nothing

Penggunaan yang paling umum dari metode Intersect ini biasanya digunakan dalam sebuah even ketika sebuah sel berubah, dalam bahasa Macro VBA even ini dikenal dengan even Worksheet_Change.
Penjelasan mengenai cara menggunakan Intersect dalam even ini akan diulas dalam tutorial berikutnya.
Jadi, jangan sampai ketinggalan. Dan silahkan anda subscribe atau bookmark situs ini untuk mengetahui kehebatan microsoft Excel lainnya bersama excelive.com. See you soon...


Memahami Konsep Parameter .Find Untuk Mencari Informasi

menggunakan parameter FIND

Beberapa waktu yang lalu saya mendapat kiriman sebuah email yang berisi permintaan untuk mengulas tentang bagaimana menggunakan parameter FIND untuk mencari sebuah informasi atau sebuah nilai yang terdapat di dalam lembar kerja. Di dalam email tersebut si pengirim juga menyebutkan kalau ia belum mendapati pembahasan yang lengkap tentang penggunaan paremeter FIND di situs internet, bahkan beberapa diantaranya hanya sekedar copy-paste dari situs lainnya.

Oke, sebelum saya mengulas tentang parameter FIND (ala excelive), saya akan sedikit bercerita tentang kemampuan excel yang saya miliki hingga saat ini.
Awalnya saya adalah seorang praktisi di dunia audio-video sebagai seorang editor juga sebagai seorang animator Adobe After Effect, kemampuan yang saya miliki saat itu hampir semuanya berasal dari internet, atau dengan kata lain saya mempelajari secara autodidak. Pada saat itu, Microsoft Excel adalah salah satu aplikasi yang hampir tidak pernah tersentuh meskipun di dalam komputer sudah ada. Bahkan ketika Install ulang Microsoft Office, seringkali saya memilih custom instalation dan hanya memasang Microsoft Word dalam komputer, karena pada saat itu - aplikasi paket Office Word masih dibutuhkan meskipun tidak sesering aplikasi Adobe After Effect atau aplikasi video editor seperti Pinnacle Studio, Adobe Premiere, dan sejenisnya.

Hingga suatu ketika, saya menemui sebuah aplikasi sederhana buatan anak negeri yang dibangun menggunakan Microsoft Excel. Disaat itu pula rasa cinta terhadap Microsoft Excel perlahan-lahan mulai tumbuh berkembang dan perlahan-lahan dunia audio-video ditinggalkan.
Bagi saya, belajar Microsoft Excel tidaklah secepat ketika saya pertama kali mengenal dan mempelajarai aplikasi video editing, butuh proses yang memakan banyak waktu dan tenaga, dan seringkali menemui kesulitan - dan disinilah saya merasakan sebuah keasyikan belajar coding, khususnya VBA Microsoft Excel.

Mengoleksi buku-buku Microsoft Excel lambat laun menjadi sebuah hobi baru dan tanpa sadar menggeser buku-buku audio editing yang terdapat di rak buku. Namun, dari semua buku-buku Microsoft Excel yang pernah saya beli, ternyata belum bisa memuaskan rasa keingintahuan saya tentang kehebatan Microsoft Excel, dan saya menyadari bahwa saya harus memenuhi rasa penasaran ini dan belajar ke gudangnya ilmu, yakni internet.

Jadi kesimpulan dari cerita (curhat) di atas, saya adalah seorang yang hanya memiliki sedikit kemampuan tentang Microsoft Excel yang kebetulan sedikit memahami beberapa kode-kode dalam Microfost Excel dan berusaha semaksimal mungkin untuk menjelaskan dan mengulas secara lengkap tentang apa-apa yang saya ketahui. Dan mudah-mudahan bisa dengan mudah dipahami.

Kembali ke pokok pembahasan parameter .FIND yang ditanyakan oleh seorang pengunjung situs excelive.com
Pada dasarnya, parameter ini memiliki fungsi yang sama ketika anda menekan tombol pintas CTRL+F, akan tetapi anda harus menuliskan beberapa baris perintah agar parameter ini bisa dijalankan layaknya CTRL+F, serta harus dituliskan menggunakan bahasa kode. Dan berikut ini saya akan membahas langkah demi langkah mengaplikasi parameter FIND menggunakan Macro VBA Microsoft Excel.
  1. Oke, pastikan aplikasi Microsoft Excel sudah diinstall dikomputer dan anda sudah membukanya
  2. Tekan tombol pintas ALT+F11 untuk membuka jendela Microsoft Visual Basic Editor, yakni sebuah aplikasi untuk menuliskan bahasa program. Di jendela Microsoft Visual Basic Editor, anda akan dihadapkan dengan sebuah lembar kerja (Workspace) yang beda dengan Microsoft Excel - jadi perlakuannya juga jelas berbeda
  3. Arahkan mouse ke baris menu dan pilih Insert kemudian pilih Module untuk menyisipkan sebuah Module Baru dalam lembar kerja Microsoft Visual Basic Editor. Di sinilah tempat dimana anda harus menuliskan baris-baris kode
  4. Sekarang, anda tuliskan (atau lebih cepatnya) Copy Paste kode berikut ke dalam Module yang sudah anda buat dilangkah sebelumnya
    Sub Cari()
    Set a = Range("A:A").Find("apa", LookAt:=xlValue)
    MsgBox a.Address(False, False)
    End Sub
    
    Penjelasan singkat dari kode diatas
    • Cari
      Adalah sebuah nama yang sifatnya unik yang dijadikan sebagai identitas dari sekumpulan baris-baris perintah yang terdapat didalamnya
    • Set a
      Sebelum mulai membaca kode-kode, saya mengawalinya dengan mengatur dan menentukan sebuah nilai, untuk tutorial ini saya mengatur nilai a
    • Range("A:A").Find("apa", Lookat:=xlValues)
      Baris perintah ini merupakan isi dari nilai a yang memuat beberapa parameter penting antara lain:
      > alamat sebuah range = Range("A:A")
      > paramater pencarian = Find
      > kata atau teks yang akan dicari = "apa"
      > lokasi pencarian = LookAt:=xlValues
      > anda bisa juga menambahkan parameter MatchCase:=True untuk melakukan pencarian yang spesifik
      Bahasa sederhana dari baris perintah ini adalah; Mencari nilai atau teks "apa" berdasarkan model pencarian xlValues di sepanjang kolom A
    • MsgBox a.Address(False, False)
      > Msgbox digunakan untuk menampilkan kotak pesan kepada pengguna
      > a.Address berfungsi untuk membaca nilai yang berhasil di temukan dan ditampilkan sebagai alamat sel
      > (False, False) adalah sebuah parameter untuk membaca sebuah alamat sel dengan menonaktifkan kolom dan baris absolut (tanda $ sebelum kolom dan baris)
      Bahasa sederhana dari baris perintah ini adalah; Menampilkan hasil pencarian kedalam kotak pesan berupa alamat sel dengan format alamat sel relatif
  5. Sampai disini anda sudah berhasil menuliskan parameter FIND untuk mencari sebuah nilai. dan langkah terakhir adalah mengujinya dengan menekan tombol F5 dikeyboard, atau bisa juga dengan mengklik ikon yang terdapat di standard toolbar.

Saya yakin anda bertanya-tanya, bagimana jika dalam sekumpulan data yang ada di lembar kerja terdapat beberapa nilai yang sama dengan kata kunci pencarian, dan bagaimana agar hasil pencariannya menuju ke alamat sel berikutnya.??

Untuk menjawab pertanyaan ini, saya akan membahasnya di edisi berikutnya. Jadi, jangan lupa untuk bookmark situs ini agar anda tidak ketinggalan update terbaru artikel dan tutorial Microsoft Excel bersama excelive.com. See you soon

Incoming Search Terms
key

Apa Yang Harus Dilakukan Agar Nilai InputBox Tidak Bersifat Case-Sensitive

Sejak diperkenalkan ke publik, komputer merupakan salah satu peralatan elektronik yang perkembangannya sangat luar biasa, Ia berevolusi mulai dari segi ukuran hingga kecerdasan. Dan tak heran jika saat ini keberadaan komputer sangat dibutuhkan untuk membantu penggunanya dalam menyelesaikan kegiatan mulai dari perdagangan, bisnis, perkantoran, hingga hiburan. Barangkali para pengembang awal komputer sudah memprediksi hal ini bakal terjadi, dimana era digitaliasi sudah mendarah daging dalam kehidupan manusia.

Evolusi Komputer
Capaian yang sangat luar biasa dari sebuah peralatan elektronik ini tentunya juga memperhatikan keamanan data-data yang tersimpan didalamnya, dimana salah satu keamanan yang digunakan untuk menjamin data-data tersebut adalah dengan menggunakan Password. Ya, password bisa diibaratkan sebuah kunci yang hanya bisa digunakan untuk membuka sesuatu jika kombinasi serta bentuknya sama dengan pasangannya.
Sebagai contoh, bentuk huruf A tentu tidak sama dengan huruf a, juga kombinasi bentuk huruf AB tentu tidak sama juga dengan BA. Inilah yang disebut dengan case-sensitif.

Penggunaan case-sensitive memang seringkali dihubung-hubungkan dengan password, karena kekuatan sebuah password dalam melindungi sebuah data terletak pada kombinasi serta bentuknya. Dalam konteks penulisan password, kombinasi yang dimaksud bisa berupa serangkaian huruf-huruf, angka, serta karakter atau simbol. Sementara bentuk disini adalah model penulisan hurufnya apakah menggunakan huruf kapital atau huruf kecil (dalam bahasa saya, model penulisan teks ini saya sebut dengan case)

Jadi, secara kasar istilah case sensitive bisa diartikan sebagai bentuk tulisan yang sifatnya peka.
contoh, kata excelive dengan kata Excelive meskipun secara kombinasi keduanya memiliki kesamaan akan tetapi jika dilihat berdasarkan bentuk (case), keduanya memiliki perbedaan, yang mana kata pertama menggunakan bentuk huruf kecil semua sementara kata kedua - huruf depannya dituliskan dengan bentuk huruf kapital.

kembali ke pembahasan utama website ini yang memang khusus membahas tentang Microsoft Excel dan bukan tentang sejarah komputer. Namun sebelum itu, mungkin anda bertanya-tanya kenapa harus InputBox, dan kenapa tidak harus case sensitive?

Ok, InputBox adalah salah satu parameter Macro VBA yang berfungsi untuk menampilkan sebuah jendela informasi yang memiliki kotak isian dan bisa ditulis seperti halnya objek TextBox, akan tetapi InputBox tidak dapat diperlakukan layaknya objek TextBox yang bisa dilakukan perubahan format penulisannya. Artinya, ketika kita menulis sebuah informasi di jendela InputBox, ia akan ditulis apa adanya atau persis saat kita menuliskannya. Sementara untuk TextBox, hasil yang ditampilkan bisa kita rubah bentuknya menjadi huruf kecil atau huruf kapital.

Untuk lebih jelasnya lihat perbedaan berikut:
InputBox vs TextBoxDari demonstrasi disamping saya menggunakan tulisan huruf kecil semua untuk masing-masing objek, dan terlihat bahwa jendela InputBox menampilkan hasil di kotak pesan sesuai dengan apa yang saya tuliskan di kotak InputBox, sementara untuk TextBox saya bisa merubah bentuk penulisannya sesuai dengan formula yang telah ditentukan.

Berikut kita akan coba menguji apakah sel A1 yang berisi nilai atau kata excelive sama dengan apa yang nanti saya tuliskan di jendela InputBox.?
Sebelum mengujinya pastikan anda sudah menuliskan kata excelive di Sheet1 sel A1 , kemudian sekedar untuk memudahkan saja - buat sebuah control CommandButton dan letakkan di lembar kerja ke-1, kemudian klik ganda objek ini untuk langsung menuju jendela Visual Basic Editor
Tuliskan baris kode berikut didalam even CommandButton1_Click
a = Application.InputBox("tulis sebuah pesan")
If a <> False Then
If a = [a1] Then
MsgBox "Selamat... data sama"
Else
MsgBox "Data tidak sama"
End If
End If


a = Application.InputBox("tulis sebuah pesan")
If a <> False Then
If InStr(LCase([a1]), LCase(a)) Then
MsgBox "Selamat... data sama"
Else
MsgBox "Data tidak sama"
End If
End If



Dua Cara Mengubah Teks Menjadi Proper Case Menggunakan Macro VBA

proper case macro vba

Jika anda sudah terbiasa dengan jenis atau format sebuah tulisan, saya yakin anda tidak asing dengan istilah Proper Case. Ya, proper case adalah sebuah format tulisan yang mana huruf pertama setiap kata dituliskan menggunakan huruf kapital atau huruf besar, sementara huruf sisanya dituliskan menggunakan huruf kecil.

Ketika anda menggunakan formula Microsoft Excel, melakukan perubahan format penulisan dapat diselesaikan dengan mudah yakni menggunakan formula antara lain :
  • =UPPER
    untuk mengubah setiap huruf menjadi huruf kapital semua
  • =LOWER
    adalah kebalikan dari formula Upper, yakni menjadikan semua huruf dituliskan menggunakan huruf kecil semua
  • =PROPER
    Dalam aplikasi Microsoft Word, format penulisan ini dikenal dengan istilah Sentence Case yakni huruf awal setiap kata dituliskan menggunakan huruf kapital
Syntax penulisan dari masing-masing formula diatas juga dibilang tidak terlalu ribet, bahkan semuanya memiliki kesamaan dalam hal penulisannya. Lihat penggunaan dan penulisannya dalam gambar berikut :
Teks Proper Case

Lantas bagaimana jika menggunakan Macro VBA?
Jika anda memutuskan untuk melakukan perubahan format penulisan khususnya Proper Case menggunakan Macro VBA, maka setidaknya ada 2 (dua) macam cara yang bisa dilakukan.

Kode Pertama
Penulisan kode Macro VBA ini menggunakan parameter StrConv yang mana fungsi utamannya adalah untuk mengubah teks (string) ke bentuk Uppercase, Lowercase, serta Propercase.
Sub Proper1()
  a = StrConv([A1], vbProperCase)
  MsgBox a
End Sub

Kode Kedua
Pada dasarnya, kode Macro VBA berikut ini mengadopsi cara penulisan ketika kita menggunakan sebuah formula di lembar kerja Microsoft Excel. Hal ini dapat dilihat dari parameter awal kode, yakni WorksheetFunction
Sub Proper2()
  a = WorksheetFunction.Proper([A1])
  MsgBox a
End Sub
Kedua cara diatas memiliki fungsi yang sama, yakni merubah penulisan huruf yang terdapat di sel A1 kemudian hasil perubahannya ditampilkan dalam kotak pesan.

Bonus Kode
Dim rr, sel As Range
Set rr = Selection
For Each sel In rr
  sel.Value = WorksheetFunction.Proper(sel)
Next
Nah untuk kode yang satu ini, ia akan secara otomatis mengubah format penulisan huruf sesuai dengan sel atau range yang disorot (pilih) dalam lembar kerja Microsoft Excel, tanpa harus menentukan lokasi alamat sel yang akan dirubah seperti yang sudah saya tuliskan dalam kode pertama dan kedua diatas.
Dan berikut ini tampilannya jika anda menggunakan kode Macro VBA yang saya berikan di Bonus Kode.
proper case Macro VBA







Melihat dan Menemukan Posisi Sel Terakhir Berdasarkan Kolom Atau Baris

proteksi formula dan macro vba

Seperti yang sudah kita ketahui bersama bahwa lembar kerja Microsoft Excel merupakan sebuah tabel yang berukuran sangat besar yang memiliki 2 elemen utama yakni kolom dan baris. Kolom (Column) adalah kotak-kotak yang tersusun secara menurun yang diwakili dengan huruf. Sementara baris (Row) adalah sekumpulan kotak-kotak yang tersusun secara mendatar yang diwakili dengan angka. Dan jika kita menarik sebuah garis lurus antara kolom dan baris, maka kita akan mendapati sebuah titik pertemuan yang lebih dikenal dengan istilah sel atau dituliskan dengan nama Cell dalam bahasa inggris.

Jadi dengan kata lain, sel (Cell) adalah titik pertemuan antara kolom (diwakili dengan huruf) dengan baris (diwakili dengan angka), yang kemudian kita biasa menulisnya dengan cara mengkombinasikan antara keduanya sehingga menjadi sebuah alamat sel.

Sengaja saya awali postingan kali ini dengan pengetahuan dasar tentang lembar kerja Microsoft Excel agar nantinya anda bisa lebih mudah dalam memahami dan menerapkan baris-baris kode yang akan saya paparkan, karena hal ini merupakan salah satu kunci penting untuk memahami tutorial ini.

Ok kita akan memasuki ke pembahasan inti, yakni bagaimana cara melihat posisi sel terakhir yang berisi sebuah nilai berdasarkan baris ataupun kolom, yang akan dibahas secara lengkap bukan asal copy-paste dan asal tempel kode saja - karena tujuan utama dari artikel ini adalah agar anda paham dan tidak asal copy paste.

Sebelum membahas kode-kodenya, terlebih dahulu silahkan lihat sekumpulan data yang saya miliki dalam lembar kerja Microsoft Excel berikut :

Jika anda ditanya posisi baris terakhir dari data yang ada digambar atas, maka saya yakin anda akan menjawab sel A5. Begitu pula jika ditanya posisi kolom terakhir yang berisi nilai, pun saya yakin 100% anda bisa menjawabnya.
Pertanyaan berikutnya adalah, bagaimana caranya membuat sebuah perintah agar bisa langsung secara otomatis menemukan lokasi baris atau kolom terakhir yang sebelumnya sudah disebutkan tadi?
Jawaban singkatnya adalah dengan menggunakan Macro VBA. Dan berikut ulasannya.

Baris Terakhir (ROW)
Dari data gambar diatas, jika kita lihat berdasarkan kolom A maka data tersebut mempunyai 5 buah baris yang berisi nilai, dan baris terakhir berisi kata 'Durian' yang mana posisinya berada di baris ke-5.
Sementara jika dilihat berdasarkan kolom B, maka ia hanya memiliki 1 buah baris yang berisi nilai, yakni kata 'januari'. Begitu pula dengan kolom C.

Bagaimana menerjemahkan statement diatas kedalam bahasa Macro VBA.?
  1. Pertama, tentukan terlebih dahulu posisi kolom yang akan dijadikan sebagai patokan untuk mengetahui jumlah banyaknya baris yang berisi nilai. Untuk statement diatas, maka kolomnya adalah kolom A.
  2. Langkah berikutnya adalah menentukan baris yang akan digunakan sebagai perwakilan dari baris yang berisi sebuah nilai, sebagai contoh baris ke-2.
  3. Kombinasikan langkah pertama (Kolom) dengan langkah kedua (Baris) sehingga menghasilkan baris kode Range("A2") atau bisa juga ditulis Cells(2, 1) atau [A2]
  4. Untuk mengetahui nilai yang terdapat di baris terakhir dan yang paling bawah, maka cara paling mudah untuk mengingat adalah dengan mengartikan kata terakhir dan terbawah ke dalam bahasa inggris, dimana kata terakhir adalah END, sementara kata bawah (saya gunakan istilah menurun) adalah DOWN. Dan hasil penulisan untuk kode ini adalah END(xlDOWN)
  5. Sampai disini anda sudah berhasil mengetahui isi dari baris terakhir, dan berdasarkan contoh data diatas maka hasilnya adalah DURIAN. Dan kombinasi penulisan kodenya adalah
    Range("A3").End(xlDown)
  6. Jika anda ingin mengetahui posisi baris terakhir (bukan isinya), maka kode diatas harus ditambah dengan sebuah perintah yang berfungsi untuk mengetahui indeks baris. Dan sekali lagi, untuk mempermudah dalam mengingatnya silahkan terjemahkan kata baris kedalam Bahasa Inggris.
    dan hasil kombinasi akhir untuk mengetahui posisi baris terakhir adalah
    Range("A3").End(xlDown).Row
    Dan berikut jika kode diatas diletakkan dalam jendela kotak pesan
    Msgbox Range("A3").End(xlDown).Row

Kolom Terakhir (COLUMN)
Untuk melihat isi atau posisi kolom terakhir berdasarkan contoh data yang sudah saya berikan diatas, cara penyelesaiannya sama dengan cara untuk mengetahui posisi baris terakhir hanya saja berbeda dalam hal pembacaannya, yakni dibaca bukan dari atas ke bawah, melainkan di baca dari kiri ke kanan (Bahasa Inggris 'kanan' tahu kan...?).
Dan cara mudah berikutnya untuk menyelesaikan ini adalah dengan menerjemahkan kata kolom kedalam Bahasa Inggris. Bagaimana, mudah bukan...!
Dan berikut adalah hasil akhir untuk melihat posisi kolom terakhir yang ditampilkan didalam kotak pesan
Msgbox Range("A1").End(xlToRight).Column

Sebenarnya ada banyak cara dan metode untuk melihat posisi kolom atau baris terakhir, hanya saja menurut pendapat pribadi saya - cara di atas boleh dibilang cara yang paling mudah dan gampang untuk diingat. Meskipun demikian, kode yang saya tuliskan dibawah ini bisa juga dengan mudah dipahami asalkan sudah memahami konsep tentang lembar kerja Microsoft Excel, seperti kolom, baris, sel, dll.
Silahkan anda bandingkan kode sebelumnya dengan kode-kode berikut yang memiliki fungsi yang sama.
Sub BarisTerakhir()
r = Cells(Rows.Count, 1).End(xlUp).Row 
MsgBox r
End Sub

Sub KolomTerakhir()
c = Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox c
End Sub
Jika anda penasaran dan masih mau bereksperimen untuk mencari posisi baris dan kolom terakhir, salah satu parameter lainnya yang bisa anda gunakan adalah Current Region. Silahkan baca turorialnya disini .
Untuk mengisi sebuah nilai atau data setelah kolom atau baris terakhir, silahkan anda tambahkan nilai + 1 dibelakang kode-kode tersebut
Seperti biasa, untuk melengkapi tutorial yang cukup panjang ini, saya sudah menyiapkan tampilan hasil akhir yang sudah dimodifikasi seperti berikut :


Selamat... anda sekarang sudah berhasil membuat sendiri sebuah kode Macro VBA untuk mencari lokasi sel terakhir baik berdasarkan baris maupun berdasarkan kolom. Semoga tutorial ini ada guna dan manfaatnya.
Silahkan kunjungi kami lain waktu untuk mengetahui kehebatan Microsoft Excel lainnya bersama excelive.com


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.

Menjalankan Kode Yang Berbeda Setiap Sheet Dibuka

Menampilkan Kode Berbeda

Setiap bekerja dalam menggunakan Microsoft Excel, barangkali kita sering bolak-balik mengaktifkan antar lembar kerja - untuk melihat isi dari masing-masing lembar kerja untuk mencari atau melihat informasi yang kita inginkan. Memang secara default pengguna hanya diberikan 3 buah lembar kerja saja dalam mengolah dokumen Microsoft Excel, akan tetapi masih bisa ditambahkan lagi sesuai dengan kebutuhan pengguna.

Semakin banyak lembar kerja yang digunakan dalam projek Microsoft Excel, tentunya semakin besar pula perhatian yang harus diberikan kepada masing-masing lembar kerja berkenaan dengan isi informasi yang tersimpan didalamnya. Terlebih lagi jika kita sedang mengerjakan megaproyek yang berhubungan dengan banyak lembar kerja.

Nah, berikut ini ada sebuah tips yang bisa anda gunakan untuk memberikan perhatian ekstra kepada masing-masing lembar kerja sehingga ketika pengguna mengaktifkan lembar kerja tertentu maka sebuah informasi berupa kotak pesan (atau mungkin baris kode perintah lainnya) akan dijalankan pada saat itu pula.
Untuk diketahui, tutorial ini menggunakan bantuan Macro VBA sehingga pastikan tingkat keamanan Macro VBA Microsoft Excel anda sudah dimatikan (disable) terlebih dahulu. Dan berikut langkah-langkahnya :
  1. Saya berasumsi dalam workbook Microsoft Excel anda terdapat 3 buah lembar kerja
  2. Masuk ke aplikasi Vsual Basic Editor dengan cara anda menekan tombol pintas ALT+F11 atau bisa juga anda klik kanan nama salah satu lembar kerja kemudian di menu pop-up yang muncul, pilih View Code
  3. Pada jendela Visual Basic Editor, dijendela sebelah kiri layar komputer anda silahkan klik 2x objek ThisWorkbook, kemudian di jendela sebelah kanan silahkan pilih objek WorkBook dan untuk prosedurnya silahkan cari dan pilih SheetActivate pada kotak DropDown yang tersedia. Hal ini bertujuan agar setiap lembar kerja ketika diaktifkan maka akan membaca beris perintah tertentu.
  4. Langkah berikutnya adalah, silahkan tuliskan baris perintah berikut di dalam prosedur yang sudah anda buat pada langkah sebelumnya
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Select Case ActiveSheet.Index
    Case 1, 3
       MsgBox "Ini lembar kerja ke-1 dan atau ke-3"
    Case 2
       MsgBox "Ini lembar kerja ke-2"
    End Select
    End Sub
    Penjelasan singkatnya kurang lebih seperti berikut :
    • Select Case ActiveSheet.Index
      Digunakan untuk memilih kondisi berdasarkan indeks lembar kerja yang terpilih
    • Case 1, 3
      Perintah standar yang berfungsi untuk menampilkan sebuah kotak pesan ketika Sheet1 dan Sheet3 (indeks ke-1 dan ke-3) terpilih
    • Case 2
      Memiliki fungsi yang sama seperti Case 1, 3 hanya saja berlaku ketika kondisi lembar kerja indeks ke-2 terpilih
  5. Finish...
    Sekarang silahkan anda coba untuk memindahkan setiap lembar kerja Microsoft Excel anda untuk mengetahui apakah kode yang ditulis sudah benar dan sesuai dengan yang diharapkan apa belum.
Selamat.... sekarang anda sudah berhasil mengetahui bagaimana caranya menjalankan kode yang berbeda-beda setiap lembar kerja diaktifkan. Semoga artikel dan tutorial ini ada guna dan manfaatnya untuk anda. Silahkan kunjungi kami lain waktu untuk mengetahui kehebatan Microsoft Excel lainnya bersama excelive.com

Coming Soon Tutorial

Stay Tuned For Something Awesome
Around here we don't look backwards for very long. we keep moving forward, opening up new doors and doing new things, because we're curious and keeps leading us down new paths. so stay with us, coz we are still working and designing the best tutorial for you ...

stay tuned

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

Contact Us


EXCELIVE.com
is a blogger resources site who provides
best excel tutorial based on daily needs.
The main mission of excelive is to share
our little experience in excel
to deliver best time killer for your excel issues.
Singhasari Malang 65153
East Java

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