Pop up Main menu keren dengan excel - Biasanya kita menggunakan tombol Commandbutton untuk memanggil userform, atau menggunakan tombol Commandbutton untuk mengeksekusi suatu prosedur yang telah dibuat sebelumnya. Dan merupakan suatu hal yang lumrah saat memanggil form atau menjalankan prosedur kita memerlukan kontrol seperti tombol Commandbutton, label dan kontrol lainya, bagaimana jika kali ini saya bagikan pada anda ( pembaca ) tips membuat main menu tanpa melibatkan kontrol !!.

Saya akan sudahi dulu basa basinya intinya sekarang saya akan memberikan tips besar yang sangat jarang sekali anda temuka di blog excel lainya, tidak percaya silahkan baca sampai akhir

Pada kesempatan yang berbahagia ini saya akan memberikan tips membuat main menu secara drop down, biasanya yang namnya main menu berarti nanti akan banyak kontrol yang dilibatkan, akan tetapi sebagaimana yang saya sebutkan sebelumnya bahwa kali ini saya akan membagikan tips membuat main menu tanpa melibatkan kontrol yang ada di toolbox

Saya ambil perumpamaan saya sedang membuat aplikasi gudang, maka diperlukan main menu seperti menu Entri data barang, Pengeluaran, pemasukan , retur, laporan dan lain lain. Biar anda tidak penasaran lihat penampakan main menu yang telah saya buat dibawah ini


POP-UP MAIN MENU

Saya akan jelaskan kode macro yang perlu dirubah, dan saya sarankan bagi yang awam agar tidak terlalu merubah kode yang ada karena bisa saja nanti malah main menu-nya tidak muncul dengan baik, perhatikan baik baik kode macro yang akan saya urai dibawah ini

1 Menambahkan menu horizontal
Menu horizontal adalah menu yang tersusun dari kiri kekanan, ketika anda ingin menambahkan menu secara horizontal perhatikan kode macro dibawah ini

'Menyiapkan handle menu utama
hMainMenu = CreateMenu

'Submenu dari menu utama
hSubMenu = CreatePopupMenu
AddSubMenu "&File", 100, hMainMenu, hSubMenu, 0
'Item-itemnya
AddMenuItem "&Open", 110, hSubMenu, 0
AddMenuItem "Close", 120, hSubMenu, 1
AddMenuSeparator hSubMenu, 2
AddMenuItem "E&xit", 130, hSubMenu, 3


'Submenu yg lain dari menu utama
hSubMenu = CreatePopupMenu
AddSubMenu "&Master", 200, hMainMenu, hSubMenu, 1
'Item-itemnya
AddMenuItem "&Pemasukan", 210, hSubMenu, 0
AddMenuItem "&Pengeluaran", 220, hSubMenu, 1
AddMenuSeparator hSubMenu, 2
AddMenuItem "&Laporan", 230, hSubMenu, 3

'Item yg ini punya anak item
hSubMenu = CreatePopupMenu
AddSubMenu "Utility", 240, hMainMenu, hSubMenu, 2
'Nah, ini anaknya.
AddMenuItem "Ganti Password", 241, hSubMenu, 0
AddMenuItem "Ganti Theme", 246, hSubMenu, 1
AddMenuItem "Ganti Logo Aplikasi", 246, hSubMenu, 2

hSubMenu = CreatePopupMenu
AddSubMenu "About", 400, hMainMenu, hSubMenu, 3

Kode macro diatas telah berhasil menyusun menu secara horizontal yaitu menu File , Master, Utility, About. Jika anda igin menambahkan menu "Ndeso" maka tambahkan kode macro ( sebenarnya namanya bukan kode macro tapi API api asmara atau apalah, disini saya ambil apa yang selama ini kita pahami ) dibawahnya About

hSubMenu = CreatePopupMenu
AddSubMenu "Ndeso", 240, hMainMenu, hSubMenu, 4

Sehingga kode macronya menjadi seperti ini

'Menyiapkan handle menu utama
hMainMenu = CreateMenu

'Submenu dari menu utama
hSubMenu = CreatePopupMenu
AddSubMenu "&File", 100, hMainMenu, hSubMenu, 0
'Item-itemnya
AddMenuItem "&Open", 110, hSubMenu, 0
AddMenuItem "Close", 120, hSubMenu, 1
AddMenuSeparator hSubMenu, 2
AddMenuItem "E&xit", 130, hSubMenu, 3


