Tampilkan postingan dengan label Tutorial Excel. Tampilkan semua postingan
Tampilkan postingan dengan label Tutorial Excel. Tampilkan semua postingan

Minggu, 08 Juni 2014

Membuat UserForm Entry Database Siswa Lengkap

Data Duplikat
Form Database Siswa adalah bentuk sederhana yang menggambarkan prinsip-prinsip desain UserForm dan terkait VBA coding. Menggunakan pilihan kontrol, termasuk kotak teks, kotak kombo, tombol pilihan yang dikelompokkan dalam bingkai (frame), kotak cek dan tombol perintah. dan Ketika pengguna mengklik tombol OK, sebuah data baru dimasukan ke dalam baris yang telah tersedia secara berurutan dalam lembar kerja.

Sebelum memulai tutorial ini, berikut beberapa control atau tombol serta bahan-bahan lain yang akan kita gunakan:

ControlTypePropertySetting
UserFormUserFormNameMenu


CaptionDatabase Siswa
LabelLabelCaptionNama Siswa
LabelLabelCaptionJenis Kelamin
LabelLabelCaptionKelas
LabelLabelCaptionAlamat
LabelLabelCaptionNama Orang Tua
Nama SiswaTextBoxNameTxNama
Laki-lakiOptionButtonNameOpLaki-laki


CaptionLaki-laki
PerempuanOptionButtonNameOpPerempuan


CaptionPerempuan
KelasComboBoxNameCbKelas


Style2-fmStyleDropDownList
AlamatTextBoxNameTxAlamat
Nama Orang TuaTextBoxNameTxOrangTua
StatusFrameNameFrStatus


CaptionStatus
AktifOptionButtonNameOpAktif


CaptionAktif
AlumniOptionButtonNameOpAlumni


CaptionAlumni
Siswa Tidak MampuCheckBoxNameChTidakMampu
Hapus FormCommandButtonNameCmHapus


CaptionHapus Form
OKCommandButtonNameCmOK


CaptionOK
BatalCommandButtonNameCmBatal


CaptionBatal


CancelTrue
jika jendela property belum keluar, tekan tombol F4 di keyboard
Mendesain Sebuah UserForm
Untuk membangun sebuah desain UserForm seperti di atas (atau UserForm Lain), ikuti langkah berikut :
  1. Saya asumsikan Anda sudah membuka file Excel, kemudian aktifkan jendela Visual Basic Editor (tekan tombol Alt + F11)
  2. Di jendela Visual Basic Editor, klik menu Insert > UserForm
  3. Jika Toolbox tidak muncul, klik UserForm untuk menampilkannya atau klik menu View > Toolbox
  4. Untuk menempatkan tombol (control) ke dalam UserForm cukup dengan memilih tombol atau control yang diinginkan kemudian Klik UserForm, Atur posisi, ukuran atau sejenisnya sesuai selera
  5. Untuk melakukan pengeditan terhadap sebuah Control, pastikan control tersebut sudah dalam keadaan terpilih yang kemudian lakukan beberapa perubahan di jendela properties
  6. Jika terdapat kesalahan saat menambahkan control, cukup dengan memilih control tersebut dan tekan tombol delete di keyboard Anda
Sebuah UserForm yang sudah dibangun tentunya tidak akan dapat berjalan dengan sendirinya, ada beberapa kode-kode yang harus menjalankannya.
Kode Dasar
Hampir kebanyakan Form perlu adanya pengaturan saat mereka muncul, atau yang biasanya kita sebut dengan nilai default. Proses seperti ini dalam Macro ditempatkan di UserForm_Initialize.

Untuk menambahkan kode pada bagian ini, terlebih dulu aktifkan jendela Code atau Anda dapat langsung menekan tombol F7
Private Sub UserForm_Initialize()
TxNama=""
TxAlamat=""
TxOrangTua=""

OpLaki=false
OpPerempuan=False
with CbKelas
    .AddItem "Kelas X"
    .AddItem "Kelas XI"
    .AddItem "Kelas XII"
End With
CbKelas = ""

OpAktif = False
OpAlumni = False
ChTidakMampu = False

TxNama.setFocus
End Sub

Menambahkan Kode Pada Tombol
Dari desain UserForm kita di atas, terdapat tiga buah tombol yang mana masing-masing mempunyai kode dan perintahnya sendiri.
OK... kita mulai dengan yang paling sederhana.

Tombol BATAL :
seperti yang saya katakan di atas ini merupakan kode yang paling sederhana yakni berfungi untuk menutup UserForm.
  1. Masih dalam Jendela Editing Visual Basic, Klik 2x tombol BATAL pada UserForm untuk langsung menuju jendela kode dengan nama Private Sub CmBatal_Click()
  2. Dan, baris prosesur lengkapnya untuk tombol ini seperti berikut:
    Private Sub CmBatal_Click()
       Unload Me
    End Sub
Tombol Hapus Form :
Pada langkah sebelumnya kita sudah membuat kode yang berfungsi sebagai nilai default dari sebuah UserForm. Nah, agar kode tersebut tidak mubazir kita akan menggunakannya kembali dengan memakai perintah Call
  1. Masih dalam Jendela Editing Visual Basic, Klik 2x tombol Hapus Form pada UserForm untuk langsung menuju jendela kode dengan nama Private Sub CmHapusForm_Click()
  2. Dan, baris prosesur lengkapnya untuk tombol ini seperti berikut:
    Private Sub CmHapusForm_Click()
       Call UserForm_Initialize
    End Sub
Artinya, perintah itu akan memanggil kode-kode yang sudah tertulis atau yang terdapat di UserForm_Initialize

Catatan
  • Ada baiknya simpan terlebih dahulu pekerjaan Anda sebelum terjadi hal-hal yang tidak diinginkan. Dan, ingat menyimpannya harus dengan type Excel Marco - Enabled Workbook
  • Rename Sheet1 atau Sheet lainnya misal dengan nama DATA SISWA
