Rabu, 19 September 2018

Coding VBA Macro Excel Menampilkan Multiple Userform dan Berfungsi Semua


Ketika kita run program dan menampilkan userform berikutnya, maka userform yang pertama seolah-olah mati atau disfungsi dan akan bisa digunakan lagi ketika userform terakhir muncul di close. Hal ini terjadi karena setting default dari VBA Excel ini dibuat seperti itu.

Bagaimana kita bisa menggunakan kedua userform berfungsi ketika di jalankan bersama-sama? Mari kita simak langkah-langkah berikut :

Persiapan
1. Bukalah program excel dengan mengaktifkan visual basic for application atau menekan tombol Alt+F11 pada keyboard.
2. Buatlah dua userform dengan masing-masing diberikan texbox untuk test apakah kedua userform bisa digunakan
3. Buatlah 1 button pada userform pertama yang berfungsi untuk menampilkan userform2

Setting Properties
Untuk bisa memfungsikan multiple userform kita setting pada properties masing-masing userform. Bagian yang kita cari adalah pada showmodal.

Bagian yang berwana biru (showmodal) pada masing-masing userform dibuat false, maka multiple userform bisa diaktifkan.

Selamat mencoba, semoga bermanfaat.

Minggu, 16 September 2018

Coding VBA Macro Excel Filter Data ListBox

Filter sangat penting sekali untuk mempermudah user mencari data berdasarkan kriteria tertentu. Pada kesempatan kali ini saya akan bagikan salah satu cara filter data yang ada di listbox dengan kriteria tertentu.

Persiapan :
1. Siapkan sebuah worksheet dengan nama sheetnya "databarang" yang terdiri 5 kolom dengan rincian seperti di bawah ini :


2.  Siapkan sebuah userform yang memiliki satu textbox dan satu listbox



Coding :
Berikut code yang diisi untuk filter di atas :

1. Membuat coding untuk pengisian listbox saat pertama kali ditampilkan
Private Sub UserForm_Activate()
Set ws = Sheets("databarang")
ws.Activate
ibow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Offset(0, 0).Row
ListBox1.RowSource = "a2:e" & ibow
End Sub

2. Membuat sub tampilsemua untuk menampilkan semua isi data pada saat textbox kosong
Sub tampilsemua()
Set ws = Sheets("databarang")
ws.Activate

ibow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Offset(0, 0).Row
If ibow > 3 Then
    ListBox1.RowSource = "a2:e" & ibow
    
Else
    ListBox1.RowSource = ""
End If
End Sub

3. Event yang dilakukan saat textbox1 terdapat perubahan
Private Sub TextBox1_Change()
If Me.TextBox1.Text = "" Then
    tampilsemua
Else
    Dim myTange As Range
    Dim criteria As Range
    Set ws = Sheets("databarang")
    ibow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Offset(0, 0).Row
    Set myTange = ws.Range("a2:e" & ibow)
    Set criteria = ws.Range("i2:i3")
    
    ws.Range("i2") = "Nama Barang"
    ws.Range("i3") = "*" & TextBox1.Text & "*"
    myTange.AdvancedFilter xlFilterCopy, criteria, ws.Range("k2:o2"), False
    
    ibow2 = ws.Cells(ws.Rows.Count, 11).End(xlUp).Offset(0, 0).Row
    If ibow > 2 Then
        ListBox1.RowSource = "k2:o" & ibow2
    Else
        ListBox1.RowSource = ""
    End If
End If

End Sub

Semoga bermanfaat

Sabtu, 15 September 2018

Coding VBA Macro Excel Menyembunyikan Worksheet dan Menampilkan Userform Saja

Pada umumnya programmer hanya menampilkan aplikasi saja pada program yang dibuatnya, tanpa menunjukkan basic data base progamnya. Pada kesempatan kali ini saya akan berikan contoh coding untuk menyembunyikan workbook excel dan hanya userform saja yang di tampilkan.

Logika yang di gunakan untuk melakukan hal di atas adalah pertama kita memberikan kode membuka userform saat file dibuka. Kedua, memberikan kode untuk menyembunyikan workbook saat userform sudah tampil, dan jangan lupa memberikan tombol untuk menampilkan workbook kembali untuk melihat ulang isi data kita. Berikut codingnya :

Sebelumnya siapkan file excel baru dengan satu userform dan lanjutkan langkah di bawah ini 
1. Membuat coding menampilkan userform saat file di buka
    Ketikkan kode berikut pada workbook
     Private Sub Workbook_Open()
              UserForm1.Show
     End Sub

2. Membuat coding menyembunyikan workbook
      Private Sub UserForm_Activate()
                 Application.Visible = False
      End Sub

3. Menambahkan tombol menampilkan workbook
      Private Sub CommandButton1_Click()
                Application.Visible = True
       End Sub

