Writing. Trying. Blogging.

Selasa, 25 April 2017

Menggunakan Record Macro pada Ms.Excel




Microsoft Excel menyediakan fungsi untuk membuat macro secara otomatis kemudian dapat disimpan lalu dijalankan kembali. Sangat mudah menggunakan Record Macro karena Ms. Excel akan secara otomatis men-generate semua tindakan kita ke dalam bahasa Visual Basic. Singkatnya anda tidak perlu mengetik kode Visual Basic untuk membuat Macro.



Berikut ini langkah-langkahnya.
1. Pertama-tama buat datanya terlebih dahulu, saya membuat contoh data nilai siswa.

2. Selanjutnya adalah menyederhanakan tabel agar hanya bagian yang penting saja yang akan terolah. Misalnya hapus baris “no”, “nama”, dan “nilai semester”

3. Transpose  tabel. Dalam hal ini daftar mata pelajaran semula berada di bagian baris atas diubah menjadi bagian kolom paling kiri, sedangkan kolom nama yang tadinya berada pada kolom kiri diubah menjadi bagian baris di atas. Cara men-TRANSPOSE:
Copy bagian yang penting saja (dalam contoh ini saya hanya mengkopi range mata pelajaran dan nama siswa), tempatkan pointer pada cell dimana data tersebut akan di letakkan, lalu klik kanan pada cell tadi pada pilih Transpose pada Paste Option.

4. Pada kolom daftar mata pelajaran kita lakukan format text yang mengarah vertikal agar mendaftar, blok kolom tersebut, klik kanan, Format Cells -> Alignment -> Ubah orientasi teks menjadi 0 derajat (degre) sehingga hasilnya seperti ilustrasi berikut.

5. Langkah berikutnya adalah menghapus kolom daftar mata pelajaran dan juga baris 23 dan 30 karena ini tidak kita perlukan. Sisipkan 2 baris kosong di bawah baris nama (untuk judul kolom tabel) dan beri warna beda pada baris nilai semester 4, untuk membedakan nilai semester 3, 4, dan 5. Hasilnya seperti ilustrasi berikut.

Pekerjaan berikutnya adalah membuat MACRO (merekam LANGKAH KERJA  dengan RECORD MACRO)
1. Tempatkan Active cell pada B16. Pastikan menge-klik Use Relative References (pada tab menu View -> tab Macros -> klik spin (segitiga kecil) pilih Use Relative References.

2. Kemudian klik Record Macro, kalau kita sudah siap melakukannya, maka akan muncul pop up menu isian, isikan seperlunya, jangan lupa memberi nama macro dan membuat shortcut ctrl+…(saya contohkan Ctrl+w). Ini bertujuan jika hendak menjalan macro kita tinggal menggunakan shorcut tersebut.

3. Berikutnya adalah membuat satu tabel secara manual (untuk data satu siswa saja), ubahlah seperti format tabel jadi. Caranya sisipkan kolom sebelah kanan siswa pertama sebanyak yang diperlukan (dalam contoh ini saya sisipkan sebanyak 8 kolom).

4. Sampai disini kita bisa mencoba kerja macro untuk tabel siswa ke dua, caranya tempatkan pointer pada cell nama siswa ke-3; Tekan shorcut key Ctrl+w seperti yang anda tentukan sebelumnya (saat akan me-record macro).
Jika hasilnya persis tabel yang kita buat namun berisi data siswa ke-2 maka itu berarti pekerjaan kita telah benar. Nah kalau siswanya banyak sekali anggaplah 200 siswa maka kita perlu menekan Ctrl+w tadi sebanyak sisa-nya yang belum dibuatkan tabel. Jadi tetep capek deh… agar hanya cukup sekali klik tombol Ctrl+w kita lakukan sedikit tambahan pada macro. Caranya klik menu macro -> view macro – klik edit dan tambahkan baris (setelah baris komentar yg ditandai awal dengan ‘…..) ketikkan:
Do Until Activecell.Value=””
dan pada bagian bawah sebelum end sub tulisan
Coba jalankan macro tadi dan tunggu beberapa detik kemudian data anda akan terubah secara menyeluruh menjadi tabel sesuai yang diharapkan. Data tadi akan diubah menjadi tabel persiswa dan tabelnya berderet ke kanan (secara horisontal).
Selamat mencoba dan semoga berhasil:)


Selasa, 18 April 2017

Membuat Form Isian Data Sederhana berbasis Ms.Excel