Tombol OK :
OK... sekarang kita akan menempatkan beberapa kode untuk melakukan sebuah perintah atau lebih tepatnya mentransfer segala apa yang kita pilih atau ketik di UserForm ke dalam Lembar Kerja.
  1. Klik 2x tombol OK pada UserForm untuk langsung menuju jendela kode dengan nama Private Sub CmOK_Click()
  2. Dan, berikut kode lengkapnya :
    Private Sub CmOK_Click()
    ActiveWorkbook.Sheets("Data Siswa").Activate
    'kode di atas untuk memastikan lembar kerja yang digunakan sebagai tempat menyimpan informasi dari UserForm
    Range("A1").select

    Do
    If IsEmpty(ActiveCell) = FalseThen
       ActiveCell.Offset(1, 0).Select
    End If

    Loop Until IsEmpty(ActiveCell) = True

    ActiveCell.Value = TxNama.Value
    If OpLaki = True Then
        ActiveCell.Offset(0, 1) = "Laki-laki"
        ElseIf OpPerempuan = True Then
        ActiveCell.Offset(0, 1) = "Perempuan"
    End If
    ActiveCell.Offset(0, 2) = CbKelas.Value
    ActiveCell.Offset(0, 3) = TxAlamat.Value
    ActiveCell.Offset(0, 4) = TxOrangTua.Value
    If OpAktif = True Then
        ActiveCell.Offset(0, 5) = "Aktif"
        ElseIf OpAlumni = True Then
        ActiveCell.Offset(0, 5) = "Alumni"
    End If
    If ChTidakMampu = True Then
        ActiveCell.Offset(0, 6) = "Ya"
        ElseIf OpAlumni = True Then
        ActiveCell.Offset(0, 6) = "Tidak"
    End If
    Range("A1").Select
    'Kode berikut ini dapat ditambahhan jika menginginkan file di simpan setiap kali pengguna mengklik tombol OK
    Application.ActiveWorkbook.Save
    End Sub

Membuka Form Database Siswa
Form untuk mengentry database siswa sudah siap untuk digunakan, namun ada satu kode yang kurang; ya... kode untuk memanggil form. Permasalahan ini dapat diselesaikan dengan 2 cara;

Cara yang pertama
Membuat sebuah tombol, grafik, atau form control yang diletakkan dalam lembar kerja, kemudian klik kanan grafik atau tombol tersebut dan pilih perintah Assign Macro selanjutnya tambahkan sebuah module untuk memanggil Form seperti berikut :
Sub BukaMenu()
    Menu.show
End Sub

Cara yang Kedua
Memanggil Form secara otomatis ketika file dibuka, dengan menuliskan perintah berikut dalam ThisWorkbook
Private Sub Workbook_Open()
   Menu.Show
End Sub

Format Judul Header
Pastikan lembar kerja yang digunakan sebagai tempat menyimpan informasi dari UserForm sudah terpilih, dalam contoh ini pilih sheet Data Siswa, jika belum rename nama sheetnya. Kemudian buatlah sebuah format seperti berikut :
Format Data Siswa

Semoga dapat memberikan manfaat bagi semuanya...

Macro Berjalan Otomatis Saat Membuka File Excel

Auto Macro VBA
Ada begitu banyak alasan mengapa kita menginginkan agar sebuah perintah tertentu dijalankan secara otomatis ketika kita membuka sebuah file Excel. Perintah yang dimaksud disini adalah sebuah Macro. Contoh sebuah Macro yang berjalan secara otomatis saat sebuah file dibuka antara lain; kotak pesan (message box), sebuah form Login, atau yang lainnya.

Ada dua cara atau metode untuk melakukan ini.
Sebagai contoh, kode berikut akan menjalankan sebuah Macro berupa kotak pesan yang secara otomatis muncul ketika file dibuka.

Cara 1 :
Menggunakan Module
Module Auto Macro
Kode :
Private Sub Auto_Open()
   MsgBox "Macro ini dijalankan menggunakan Module"
End Sub

Cara 2 :
Memasukkan kode melalui ThisWorkbook
ThisWorkbook Marco Otomatis
Kode :
Private Sub Workbook_Open()
   MsgBox "Macro ini dijalankan melalui ThisWorkbook"
End Sub

Langkah terakhir adalah menyimpan file dengan type Excel Macro-Enabled Workbook
Tutup file dan buka kembali untuk melihat hasil kerjaan.

Membuka atau Menutup UserForm Dalam Waktu Tertentu

Metode OnTime
Dalam kondisi tertentu barangkali kita menginginkan agar UserForm, perintah, atau code dijalankan dalam waktu tertentu, sehingga pengguna tidak perlu untuk mengeksekusi menggunakan perintah-perintah lain. dan dalam tutorial ini kita menggunakan UserForm sebagai bahan percobaan.

Perintah utama dalam menjalankan kondisi ini adalah menggunakan metode
Application.OnTime kode inilah yang kemudian dimasukkan dalam sebuah Module untuk berikutnya dijalankan.

contoh penggunaannya dalam sebuah module
Sub X ()
Application.OnTime Now + TimeValue ("00:00:05"), "Perintah_Lain"
End Sub
Application.Ontime :
digunakan untuk menjalankan sebuah prosedur dalam waktu yang sudah kita spesifikasikan
TimeValue :
merupakan sebuah kondisi dimana perintah akan dijalankan, dalam contoh di atas perintah akan dijalankan dalam hitungan 05 detik
Perintah_Lain :
adalah sebuah prosedur (Module) lain yang akan dijalankan ketika waktu yang yang kita masukkan sedang terjadi.
Untuk membuat prosedur "perintah_lain" maka kita membuat sebuah module baru yang berisi perintah atau kode-kode tertentu yang kita inginkan.
sebagai contoh :
Sub Perintah_Lain()
UserForm1.Show
End Sub
Artinya, ketika pengguna menjalankan perintah Sub X - pengguna harus menunggu sekitar 05 detik kemudian Sub Perintah_Lain akan dijalankan, dalam contoh diatas yakni menampilkan UserForm1

Ilustrasi dalam menggunakan metode ini sebagai berikut

Mengaktifkan Macro Security