'Submenu yg lain dari menu utama
hSubMenu = CreatePopupMenu
AddSubMenu "&Master", 200, hMainMenu, hSubMenu, 1
'Item-itemnya
AddMenuItem "&Pemasukan", 210, hSubMenu, 0
AddMenuItem "&Pengeluaran", 220, hSubMenu, 1
AddMenuSeparator hSubMenu, 2
AddMenuItem "&Laporan", 230, hSubMenu, 3

'Item yg ini punya anak item
hSubMenu = CreatePopupMenu
AddSubMenu "Utility", 240, hMainMenu, hSubMenu, 2
'Nah, ini anaknya.
AddMenuItem "Ganti Password", 241, hSubMenu, 0
AddMenuItem "Ganti Theme", 246, hSubMenu, 1
AddMenuItem "Ganti Logo Aplikasi", 246, hSubMenu, 2

hSubMenu = CreatePopupMenu
AddSubMenu "About", 240, hMainMenu, hSubMenu, 3

hSubMenu = CreatePopupMenu
AddSubMenu "Ndeso", 400, hMainMenu, hSubMenu, 4


Hasilya seperti gambar dibawah ini, ada tambahan menu Ndeso disebelah kanan ( paling kanan )


2 Menambahkan menu vertikal
Menu vertikal merupakan anak dari menu horizontal, yaitu menu yang tersusun dari atas kebawah atau drop down , untuk menambakan menu vertikal perhatikan kode macro dibawah ini

'Menyiapkan handle menu utama
hMainMenu = CreateMenu

'Submenu dari menu utama
hSubMenu = CreatePopupMenu
AddSubMenu "&File", 100, hMainMenu, hSubMenu, 0
'Item-itemnya
AddMenuItem "&Open", 110, hSubMenu, 0
AddMenuItem "Close", 120, hSubMenu, 1
AddMenuSeparator hSubMenu, 2
AddMenuItem "E&xit", 130, hSubMenu, 3


Misal saya tambahkan menu "Ndeso Kuwe" dibawah menu Exit, maka saya tinggal menambahkan kode macro

'Menyiapkan handle menu utama
hMainMenu = CreateMenu

'Submenu dari menu utama
hSubMenu = CreatePopupMenu
AddSubMenu "&File", 100, hMainMenu, hSubMenu, 0
'Item-itemnya
AddMenuItem "&Open", 110, hSubMenu, 0
AddMenuItem "Close", 120, hSubMenu, 1
AddMenuSeparator hSubMenu, 2
AddMenuItem "E&xit", 130, hSubMenu, 3
AddMenuItem "Ndeso Kuwe", 140, hSubMenu, 4


POP-UP MAIN MENU

Pada bagian ini saya akan jelaskan cara mengisi main menu dengan prosedur yang akan dijalankan ( aduh bahasanya sudah mulai belepotan ), maksudnya begini ya, saya akan mengisi menu tersebut dengan kode macro atau prosedur sehingga saat menu diklik maka kode macro atau prosedur dapat berjalan, sebagai contoh menu Exit akan digunakan untuk menutup Workbook

Public Function NewProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = &H111& Then
If lParam = 0 Then
Select Case wParam
Case 110:
Case 120:
Case 130: ThisWorkbook.Close
End Select
End If
End If
NewProc = CallWindowProc(g_OldProc, hWnd, Msg, wParam, lParam)
End Function

Tentunya anda ingat pada tips yang pertama anda menemukan angka angka sebelah caption menu ya, nah kegunaannya untuk ini, dan pastikan angka angka tersbut tidak sama antara menu satu dengan yang lainnya, kalau tetap memaksa sama maka nanti tau sendiri akibatnya. Perhatikan kode macro diatas dan yang dibawah ini yang berwarna kuning

'Menyiapkan handle menu utama
hMainMenu = CreateMenu

'Submenu dari menu utama
hSubMenu = CreatePopupMenu
AddSubMenu "&File", 100, hMainMenu, hSubMenu, 0
'Item-itemnya
AddMenuItem "&Open", 110, hSubMenu, 0
AddMenuItem "Close", 120, hSubMenu, 1
AddMenuSeparator hSubMenu, 2
AddMenuItem "E&xit", 130, hSubMenu, 3

Saya lengkapi semua sub menu dari menu utama File

Public Function NewProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = &H111& Then
If lParam = 0 Then
Select Case wParam
Case 110: Msgbox "Menu Open"
Case 120: Msgbox "Menu Close"
Case 130: ThisWorkbook.Close
End Select
End If
End If
NewProc = CallWindowProc(g_OldProc, hWnd, Msg, wParam, lParam)
End Function


Sekarang coba project Main menu keren dengan excel, semoga bermanfaat
No comments