Nah setelah sebelumnya saya membahas tentang bagaimana cara membuat Form input data siswa, kali ini saya akan berbagi bagaimana cara membuat Form isian data yang sederhana. Yang tentunya masih berbasis Ms.Excel dengan menggunakan VBA Project.
1. Buka file excel 2007.


d1

2. Double Klik di nama worksheet lalu ganti nama yg asalnya Sheet1 menjadi “PARTSDATA” (bisa diganti dengan nama lain). 
D2
3. Kemudian kita simpan file sebagai excel makro [Save As] > [Excel Macro Enabled Workbook] ketik nama file disini saya beri nama file “data barang”
d3
4. Langkah berikutnya membuat Macro untuk file tersebut, adapun langkah-langkah pembuatan macro sebagai berikut :
-Pada worksheet pilih menu [View] > [Macros] > [View Macros]
d4
-Isikan macro name “FORM” klik create
D5
-Klik kanan mouse pada VBA Project kemudian pilih [Insert] > [User Form]
D6
-Langkah selanjutnya adalah design form dengan Control yang akan kita gunakan adalah : Control Label, Textbox dan Command Button dan memberi nama dan caption untuk tiap label, textbox dan command button.
Label1 Caption diganti dengan “Kode”
Label2 Caption diganti dengan “Nama Barang”
Label3 Caption diganti dengan “Satuan”
Label4 Caption diganti dengan “Harga”
d7
TextBox1 Name diganti dengan “tkode”
TextBox2 Name diganti dengan “tnama”
TextBox3 Name diganti dengan “tsatuan”
TextBox4 Name diganti dengan “tharga”
d8
command button1 Caption diganti dengan “TAMBAH”
command button1 Name diganti dengan “CMDTMBH”
command button2 Caption diganti dengan “TUTUP”
command button2 Name diganti dengan “CMDTTP”
d9
-Langkah selanjutnya adalah membuat kode
1. Klik command button “TAMBAH “
2. Klik menu bar pilih view code
Atau klik kanan mouse pada tombol “TAMBAH” pilih view code
d10
3. Masukan kode dibawah ini (copy paste saja):
Private Sub CMDTMBH_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets(“PARTSDATA”)
‘menemukan baris kosong pada database
iRow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row
‘check untuk sebuah kode
If Trim(Me.tkode.Value) = “” Then
Me.tkode.SetFocus
MsgBox “Masukan Kode Barang”
Exit Sub
End If
‘copy data ke database
ws.Cells(iRow, 1).Value = Me.tkode.Value
ws.Cells(iRow, 2).Value = Me.tnama.Value
ws.Cells(iRow, 3).Value = Me.tsatuan.Value
ws.Cells(iRow, 4).Value = Me.tharga.Value
‘clear data
Me.tkode.Value = “”
Me.tnama.Value = “”
Me.tsatuan.Value = “”
Me.tharga.Value = “”
Me.tkode.SetFocus
End Sub
4. Dilanjutkan dengan pengisian code pada tombol tutup langkah seperti nomor 2 diatas dengan kode dibawah ini :
Private Sub CMDTTP_Click()
Unload Me
End Sub
5. Untuk menghindari menutup melalui tanda X pada form masukan kode dibawah ini dengan klik kanan mouse pada form dan pilih view code dan ketikan kode dibawah ini :
Private Sub UserForm_QueryClose(Cancel As Integer, _
CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
Cancel = True
MsgBox “MAKE TOMBOL ATUH KANG!”
End If
End Sub
6. Mengisi code pada module klik kanan module pilih view code dan isikan kode dibawah ini :
Sub FORM()
UserForm1.Show
End Sub
Nah jika kalian berhasil maka form isian data tersebut dapat kita gunakan, jika masih kurang atau belum berhasil, mohon perhatikan bagian koding atau cermati langkah demi langkahnyaa.
Selamat Mencobaaaaa:)

Senin, 17 April 2017

Membuat Form Input Data Siswa Berbasis Ms. Excel


Nah pada kesempatan ini saya akan mencoba membahas cara membuat Form input data siswa pada Excel VBA sederhana yang dilengkapi dengan koding sehingga lebih mudah untuk dipahami.
Pada form input data Excel VBA yang akan kita buat ini nantinya data-data kita setting supaya nanti otomatis masuk kedalam sheet Excel yang bisa kita tentukan.

STEP 1
Buat sebuah dokumen baru kemudian aktifkan VBA editor dengan menekan kombinasi keyboard ALT+F11 kemudian cari menu [Insert] > [UserForm]