Hampir sebagian besar beberapa perintah, tools, serta menu-menu yang digunakan dalam Asis menggunakan kode VBA, yang artinya menu atau perintah dalam aplikasi hanya bisa diakses atau digunakan sebagaimana mestinya jika Macro Security sudah diaktifkan.

Sebuah jendela untuk mengaktifkan Macro akan muncul dalam aplikasi Asis, yang memerintahkan anda untuk mengaktifkannya terlebih dahulu agar bisa menggunakan semua fasilitas dalam aplikasi. Anda bisa mengikuti langkah-langkah pengaturan Macro security dalam jendela yang ditampilkan dalam Aplikasi.
Langkah untuk mengaktifkan Macro Security
  1. Klik Icon Set Macro security yang terdapat pada grup System
  2. Pada jendela Macro security, pilih enable all macros ….
  3. Mengatur Macro Security Excel
  4. Tutup Aplikasi Asis dan jika ada permintaan untuk menyimpan abaikan saja (pilih YES atau NO)
  5. Buka kembali Aplikasi Asis dan anda siap untuk menggunakannya

Memaksa Pengguna Mengaktifkan Macro Security Excel

Tombol On Off
Ada saat dimana anda mungkin menginginkan pengguna file excel yang anda buat untuk mengaktifkan Macro agar file bisa dijalankan sebagaimana mestinya. Dengan kata lain, sebuah file yang didalamnya terdapat kode Macro - mengharuskan pengaturan Macro Security menjadi aktif, karena jika tidak maka file tersebut sudah pasti tidak dapat bekerja sesuai keinginan.

Pada dasarnya dalam Aplikasi Microsoft Office Excel tidak ada sebuah kode untuk mengaktifkan Macro secara otomatis, namun Anda dapat memaksa pengguna untuk mengaktifkan Macro 'secara otomatis' saat sebuah file excel terbuka.

Cara kerja konsep
Ketika Macro Dalam Keadaan MATI (disable)
» Menyembunyikan Sheet utama yang berisi file
» Menampilkan Sheet informasi agar pengguna mengaktifkan macro Ketika Macro Dalam Keadaan NYALA (enable)
» Menampilkan kembali sheet utama
» Menyembunyikan sheet informasi macro

Penting :
» Sebelum memasang kode pastikan MACRO Security dalam keadaan aktif
» Sheet tambahan tidak berada di awal atau di akhir.
» Yang paling penting adalah Berdoa agar kode berhasil……

Mempersiapkan Lembar Kerja
Saya berasumsi bahwa dalam lembar kerja excel anda terdapat 3 buah sheet, dengan masing-masing nama sheet antara lain; Sheet1, Sheet2, dan Sheet3.

Sheet1 dan Sheet3 adalah sheet utama yang berisi data excel anda, sedangkan
Sheet2 adalah Sheet informasi yang Anda dapat mengisinya dengan sebuah informasi agar pengguna mengaktifkan Macro Security.
Memasang Kode VBA
Aktifkan dulu Microsoft Visual Basic, kemudian buatlah sebuah Module dengan cara
klik Menu Insert » Module. dan selanjutnya copy paste kode berikut di Module yang sudah anda buat.
Public bIsClosing As Boolean
Dim wsSheet As Worksheet

Sub HideAll()
Application.ScreenUpdating = False
For Each wsSheet In ThisWorkbook.Worksheets
    If wsSheet.CodeName = "Sheet2" Then
       wsSheet.Visible = xlSheetVisible
    Else
       wsSheet.Visible = xlSheetVeryHidden
    End If
Next wsSheet
Application.ScreenUpdating = True
End Sub

Sub ShowAll()
bIsClosing = False
For Each wsSheet In ThisWorkbook.Worksheets
    If wsSheet.CodeName <> "Sheet2" Then
       wsSheet.Visible = xlSheetVisible
    End If
Next wsSheet
Sheet2.Visible = xlSheetVeryHidden
End Sub

Langkah berikutnya adalah pilih ThisWorkbook dan paste kode berikut di dalamnya
Private Sub Workbook_BeforeClose(Cancel As Boolean)
bIsClosing = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Cancel = True Or bIsClosing = False Then Exit Sub
Run "HideAll"
End Sub

Private Sub Workbook_Deactivate()
If bIsClosing = False Then Exit Sub
Run "HideAll"
End Sub

Private Sub Workbook_Open()
Run "ShowAll"
End Sub

Finalizing
Agar kode diatas dapat bekerja dengan baik, simpan file dengan type Excel Macro-Enabled Workbook.
Lihat perubahan dengan cara mengaktifkan atau menonaktifkan pengaturan Macro Excel

Memaksa Menyimpan Sebuah File Excel Ketika Ditutup

Sebuah dokumen yang sudah mengalami perubahan meskipun hanya sedikit pastinya ketika kita akan menutupnya - baik dokumen itu sendiri maupun aplikasinya akan menampilkan sebuah pesan bahwa ada perubahan yang terjadi pada sebuah dokumen, kemudian dalam pesan tersebut meminta kita untuk menyimpan dokumen (Yes) atau tidak (No) atau bahkan membatalkan perintah ini (Cancel).

Namun, ada kalanya pengguna Excel menginginkan sebuah perintah untuk 'memaksa' sebuah dokumen untuk di simpan ketika ditutup, entah dokumen tersebut mengalami perubahan atau tidak.

Untuk 'memaksanya' maka diperlukan sebuah kode VBA
Langkah-langkahnya
  1. Buka dokumen excel atau buat dokumen baru
  2. Aktifkan jendela Microsoft Visual Basic (lihat disini untuk lebih detailnya)
  3. Paste kode berikut pada bagian ThisWorkbook
  4. Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.DisplayAlerts = False
    ThisWorkbook.Close savechanges:=True
    End Sub
  5. simpan dokumen tersebut dengan type Excel Macro-Enable Workbook
Jika anda mengingikan untuk 'memaksa' sebuah dokumen untuk tidak menyimpan semua perubahan yang terjadi ketika dokumen ditutup, maka ganti kodenya seperti berikut : 
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
ThisWorkbook.Close savechanges:=False
End Sub

