Last updated on March 19th, 2021 at 06:27 am
Halaman ini adalah kelanjutan dari halaman sebelumnya, “Membuat kode macro untuk form input di Excel (part-4)”. Perbedaan antara form yang di topik sebelumnya (part-3) dengan form di topik ini adalah : form di part-3 dibuat pada halaman Excel, sedangkan sekarang, form dibuat pada “canvas” khusus untuk form. Jadi sekarang pak Adi akan membuat Excel UserForm melalui Visual Basic editor (VBA).
Adapun kegunaan UserForm pada kasus pak Adi ini adalah untuk meng-input invoice invoice (nota nota jual/beli) mana saja yang dibayarkan, baik oleh Piutang Dagang maupun oleh pak Adi sendiri.
Workflow nya disini sedikit berbelit belit, karena berdasarkan pengalaman pak Adi sendiri, beda customer beda kriteria cara mereka melakukan pembayaran-nya. Adapun model model pembayaran para customer-nya adalah sbb:
- Tidak memperdulikan nomor nota (nomor invoice).
Pokok dibayar sekian, maka saldo hutang-nya tinggal sekian. - Memperdulikan nomor nota dan hutang di bulan tertentu.
Contoh : “pak Adi, ini saya bayar nota nota bla, ble, blu bulan X ya” - Memperdulikan nomor nota tapi tidak perduli hutang di bulan apa.
Contoh : “pak Adi, ini saya bayar nota yang minggu lalu ya, jadi nota nota hutang saya yang kemarin dan yang tiga bulan yang lalu belon saya bayarkan”. - Mirip seperti dengan yang diatas.
Contoh : “pak Adi, ini saya bayar nota nota bulan X sebagian dulu ya”
Akibatnya ya pembuatan UserForm-nya sedikit berbelit belit agar UserForm bisa siap “bekerja” dalam menghadapi kriteria customer yang berbeda beda tsb dalam membayar hutang-nya.
Mempersiapkan halaman halaman yang akan diperlukan untuk operasi UserForm
Mirip dengan yang di halaman part-3, hal pertama yang pak Adi lakukan adalah membuat halaman baru dan menamai-nya “BAYAR”. Selanjutnya mempersiapkan halaman “TABEL” agar ter-integrasi dengan UserForm-nya sewaktu di operasikan.
- Mengetik rumus
=today()
pada cell C4 dan menamai beberapa cell seperti yang terlihat pada gambar-1 dibawah ini.
2. Membuat dua buah Pivot Table di halaman TABEL. Cara membuat Pivot Table ini sama seperti di part-2, yakni dengan mengkopi Pivot Table yang sudah ada, lalu paste di halaman yang memerlukan-nya. Selanjutnya mengatur kolom kolom yang diperlukan di Pivot Table, dan tidak lupa untuk menamai Pivot Table terkait.
Lalu dia menamakan Pivot Table ini : ptPDHDnonLunas
Masih di halaman “TABEL”, Pivot Table yang kedua pak Adi taruh di cell L1.
Lalu dia menamakan Pivot Table ini : ptBayar
Membuat Excel UserForm melalui Visual Basic Editor
Pada tab menu “Developer” bagian “Code”, klik “Visual Basic”. Seperti yang terlihat pada gambar-3 dibawah ini.
Muncul window baru seperti pada gambar-4 dibawah ini.
Pada gambar-4 diatas, terlihat didalam window Microsoft Visual Basic for Applications (VBA) tsb, terdapat dua window di bagian kiri atas dan bawah, yakni window Project – VBAProject dan window Properties.
Klik kanan pada mouse (kanan ya, bukan kiri) di area window Project – VBAProject, pilih “Insert” lalu klik “UserForm”. Seperti yang terlihat pada gambar-5 dibawah ini.
Muncul dua buah window baru, window “Toolbox” dan window UserForm berjudul “UserForm1”. Seperti yang terlihat pada gambar-6 dibawah ini.
Pada window “Properties”, ganti nama-nya dari UserForm1 menjadi frmBayar. Ganti juga judul-nya (Caption) dari UserForm1 menjadi FORM BAYAR. Seperti yang terlihat pada gambar-7 dibawah ini.
Karena ada beberapa UserForm control yang diperlukan, pak Adi memperbesar “canvas” FORM BAYAR agar mudah meletakkan control control yang diperlukan. Cara memperbesar “canvas”-nya adalah dengan mengklik(kiri) kotak kecil di sudut kanan bawah UserForm, sambil terus menekan klik pada mouse, seret kebawah kotak kecil tsb sampai mencapai besar yang di-ingin-kan. Seperti yang terlihat pada animasi gambar-8 dibawah ini.
Pak Adi akan menempatkan control control yang terdapat di window “Toolbox”. Ada lima jenis control yang diperlukan, yakni seperti yang terlihat pada gambar-9 dibawah ini.
Selanjutnya cara menempatkan control controlnya di canvas UserForm, sama seperti di part-4, klik(kiri) kontrol yang di inginkan – lalu klik(kiri) di canvas-nya. Seperti yang terlihat pada animasi gambar-10 dibawah ini.
pak Adi membuat control control-nya sebanyak sbb:
CONTROL | JUMLAH |
---|---|
Label | 1 |
TextBox | 1 |
ListBox | 3 |
Frame | 2 |
CommandButton | 7 |
Apabila kita klik salah satu control-nya, maka property-nya terlihat di window “Properties”, seperti yang terlihat di animasi gambar-12 dibawah ini.
Selanjutnya pak Adi mengganti nama dan judul (caption) yang secara default sudah ada pada masing-masing controlnya di window “Properties” dengan cara seperti pada gambar-7. Nama dan judul/caption-nya sebagai berikut :
Control | (Name) | Caption |
---|---|---|
Label1 | lblSum | SUM |
TextBox1 | CARI | |
ListBox1 | ListNama | |
ListBox2 | ListBlnThn | |
ListBox3 | ListNota | |
Frame1 | Frame1 | Pilih Nama PD/HD |
Frame2 | Frame2 | Pindahkan Nota |
CommandButton1 | PD | PD |
CommandButton2 | HD | HD |
CommandButton3 | RESET | RESET |
CommandButton4 | PndahNotaSemua | Semua Nota |
CommandButton5 | PindahNotaPilih | Nota Dipilih |
CommandButton6 | PindahNotaAbai | Ketik Nilai Bayar |
CommandButton7 | InputKeData | Input Ke Data |
Dan terakhir, dia mengatur ukuran dan posisi masing masing control sehingga hasilnya seperti yang dia inginkan, seperti pada gambar-13 dibawah ini
CONTROL | FUNGSI |
---|---|
PD | Untuk transaksi pembayaran dari customer |
HD | Untuk transaksi pembayaran ke supplier |
RESET | Membersihkan halaman BAYAR |
CARI | Tempat mengetik nama yang di cari |
ListNama | Menampilkan daftar nama PD/HD |
Ketik Nilai Bayar | Untuk pembayaran mengabaikan nomor nota |
Input Ke Data | Menyimpan ke data utama |
SUM | Menampilkan total nilai |
ListBlnThn | Menampilkan bulan dan tahun nota terkait |
ListNota | Menampilkan nomor nota dan nilai-nya |
Semua Nota | Untuk pembayaran yang komplit |
Nota Dipilih | Untuk pembayaran nomor nota yang loncat loncat |
Selesai sudah pak Adi membuat Excel UserForm melalui Visual Basic Editor. Di halaman berikut-nya pak Adi akan membuat kode-kode yang diperlukan untuk masing masing control di UserForm nya.
Apabila ada pembaca yang tidak jelas ataupun ada yang ingin ditanyakan terkait topik ini, silahkan tulis di kolom Comment. Saya akan berusaha untuk bisa menjawabnya.