c1.png
STEP 2
Untuk langkah kedua setelah menyisipkan sebuah form baru maka kita edit ukuran form nya sesuai dengan kebutuhan kemudian buat sebuah label dengan menggunakan Toolbox dan letakkan pada Form kemudian ganti Caption sesuai data yang akan dibuat.


c2
STEP 3
Untuk langkah ke-3 Anda harus membuat beberapa TextBox sebagai syarat untuk pengisian data. Bagi yang belum tahu cara membuat textbox caranya adalah klik TextBox pada Toolbox kemudan drag ke UserForm misalnya untuk membuat textbox nis seperti berikut jangan lupa ganti properties Name menjadi “TXTNis” untuk mendefinisikan supaya tidak lupa dalam membuat kode program VBA nya.
Dari langkah ke-3 tersebut silakan  buat beberapa textbox Anda bisa juga menggunakan teknik copy paste. dan silakan ganti propertis name menjadi seperti berikut ini.
Textbox1 ganti dengan    TXTNis
Textbox2 ganti dengan    TXTNama
Textbox3 ganti dengan    TXTTempatLahir
Textbox4 ganti dengan    TXTTglLahir
Textbox5 ganti dengan    TXTALamat
Textbox6 ganti dengan    TXTNISN
Textbox7 ganti dengan    TXTHP
Textbox8 ganti dengan    TXTSKHUN
Textbox9 ganti dengan    TXTIjasah
Textbox10 ganti dengan    TXTNamaIbu
Textbox11 ganti dengan    TXTThnLahirIbu
Textbox12 ganti dengan    TXTPekIbu
Textbox13 ganti dengan    TXTNamaAyah
Textbox14 ganti dengan    TXTThnLahirAyah
Textbox15 ganti dengan    TXTPekAyah
Textbox16 ganti dengan    TXTPengAyah
Textbox17 ganti dengan    TXTAlamatOrtu
c3
Untuk ComboBox silakan buat dengan menggunakan Toolbox dan ganti properties name nya
ComboBox1 ganti dengan CBO CBOKelamin
ComboBox2 ganti dengan CBO CBOPendidikanIbu
ComboBox3 ganti dengan CBO CBOPendidikanAyah