Menampilkan Tab Developer Office Excel

Selain perbedaan user interface aplikasinya antara Microsoft Office 2007 dan 2010, diantaranya juga memiliki beberapa perubahan diantaranya letak pengaturan tab menu dimana kita dapat memodifikasi menu ribbon yang ada. bahkan pada Microsoft Office 2007 kita diberikan akses untuk menambahkan tab menu baru di dalam aplikasi.

Salah satu tab menu yang secara default disembunyikan oleh Excel baik excel versi 2007 maupun excel versi 2010 adalah Tab Developer. Tab ini berisi perintah-perintah yang berhubungan dengan kode VBA yang bisa kita tampilkan atau tidak, dan untuk menampilkannya dapat dilakukan melalui tombol Office untuk excel 2007 dan menu File untuk 2010.
Microsoft Office 2007
Menampilkan Teb Developer Microsoft Office 2007
Microsoft Office 2010
Menampilkan Teb Developer Microsoft Office 2010

Logika VBA Sederhana

Seperti yang sudah banyak diketahui oleh para pengguna Excel, fungsi logika (formula IF) digunakan untuk mencari sebuah hasil dari sebuah kondisi yang sudah ditentukan, jika kondisi terpenuhi akan menghasilkan nilai yang benar dan sebaliknya, jika kondisi tidak terpenuhi akan menghasilkan nilai yang salah. yang secara umum syntax penulisan kode seperti berikut =IF(Statement,True,false)

Sementara dalam Macro VBA, untuk membuat sebuah Fungsi logika dapat dilakukan melalui banyak metode. Ambil contoh seperti pernyataan berikut :


"Jika Nilai dalam sebuah TextBox adalah 1 maka sebuah Tombol akan muncul,
jika tidak maka tombol akan sembunyi."

Kode yang tepat untuk menerjemahkan kalimat pernyataan di atas (dengan asumsi dalam sebuah sheet atau Userform terdapat Objek TextBox1 dan CommandButton1) adalah
If TextBox1 = 1 Then
  CommandButton1.Visible = True
     Else
  CommandButton1.Visible = False
End If

Cara Membuat Logika VBA Sederhana
  1. Buat atau buka sebuah dokumen excel
  2. Aktifkan salah satu Sheet
  3. Pilih tab Menu Developer dan pilih grup Insert (ActiveX Control)
  4. Pada Grup Insert buat objek berikut dan letakkan dalam sebuah Sheet:
    - Text Box
    - Command Button
    Logika VBA sederhana
  5. Klik 2x objek Text Box, sehingga anda akan menuju aplikasi Visual Basic
  6. Paste kode diatas
  7. Tutup atau Minimize jendela Aplikasi Visual Basic
Sekarang coba ketikkan sebuah nilai dalam Text Box
Jika ingin mengganti kondisi untuk TextBox dalam format teks maka apit dengan tanda " ", contoh :
If TextBox1 = "rumahexcel" then ...

Link ke Internet dengan Kode VBA Excel

Internet Link with VBA Excel
Banyak sekali yang bisa dilakukan dengan sebuah Kode VBA yang sebagian kecil rumahexcel sudah sharing disini - tentunya dengan harapan dapat membantu mengatasi masalah Excel Anda.

Kode berikut ini berfungsi untuk langsung menuju ke sebuah halaman website (browser default tergantung dari pengaturan pengguna komputer)

ActiveWorkbook.FollowHyperlink "http://www.rumahexcel.com"