Semoga bermanfaat

Jumat, 14 September 2018

Coding VBA Macro Excel Menampilkan Program Saat File Dibuka

Bagaimana membuat coding agar program yang kita buat langsung jalan saat file kita buka? Pertanyaan ini pernah muncul di benak saya saat awal-awal mengenal VBA macro excel. Kalau di dalam pembuatan program melalu visual basic studio, pengaturan tampilan bisa dilakukan setting pada properties project. Sedangkan untuk VBA kita harus kasih tombol tambahan atau coding dulu untuk menampilkan program buatannya. Bagaimana caranya? Berikut langkah-langkah yang dilakukan untuk menampilkan program saat file dibuka

Persiapan
1. Buat sebuah file excel yang disimpan dengan format macro enable.
2. Masuk diprogram  developer seperti biasa dan buat sebuah userform (nama suka-suka saja), kali ini saya insert sebuah userform tanpa mengganti setting properties sama sekali.

Double click item workbook untuk membuka jendela coding pada workbook, cari event open dan masukkan kode berikut :

     Private Sub Workbook_Open()
              UserForm1.Show
     End Sub

Ok, selesai, jangan lupa disimpan dulu, kemudian close filenya dan buka kembali.

Selamat mencoba

Senin, 03 September 2018

Coding VBA Macro Excel Membuka File Excel

Untuk membuka file kita bisa lakukan dengan coding macro agar nampak lebih keren.
Berikut coding yang bisa kita gunakan

Sub BukaFileExcel()

Dim OpenFile As Excel.Workbook

'On Error Resume Next
Application.ScreenUpdating = False

Set OpenFile = Workbooks.Open(*'Silakan ganti alamat file disini'*) 

End Sub

Penggunaan ini bisa kita gabungkan dengan postingan sebelumnya membuka kotak dialog untuk mencari lokasi filenya.

Sabtu, 01 September 2018

Coding VBA Macro Excel Membuka Kotak Dialog

Untuk membuka file yang telah disimpan yang biasanya menggunakan fungsi open Ctrl + O. Open disini dia akan membuka kotak dialog untuk memilih file dan lokasinya. Hal bisa juga dilakukan dengan coding macro. Dengan cara ini bisa kita fungsikan untuk mensinkronkan antar file.

Contoh dari coding tersebut adalah sebagai berikut :

Private Sub CmdCariKT1_Click()
Dim fNameAndPath As Variant

 fNameAndPath = Application.GetOpenFilename(FileFilter:="Laporan (*.XLSx), *.XLSx", Title:="Select File Report To Be Opened")
 If fNameAndPath = False Then Exit Sub
Text1.Value = fNameAndPath
End Sub

Dari fungsi ini kita bisa menemukan filename yang di tunjukkan pada text1.

Coding VBA Macro Excel Mencari Baris Terakhir

Untuk penyimpanan data baru pada umumnya diletakkan setelah baris terakhir dari semua data, untuk itu perlu kita mencari pada baris keberapa data terakhir yang kita miliki,

Berikut contohnya pencarian baris terakhir

Sub CariDataTerakhir ( )

Dim Baris as Long
Dim ws As Worksheet
Set ws = Worksheets("db_BarangMasuk")

Baris = ws.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row

End Sub

Selain untuk menyimpan data baru, biasanya digunakan untuk pembuatan nomor urut yang baru dari sebuah data, sebagai contoh seperti berikut ini :

Sub CariDataTerakhir ( )

Dim Baris as Long
Dim ws As Worksheet
Set ws = Worksheets("db_BarangMasuk")

Baris = ws.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row

NomerUrutTerakhir = ws.Cells(Baris - 1, 1).Value
     NomorBaru = NomerUrutTerakhir + 1

        
End Sub

Keterangan :
Pada bagian baris berfungsi mencari baris pertama yang kosong dari semua data, untuk data terakhir terletak pada fungsi baris-1

Coding VBA Macro Pencarian Data Dalam Worksheet

Untuk pencarian data dalam fungsi macro visual basic for application excel menggunakan fungsi "find"

Contohnya sebagai berikut :
Di bawah ini adalah contoh pencarian pada worksheet "Kartu_Stok" dengan kata kunci "tepung", sedangkan range yang di cari pada semua cell worksheet dari cell A1 sampai XFD1000

Dim WS As Worksheet
Set WS = Worksheets("Kartu_Stok")

With WS.Range("A1:XFD1000")
Set c = .Find("tepung", LookIn:=xlValues)

If Not c Is Nothing Then
     Baris = c.Row
End If

Keterangan
WS adalah worksheet dimana data yang akan dicari
If Not c is nothing adalah apa yang akan dilakukan jika data ketemu, untuk mengantisipasi jika terjadi error data tidak ada, bisa juga mengguanakan on error resume next di bawah sub()