c4.png
STEP 4
Untuk tahap ke-4 silakan buat 3 buah tombol dengan menggunakan CommandButton seperti diatas yang pertama tombol “Simpan” ke-2 tombol “Cari Data Siswa” dan yang ke-3 “Close” untuk masing-masing tombol silakan ganti properties name menjadi “TBLSimpan”, “TBLCariData”, CMDClose”
Untuk yang belum tahu cara membuat CommandButton caranya hampir sama dengan membuat texbox tetapi disini toolbox yang dipake adalah CommandButton. Jadi kalo untuk membuat tiga buah tombol maka kita harus membuat 3 buah CommandButton.
c5c6
STEP 5
Langkah berikutnya adalah langkah membuat script VBA. dan yang pertama silakan View Code kemudian tuliskan script berikut untuk membuat initial pada UserForm
Private Sub UserForm_Initialize()
With CBOKelamin
.AddItem “Laki-Laki”
.AddItem “Perempuan”
End With
With CBOPendidikanIbu
.AddItem “Tidak Sekolah”
.AddItem “SD”
.AddItem “SMP”
.AddItem “SMA”
.AddItem “D1”
.AddItem “D2”
.AddItem “D3”
.AddItem “S1”
.AddItem “S2”
.AddItem “S3”
End With
With CBOPendidikanAyah
.AddItem “Tidak Sekolah”
.AddItem “SD”
.AddItem “SMP”
.AddItem “SMA”
.AddItem “D1”
.AddItem “D2”
.AddItem “D3”
.AddItem “S1”
.AddItem “S2”
.AddItem “S3”
End With
End Sub
STEP 6
Tahap ke-6 kita akan membuat sebuah script VBA untuk simpan data siswa silakan ketikkan script VBA nya di bawah ini
Private Sub TBLSimpan_Click()
Dim iRow As Long
Dim Ws As Worksheet
Set Ws = Worksheets(“databasesiswa”)
‘menemukan baris kosong pada database siswa
iRow = Ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row
‘check untuk sebuah nis
If Trim(Me.TXTNis.Value) = “” Then
Me.TXTNis.SetFocus
MsgBox “Masukan NIS terlebih dahulu Kang..”
Exit Sub
End If
‘copy data ke database siswa
Ws.Cells(iRow, 1).Value = Range(“X1”).Value
Ws.Cells(iRow, 2).Value = Me.TXTNis.Value
Ws.Cells(iRow, 3).Value = Me.TXTNama.Value
Ws.Cells(iRow, 4).Value = Me.TXTTempatLahir.Value
Ws.Cells(iRow, 5).Value = Me.TXTTglLahir.Value
Ws.Cells(iRow, 6).Value = Me.CBOKelamin.Value
Ws.Cells(iRow, 7).Value = Me.TXTAlamat.Value
Ws.Cells(iRow, 8).Value = Me.TXTNISN.Value
Ws.Cells(iRow, 9).Value = Me.TXTHP.Value
Ws.Cells(iRow, 10).Value = Me.TXTSKHUN.Value
Ws.Cells(iRow, 11).Value = Me.TXTIjasah.Value
Ws.Cells(iRow, 12).Value = Me.TXTNamaIbu.Value
Ws.Cells(iRow, 13).Value = Me.TXTThnLahirIbu.Value
Ws.Cells(iRow, 14).Value = Me.TXTPekIbu.Value
Ws.Cells(iRow, 15).Value = Me.CBOPendidikanIbu.Value
Ws.Cells(iRow, 16).Value = Me.TXTNamaAyah.Value
Ws.Cells(iRow, 17).Value = Me.TXTThnAyah.Value
Ws.Cells(iRow, 18).Value = Me.TXTPekAyah.Value
Ws.Cells(iRow, 19).Value = Me.CBOPendidikanAyah.Value
Ws.Cells(iRow, 20).Value = Me.TXTPengAyah.Value
Ws.Cells(iRow, 21).Value = Me.TXTAlamat.Value
‘clear data siswa
Me.TXTNis.Value = “”
Me.TXTNama.Value = “”
Me.TXTTempatLahir.Value = “”
Me.TXTTglLahir.Value = “”
Me.CBOKelamin.Value = “”
Me.TXTAlamat.Value = “”
Me.TXTNISN.Value = “”
Me.TXTHP.Value = “”
Me.TXTSKHUN.Value = “”
Me.TXTIjasah.Value = “”
Me.TXTNamaIbu.Value = “”
Me.TXTThnLahirIbu.Value = “”
Me.TXTPekIbu.Value = “”
Me.CBOPendidikanIbu.Value = “”
Me.TXTNamaAyah.Value = “”
Me.TXTThnAyah.Value = “”
Me.TXTPekAyah.Value = “”
Me.CBOPendidikanAyah.Value = “”
Me.TXTPengAyah.Value = “”
Me.TXTAlamatOrtu.Value = “”
Me.TXTNis.SetFocus
‘Simpan data
Application.ActiveWorkbook.Save
End Sub
STEP 7
Membuat perintah CLOSE silakan ketikkan script nya dibawah ini dengan cara double klik tombol CLOSE
Private Sub CMDClose_Click()
Unload Me
End Sub
STEP 8
Membuat sebuah validasi data untuk textbox yang berisi data angka agar data yang diinput hanya berupa data angka buka huruf. Apabila data yang dimasukan pada textbox bukan berupa data angka maka secara otomatis akan menampilkan pesan error dan ini dia script nya
Private Sub HanyaAngka()
If TypeName(Me.ActiveControl) = “TextBox” Then
With Me.ActiveControl
If Not IsNumeric(.Value) And .Value <> vbNullString Then
MsgBox “Maaf, Masukan data angka saja”
.Value = vbNullString
End If
End With
End If
End Sub
STEP 9
Tahap 9 Anda bisa menggunakan variasi apabila ketika textbox aktif atau dipilih maka warna akan berubah. Ini dia script nya. Script ini juga akan menghasilkan perintah error yang merupakan pemanggilan prosedur dari tahap 9 diatas.
Private Sub TXTNISN_Change()
HanyaAngka
End Sub
Private Sub TXTHP_Change()
HanyaAngka
End Sub
Private Sub txtnis_Enter()
TXTNis.BackColor = &H80000005
End Sub
Private Sub txtnis_Exit(ByVal Cancel As MSForms.ReturnBoolean)
HanyaAngka
TXTNis.BackColor = &HE0E0E0
End Sub
Private Sub txtnama_enter()
TXTNama.BackColor = &H80000005
End Sub
Private Sub txtnama_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTNama.BackColor = &HE0E0E0
End Sub
Private Sub txttempatlahir_enter()
TXTTempatLahir.BackColor = &H80000005
End Sub
Private Sub txttempatlahir_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTTempatLahir.BackColor = &HE0E0E0
End Sub
Private Sub txttgllahir_enter()
TXTTglLahir.BackColor = &H80000005
End Sub
Private Sub txttgllahir_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTTglLahir.BackColor = &HE0E0E0
End Sub
Private Sub txtalamat_Enter()
TXTAlamat.BackColor = &H80000005
End Sub
Private Sub txtalamat_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTAlamat.BackColor = &HE0E0E0
End Sub
Private Sub cbokelamin_Enter()
CBOKelamin.BackColor = &H80000005
End Sub
Private Sub cbokelamin_Exit(ByVal Cancel As MSForms.ReturnBoolean)
CBOKelamin.BackColor = &HE0E0E0
End Sub
Private Sub txtnisn_Enter()
TXTNISN.BackColor = &H80000005
End Sub
Private Sub txtnisn_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTNISN.BackColor = &HE0E0E0
End Sub
Private Sub txthp_Enter()
TXTHP.BackColor = &H80000005
End Sub
Private Sub txthp_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTHP.BackColor = &HE0E0E0
End Sub
Private Sub txtskhun_Enter()
TXTSKHUN.BackColor = &H80000005
End Sub
Private Sub txtskhun_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTSKHUN.BackColor = &HE0E0E0
End Sub
Private Sub txtijasah_Enter()
TXTIjasah.BackColor = &H80000005
End Sub
Private Sub txtijasah_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTIjasah.BackColor = &HE0E0E0
End Sub
Private Sub txtnamaibu_Enter()
TXTNamaIbu.BackColor = &H80000005
End Sub
Private Sub txtnamaibu_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTNamaIbu.BackColor = &HE0E0E0
End Sub
Private Sub txtthnlahiribu_Enter()
TXTThnLahirIbu.BackColor = &H80000005
End Sub
Private Sub txtthnlahiribu_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTThnLahirIbu.BackColor = &HE0E0E0
End Sub
Private Sub txtpekibu_Enter()
TXTPekIbu.BackColor = &H80000005
End Sub
Private Sub txtpekibu_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTPekIbu.BackColor = &HE0E0E0
End Sub
Private Sub cbopendidikanibu_Enter()
CBOPendidikanIbu.BackColor = &H80000005
End Sub
Private Sub cbopendidikanibu_Exit(ByVal Cancel As MSForms.ReturnBoolean)
CBOPendidikanIbu.BackColor = &HE0E0E0
End Sub
Private Sub txtnamaayah_Enter()
TXTNamaAyah.BackColor = &H80000005
End Sub
Private Sub txtnamaayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTNamaAyah.BackColor = &HE0E0E0
End Sub
Private Sub txtthnayah_Enter()
TXTThnAyah.BackColor = &H80000005
End Sub
Private Sub txtthnayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTThnAyah.BackColor = &HE0E0E0
End Sub
Private Sub txtpekayah_Enter()
TXTPekAyah.BackColor = &H80000005
End Sub
Private Sub txtpekayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTPekAyah.BackColor = &HE0E0E0
End Sub
Private Sub cbopendidikanayah_Enter()
CBOPendidikanAyah.BackColor = &H80000005
End Sub
Private Sub cbopendidikanayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)
CBOPendidikanAyah.BackColor = &HE0E0E0
End Sub
Private Sub txtpengayah_Enter()
TXTPengAyah.BackColor = &H80000005
End Sub
Private Sub txtpengayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTPengAyah.BackColor = &HE0E0E0
End Sub
Private Sub txtalamatortu_Enter()
TXTAlamatOrtu.BackColor = &H80000005
End Sub
Private Sub txtalamatortu_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTAlamatOrtu.BackColor = &HE0E0E0
End Sub


c8.png
TAHAP 10
Untuk tahap terakhir silakan buat sebuah Worksheet untuk menyimpan database yang telah disimpan apabila menekan tombol simpan data maka data siswa akan tersimpan pada sheet yang telah ditentukan misalnya saya ganti sheet untuk menyimpan database dengan nama “DatabaseSiswa”

c7.png
Selesai.
Alhamdulillah, tahapan membuat sebuah userform untuk input data siswa sudah berhasil dibuat dan untuk menjalankan nya silakan coba klik RUN
Selamat mencoba semoga berhasil.

C9

Isi form dengan lengkap

C10
Setelah disimpan akan muncul seperti ini.

C11
Semoga bermanfaat yaaaaaa:)
Designed By Blogger Templates