Tempatkan kode tersebut di sebuah CommandButton atau yang lainnya, sehingga ketika pengguna meng-klik tombol tersebut - maka membuka sebuah jendela browser (jika belum terbuka) dengan alamat website yang sudah tertulis dalam sebuah kode diatas (http://www.rumahexcel.com)

Kode diatas dapat berfungsi dengan baik ketika sebuah komputer terhubung dengan jaringan internet, artinya - ketika komputer dalam keadaan off-line maka sebuah pesan error akan ditampilkan. Untuk mengatasi permasalah ini, tambahkan sebuah perintah On Error Resume Next - sehingga meskipun pengguna meng-klik kode tersebut sedangkan komputer dengan keaadaan Off-line - pesan error akan diabaikan.

Ganti alamat website tersebut dengan alamat website yang anda inginkan.

Memulai Membuat Macro Excel

Ada banyak cara untuk memulai membuat Macro Excel, ada yang dilakukan dengan cara merekam aktifitas excel yang kemudian tersimpan menjadi sebuah kode, atau dengan cara menuliskan sebuah kode tertentu yang mewakili sebuah perintah tertentu.

Barangkali untuk beberapa pengguna excel, cara yang pertama yakni merekam Macro adalah cara yang sederhana dan tepat dilakukan - mengingat dengan cara ini kita tidak perlu untuk mengetikkan sebuah kode tertentu untuk menjalankan sebuah perintah.

Memulai membuat macro excel (pada Microsfot Office Excel 2007)
  1. Jika 'Developer' tab masih belum muncul, silahkan aktifkan dulu dengan cara
    • Klik Microsoft Office Button, dan kemudian klik Excel Options
    • Di kategori Popular, dibawah sub menu Top options for working with Excel, centang kotak Show Developer tab in the Ribbon, dan akhiri dengan tombol OK
    • Tab baru muncul di jendela excel dengan nama Developer
  2. Untuk memulai merekam macro, klik icon Record Macro yang terdapat di grup Code, atau bisa juga memulai record macro dengan klik icon record yang terdapat di status bar
    Memulai Record Macro
  3. Jendela untuk deskripsi Record Macro akan muncul, anda bisa mengabaikan jendela ini dengan langsung klik tombol OK atau anda bisa mengisi nama untuk macro anda.
    Deskripsi Macro
  4. Mulailah melakukan aktifitas excel anda, sebagai contoh sederhana;
    • Pilih Sheet2
    • Di Sheet2 pilih sel C7
  5. Akhiri dengan menghentikan tombol Stop Recording
Melihat Hasil Record Macro - View Code
Hasil dari record macro yang baru anda lakukan dapat dilihat dengan cara :
  1. Klik View Code yang terdapat pada grup Controls, atau bisa anda lakukan dengan menggunakan shotcuts Alt+F11 untuk menampilkan jendela Microsoft Visual Basic View VBA Code
  2. Pada bagian jendela Project - VBAProject, pilih workbook yang aktif dan pilih di bagian Modules -> Module1, pada bagian inilah kode yang tadi kita rekam tersimpan
  3. Kode VBA excel
    Keterangan :
    • Sub Pergi_Ke_Sheet2() : judul dari macro
    • Sheets("Sheet2").Select : memilih sheet2
    • Range("A1").Select : memilih sel A1 yang terdapat di sheet2
Cara Menggunakan - Menjalankan Macro
Macro yang sudah dibuat tidak bisa berjalan dengan sendirinya, kecuali kita berikan perintah agar ia bisa berjalan sebagaimana mestinya. Banyak cara menjalankan macro yang sudah dibuat, salah satunya dengan cara seperti berikut :
  1. Aktifkan sheet1 jika belum dan pilih tab Developer, kemudian pilih Insert - dan dari beberapa menu pilihan, pilih Button(form control) seperti yang terlihat pada gambar berikut
    Membuat tombol Button
  2. Klik di area yang anda inginkan pada Sheet1, yang secara otomatis akan menampilkan jendela Assign Macro
  3. Pilihlah macro yang terdapat pada kolom Macro Name:, untuk contoh diatas saya memilih macro Pergi_Ke_Sheet2 dan saya akhiri dengan OK untuk menutup jendela Assign Macro
    Memilih Macro
  4. Sekarang coba anda klik tombol Button yang tadi sudah dibuat, dan lihat hasilnya.....
Semoga penjelasan sederhana  ini membuat anda semakin semangat dalam mempelajari Microsoft Excel.

Kode VBA Excel Untuk Menghapus Kode VBA Lain

Hapus
Beberapa waktu lalu saya mendapati sebuah pertanyaan tentang bagaimana cara menghapus sebuah kode VBA menggunakan kode VBA lainnya. Kemudian saya berfikir, buat apa menghapus (dengan sengaja) sebuah kode atau beberapa kode yang sudah susah payah dibangun!!! tapi entahlah, mungkin memang ada kode yang 'harus' dirahasiakan sehingga ketika dalam keadaan tertentu kode tersebut harus segera dimusnahkan...

Konsep dasar dari tutorial ini adalah dengan melihat sebuah objek vba (module, userform, maupun class modules) yang tersimpan dalam sebuah ProjectVBA - untuk kemudian di hapus menggunakan kode VBA.
artinya, bukan hanya kode yang terhapus melainkan objek itu juga akan ikut terhapus.

Seperti biasa, buat atau buka dokumen Microsoft Excel jika belum - kemudian tekan Alt + F11 untuk langsung menuju jendela Visual Basic Editor.
Buat sebuah module baru dengan cara pilih menu Insert > Module, selanjutnya tempelkan kode berikut di jendela kode
Sub Hapus()
Dim X As Object

Set X = Application.VBE.ActiveVBProject.VBComponents
X.Remove vbcomponent:=X.Item("UserForm1")
MsgBox "Beberapa kode (Objek VBA) dihapus dari database atas permintaan pengguna", vbCritical, "remove object"
End Sub

UserForm1 adalah sebuah objek yang akan dihapus, dengan asumsi dalam projek VBA Anda terdapat sebuah userform dengan name UserForm1 - karena jika tidak terdapat userform dengan nama tersebut, maka kode ini tidak bisa dijalankan dengan semestinya.

Ganti text warna merah dengan objek yang terdapat dalam ProjectVBA Anda yang ingin dihapus.

Kode Macro VBA Untuk Memainkan Musik

Macro VBA Memainkan musik dalam excel
Menambahkan sebuah perintah, menu, tombol atau feature untuk memainkan suara (file WAV) dalam Sebuah aplikasi berbasis excel yang anda buat, barangkali bisa dijadikan sebagai pelengkap atau mungkin hanya sekedar untuk memperindah tampilan aplikasi. Tentunya, hal yang pertama yang harus dilakukan adalah dengan menambahkan kode VBA dalam aplikasi anda.
Langkah 1 : Menambahkan Module untuk memainkan musik
  1. Aktifkan jendela Microsoft Visual Basic
  2. Tambahkan sebuah module dengan cara klik menu Insert > Module
  3. Copy dan paste code berikut di bagian paling atas pada module yang sudah dibuat sebelumnya
  4. Declare Function sndPlaySound32 Lib "winmm.dll" Alias _
    "sndPlaySoundA" (ByVal lpszSoundName As String, _
    ByVal uFlags As Long) As Long
    Kode macro Vba untuk memainkan suara musik dalam excel
Langkah 2 : Tombol untuk memainkan musik
  1. Minimize jendela visual basic anda
  2. Tambahkan sebuah CommmandButton untuk memainkan musik dan letakkan di dalam sheet yang anda inginkan
  3. Tombol untuk memainkan musik dalam excel
    Jika tab Developer belum muncul, klik menu office button > excel options > di bagian kategori Popular centang show developer tab in the ribbon
  4. Klik 2x tombol yang baru dibuat, yang secara otomatis akan membawa ke jendela visual basic lagi
  5. Masukkan kode berikut ini untuk memanggil suara atau musik
  6. Private Sub CommandButton1_Click()
    Call sndPlaySound32("C:\Windows\Media\tada.wav", 0)
    End Sub
    tada.wav merupakan sebuah file WAV yang terletak di drive C:\... anda bisa memodifikasi file ini sesuai dengan selera, namun file yang bisa dimainkan untuk kode diatas hanya file audio yang berekstensi WAV
  7. Simpan pekerjaan anda sebagai Excel Macro-Enabled Workbook.

Disable Klik Kanan Pada Lembar Kerja Excel

Disable klik kanan di excel
Klik kanan atau right click berfungsi untuk menampilkan popup menu tertentu tergantung dimana pointer diarahkan dan di klik. Mungkin sering kali kita menemui disable right click pada beberapa situs atau blog yang mungkin bagi pemilik blog atau situs tersebut berkeinginan untuk memproteksi artikel atau mungkin yang lainnya.
Dalam aplikasi Microsoft Excel, Teknik untuk dapat mematikan klik kanan dilakukan dengan menggunakan bantuan Macro VBA untuk menjalankannya. lihat disini untuk memulai membuka jendela VBA.
Langkah menon-aktifkan klik kanan pada lembar kerja excel
sebelumnya buat atau buka terlebih dahulu sebuah dokumen microsoft excel
  1. Buka jendela Visual Basic jika belum
  2. Pada jendela project – VBA Project pilih sheet atau lembar kerja yang ingin dinon-aktifkan klik kanan
  3. Kemudian pada Object (General) pilih Worksheet dari menu dropdown, sedangkan untuk procedure (Declarations) – pilih BeforeRightClick. Lihat gambar berikut untuk lebih jelasnya.
  4. Disable klik kanan di microsoft excel
  5. Kode untuk menon-aktifkan klik kanan adalah Cancel=true
  6. Hasil akhir penulisan kode untuk teknik ini adalah
  7. Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    End Sub
  8. Sekarang, silahkan anda coba klik kanan di lembar kerja yang sudah diberikan kode ini untuk melihat perubahannya.
  9. jika anda ingin menambahkan sebuah pesan ketika pengguna meng-klik kanan pada sheet tersebut, masukkan tulisan yang dicetak tebal berikut Sebelum End Sub
  10. Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    MsgBox "Isi pesan anda"
    End Sub

CATATAN :
Kode VBA di atas hanya berfungsi untuk lembar kerja saja, artinya klik kanan akan tetap
berfungsi jika anda meng-klik ribbon menu atau tab sheet.

Semoga ada guna dan manfaatnya.

Format Mata Uang Otomatis di TextBox

Simbol Mata Uang
Terkadang dalam sebuah userform terdapat sebuah kotak (TextBox) yang diharuskan pengguna untuk memasukkan sebuah data dengan format mata uang, yang pada umumnya format penulisannya dimulai dengan simbol mata uang kemudian terdapat tanda pemisah ribuan pada angka-angka tersebut. Jika pengguna harus memasukkan data tersebut secara manual, artinya harus menuliskan simbol mata uang - yang kemudian diikuti dengan jumlah nominal disertai dengan tanda pemisah ribuan, pastinya akan membutuhkan sedikit waktu saat mengentrinya.

Solusi yang tepat untuk kasus seperti ini adalah dengan menambahkan sebuah kode yang cukup sederhana agar pengguna dapat dengan cepat mengentri sebuah angka atau nominal tanpa harus dipusingkan menulis simbol serta pemisah ribuan.

Sebagai latihan, buatlah sebuah UserForm dengan TextBox (dengan nama TextBox1) yang terdapat didalamnya, sehingga akan tampak kurang lebih seperti berikut ini.

Desain TextBox

Klik 2x TextBox1 untuk langsung menuju ke jendela kode VBE. kemudian masukkan kode berikut
TextBox1 = Format(TextBox1, "Rp #,###")
Cukup sederhana bukan....

Dengan kode di atas, ketika pengguna memasukkan sebuah angka-angka dalam kotak (TextBox1) maka sebuah simbol mata uang beserta pemisah ribuan akan tampil secara otomatis. Akan tetapi jika pengguna memasukkan data berupa Teks atau gabungan antara angka dan teks, maka simbol serta pemisah ribuan tidak akan muncul.

Jika system komputer Anda menggunakan bahasa selain Indonesia, maka gunakan tanda titik (.) dalam format kode di atas - sehingga penulisannya menjadi seperti "Rp #.###"
Lihat tutorial ini untuk memahami perbedaannya.

Isi ComboBox Sesuai Data Dalam Sheet

Untuk membuat pengguna agar lebih mudah dalam mengentry data atau untuk membatasi isi atau item sesuai dengan yang telah kita sediakan, dapat menggunakan fasilitas daftar Drop-down yang umumnya biasa dibuat menggunakan bantuan Data Validation. kemudian pada pilihan Settings >> pilih Allow : dan dari daftar pilihan yang ada, pilih List.

Cara diatas hanya dapat diberlakukan untuk sel dalam workbook, bagaimana jika ingin membuat Daftar Drop-Down menggunakan ComboBox yang terdapat dalam UserForm akan tetapi isinya berdasarkan data yang terdapat dalam range yang sudah kita tentukan ?

ComboBox Excel VBA
Untuk membuatnya terlebih dahulu ketikkan data-data pada sebuah Sheet (ambil contoh Sheet1) mulai sel A1 sampai dengan sel A5, kemudian siapkan sebuah UserForm yang didalamnya terdapat ComboBox dengan nama ComboBox1.

Langkah selanjutnya yaitu paste kode berikut dalam UserForm :
Private Sub UserForm_Initialize()
For Nomor = 1 To 7
    Datanya = Range("a" & Nomor)
    ComboBox1.AddItem Datanya
Next Nomor
End Sub

Jalankan Macro userform ini dengan menekan tombol F5 di keyboard anda.

Penomoran Baris Otomatis

Pada dasarnya penomoran otomatis dalam excel bisa dilakukan dengan menggunakan perintah Copy > Fill Series, namun pada beberapa contoh kasus kita hanya menginginkan suatu sel yang memiliki kriteria tertentu, akan menampilkan nomor secara berurutan yang saya menyebutnya penomoran otomatis.

Untuk melakukan hal ini dibutuhkan gabungan dari 2 formula, yang pertama formula pembacaan sel atau lebih tepatnya pembacaan baris dan yang kedua adalah formula untuk menentukan kriteria dimana baris tersebut akan terisi secara otomatis dengan angka.
Penomoran baris secara otomatis
Dari ilustrasi di atas dapat dijelaskan, Kolom No yang terdapat di kolom B akan terisi secara otomatis jika terdapat data di kolom C
Formula untuk pembacaan baris
Formula yang digunakan untuk membaca baris dalam lembar kerja excel
=ROW()
Jika rumus ini anda taruh di sel A4, maka akan menghasilkan angka 4. Artinya rumus ini akan membaca baris berdasarkan posisi baris dari excel itu sendiri. Akan tetapi jika hasil yang anda inginkan di sel A4 tersebut menjadi 1, atau ingin memulai pembacaan baris mulai dari sel A4 gunakan rumus berikut
=ROW()-3
Otomatisasi penomoran baris sesuai dengan kriteria tertentu
Untuk membuat kriteria, formula yang paling tepat digunakan menurut saya adalah formula =IF - sehingga kalau diterapkan dalam sel menjadi seperti berikut :
=IF(B4<>"";ROW()-3;"")
Jika rumus diatas anda letakkan di sel A4, maka hasilnya akan ditampilkan nomor secara otomatis HANYA jika di sel B4 tidak kosong
Drag rumus diatas ke bawah sesuai dengan kebutuhan.

Nomor Acak Dengan Format Desimal Menggunakan RandBetween

Random Image Terdapat setidaknya dua jenis fungsi yang tepat untuk membuat Nomor Acak (Random) dalam Microsoft Excel, yakni; Rand dan RandBetween. Perbedaan antara keduanya terletak pada distribusi angkanya.

Untuk fungsi RAND, menghasilkan nilai lebih besar dari atau sama dengan 0 dan kurang dari 1; hal ini jika menggunakan fungsi standard yakni =RAND(). Akan tetapi jika menggunakan syntax =RAND()*100 maka menghasilkan nilai acak antara 0 sampai dengan 100 (dengan format angka desimal)

Sedangkan fungsi Randbetween dapat dipergunakan untuk menghasilkan nilai angka acak dengan batas atas dan batas bawah yang dapat kita tentukan sendiri nilainya. Penulisan rumusnya adalah =RANDBETWEEN(bottom;top). Parameter pertama adalah "bottom" yaitu batas angka terendah dan parameter ke dua "top" adalah batas angka tertinggi.

Sebagai contoh, ketika kita menuliskan sebuah rumus =RANDBETWEEN(1,9)
dimana Angka terendah adalah 1 dan angka tertinggi adalah 9
maka setiap kali terdapat perubahan didalam worksheet maka akan menghasilkan angka acak antara 1 sampai dengan angka 9; tanpa angka dibelakang koma seperti hasil untuk rumus =RAND()

Jika ingin menghasilkan angka di belakang koma (angka desimal) untuk pengunaan fungsi =RANDBETWEEN dapat Anda gunakan syntax seperti berikut :
=RANDBETWEEN(1*100,9*100)/100
Artinya, komputer akan mengacak sebuah angka dengan batas bawah yakni 1 * 100 = 100, dan batas atas yaitu 9 * 100 = 900; kemudian setelah dikalkulasikan, komputer akan membaginya dengan 100 dengan menghasilkan pecahan angka desimal.

Untuk contoh diatas akan menghasilkan angka desimal 2 angka di belakang koma, ex 7,53 dan jika hasil yang diinginkan berupa 3 angka di belakang koma. ex 7,531; maka gunakan angka 1000 operator hitungannya. dan seterusnya....
sehingga penulisan akhir untuk menghasilkan angka acak dengan 3 angka dibelakang koma menjadi
=RANDBETWEEN(1*1000,9*1000)/1000

Jika menggunakan rumus =RANDBETWEEN dan ketika memasukkan nilai angka terendahnya lebih besar dari nilai tertinggi akan menghasilkan error #NUM!.
contoh =RANDBETWEEN(10,5)

Sabtu, 07 Juni 2014

Menolak Data Yang Sama (Double Record)

No Double Record
Ada kalanya ketika kita memasukkan data berupa angka terkadang terdapat ada data atau angka yang sama atau biasanya disebut dengan istilah double record, hal ini mungkin terjadi ketika disaat menginput data kita menggunakan menggunakan cara manual alias tanpa menggunakan bantuan formula excel sehingga memungkinkan terjadinya hal yang demikian, data yang sama akan tetap tertulis tanpa ada pemberitahuan bahwa data tersebut sudah ada.


Beberapa data yang tidak boleh sama adalah antara lain, Data Nomor Induk Siswa, NISN, NUPTK, Data Kepegawaian, Nomor KTP dan lain sebagainya, dimana data-data tersebut haruslah bersifat unik artinya hanya boleh ada satu record serta tidak boleh ada yang sama.

Untuk menolak data berupa angka yang sama dalam Microsoft Excel dapat menggunakan cara sebagai berikut
  1. Sorot beberapa sel atau range, kita ambil contoh A1:A5
  2. Biarkan sel-sel tersebut kosong untuk nanti kita akan mengisinya
  3. Aktifkan menu Data dan pilih Data Validation > Data Validation...
  4. Pada jendela Data Validation atur beberapa kriteria berikut
    • Setting
      • Allow : Whole number
      • Data : not equal to
      • Value : =IFERROR(MODE(A$1:A$5);"") dimana A$1:A$5 merupakan range yang tadi kita pilih
      • Setting double record

    • Error Alert
    • Berfungsi untuk menampilkan pesan error ketika menginput data yang sama
      • centang pilihan Show error alert... jika belum
      • Style : Stop - artinya; menolak jika ada data yang sama
      • Title : Judul pesan
      • Error message : Pesan error yang ingin ditampilkan
      • Pesan Error
  5. Akhiri dengan tombol OK
Coba input data-data berupa angka di sel yang sudah diberikan Data Validation ini, dan lihat apa yang terjadi. Apabila ketika anda menginput data yang sama kemudian muncul pesan dari excel untuk menolak data tersebut, itu artinya anda telah berhasil melakukannya. Sehingga hal ini dapat mencegah terjadi data yang dobel dalam suatu range.

atau

Gunakan pengaturan seperti berikut :
menolak data yang sama dengan formula
Dengan menggunakan pengaturan di atas maka setiap kali anda memasukkan data yang sama pada kolom A, Excel akan menolaknya.


Selamat mencoba,
Semoga ada guna dan manfaatnya

Menggunakan Fungsi DateDif Untuk Menghitung Selisih

Menghitung selisih tanggal dengan DateDIf
Fungsi DATEDIF digunakan menghitung selisih antara dua tanggal dalam berbagai interval yang berbeda, seperti jumlah hari antara tanggal, bulan atau tahun. Fungsi ini tersedia di semua versi Excel sejak versi 95 akan tapi penggunaan fungsi ini hanya didokumentasikan dalam file bantuan untuk Excel 2000. Untuk beberapa alasan, Microsoft telah memutuskan tidak mendokumentasikan fungsi ini dalam file bantuan dalam versi lain.

Syntax menggunakan fungsi DATEDIF sebagai berikut :
=DATEDIF(Tanggal1, Tanggal2, Interval)
Jika Tanggal1 lebih awal dari Tanggal2, fungsi DATEDIF akan menghasilkan error #NUM!, sedangkan jika format penulisan tanggal baik Tanggal1 dan Tanggal2 tidak valid maka akan menghasilkan error #VALUE. Lihat disini jika ingin menghilangkan pesan error sebuah formula

Nilai Interval yang umum digunakan dalam fungsi DATEDIF antara lain :
  • d : semua hari
  • m : semua bulan
  • y : semua tahun
  • yd : menghitung selisih hari dalam satu tahun
  • ym : menghitung selisih bulan dalam satu tahun
  • md : menghitung selisih hari dalam satu bulan
Untuk lebih jelasnya Simak baik baik cara penggunaannya :
Jika interval digunakan dalam sebuah formula, maka penulisannya harus apit dengan tanda petik, contoh :
=DATEDIF(Tanggal1, Tanggal2,"m")

Jika interval diambil dari sebuah sel, maka penulisan interval tidak menggunakan tanda petik, contoh :
=DATEDIF(Tanggal1, Tanggal2, A1)
dengan catatan : sel A1 seharusnya berisi dengan nilai m bukan "m"

Cara Menghitung Selisih Menggunakan Fungsi DateDif
Ambil contoh dari sebuah data seperti berikut :
A1
B1
12 Juli 2010 13 September 2012

Jika ingin melihat usia dari data seperti contoh diatas, maka formulanya seperti berikut :
Formula
Hasil
=DATEDIF(A1,A2,"d") 794
selisih hari secara keseluruhan
=DATEDIF(A1,A2,"m") 26
=DATEDIF(A1,A2,"y") 2
=DATEDIF(A1,A2,"yd") 63
terhitung mulai 12 juli s.d 13 september
=DATEDIF(A1,A2,"ym") 2
terhitung mulai juli s.d september
=DATEDIF(A1,A2,"md") 1
terhitung dari tanggal 12 s.d 13
=DATEDIF(A1,A2,"y")&" tahun" 2 tahun
=DATEDIF(A1,A2,"y")& " tahun "&DATEDIF(A1,A2,"d")&" hari" 2 tahun 794 hari
=DATEDIF(A1,A2,"y")& " tahun "&DATEDIF(A1,A2,"m")&" bulan" 2 tahun 26 bulan
=DATEDIF(A1,B1,"y")&" tahun "&DATEDIF(A1,B1,"ym")&" bulan "&   DATEDIF(A1,B1,"md")&" hari" 2 tahun 2 bulan 1 hari

Selamat bereksperimen
Semoga ada guna dan manfaatnya...

Merubah Satuan Waktu, Berat atau Jarak

Konversi data di excel
Dalam microsoft excel untuk mencari nilai tertentu dari suatu satuan atau merubah satuan, bukanlah suatu yang sulit dilakukan - dengan bantuan formula CONVERT, meng konversi satuan tertentu ke yang lainnya akan sangat cepat terselesaikan.

Sebagai gambaran, saya akan beri contoh kasus seperti berikut; 1 jam sama dengan 60 menit, 1 hari sama dengan 24 jam, dan seterusnya… hal ini mungkin sudah berada diluar kepala ketika ada sesorang bertanya akan hal itu. Namun apakah anda bisa menjawab dengan cepat pertanyaan berikut

Ada berapa detik dalam 7 hari atau satu minggu???

Jika harus menghitung secara manual artinya, dengan mengurut dari yang paling bawah misalnya dalam 1 menit ada 60 detik, berarti dalam 1 jam adalah 60 x 60 maka hasilnya adalah 3600 detik, dan seterusnya sampai menemukan jawaban atas pertanyaan di atas… masalahnya berapa banyak waktu yang anda butuhkan menjawabnya.

Tentunya dalam excel hal ini cukup sederhana sekali jika kita menggunakan formula yang tepat untuk menjawab soal di atas.

Formula CONVERT

Formula ini memberikan kita kemampuan untuk merubah nilai dari satu satuan ke satuan lainnya, dengan kata lain formula ini dapat kita gunakan sebagai ‘penerjemah’ seperti contoh kasus di atas.
Aturan Umum Penulisan Formula

=convert(number;from_unit;to_unit)

number : Angka atau bisa juga diisi dengan referensi sel
from_unit : satuan awal yang akan di convert
to_unit : hasil yang diinginkan

formula ini 'hanya' menerima penulisan teks dalam tanda petik dari unit atau satuan yang sudah ditetapkan oleh microsoft excel
Beberapa unit satuan dalam fungsi Convert
Satuan Berat
Gram "gr"
Pound "lbm"
Satuan Waktu
Tahun "yr"
Hari "day"
Jam "hr"
Menit "mn"
Detik "sec"
Satuan Jarak
Meter "m"
Inch "in"
Kaki "ft"
Contoh penerapan fungsi Convert
Sorot sel yang anda ingin munculkan hasil dari convert kemudian tuliskan rumusnya, sebagai contoh untuk mencari jawaban dari pertanyaan diatas maka cara penulisannya adalah :
=convert(7;"day";"sec")
atau jika data awal yang ingin anda convert semisal terdapat dalam sel A1, maka penulisan rumusnya adalah :
=convert(A1;"day";"sec")