Anda di halaman 1dari 19

Input Data Di Excel dengan Macro

Quote
Macro & VBA, Hits: 38065, Comments: 12, Bookmarked: 0, Followers: 4
Status
Solved
Halo Master,

Seneng bisa ketemu website ini, yang mau mengajarkan tentang excel dan macro. Saya
harry dan kebetulan lagi ada kerjaan dari si boss.

Kasusnya gini mas, dalam file excel ada 2 sheet, form dan database, di bagian form ada
isian Nama dan Alamat, dan sebuah tombol Save. Ketika tombol Save itu di klik, data yg
diinput masuk kedalam sheet database di kolom A dan B, dan bisa disimpan permanen.
Jadi ketika input data baru di sheet Form, data yang lama di sheet Database tetep ada.

Maap sebelumnya, saya sudah download yang di bagian project itu, tapi ketika file
ditutup dan dibuka kembali, datanya yg udah diinput hilang semua.

Mohon bantuan master, untuk kasus saya ini.

Terima kasih sebelumnya.

Best Regards

Harry
Last Modified: Tuesday, June 06, 2017

harrycrb
Wednesday, November 02, 2011
0% of 0 votes
Halo Mas Harry,

Sesuai pertanyaan, saya buat sebuah Workbook yang memiliki 2 sheet: Form dan Database.

Pada Form, saya buat tempat inputan Nama pada cell A2, dan inputan Alamat pada cell B2. Dan sebuah ActiveX Control
Command Button.
Dan pada sheet Database, saya buat sebuah penyimpanan data dengan header seperti pada gambar:

Selanjutnya, pada Command Button, saya tulis baris program sebagai berikut:

Private Sub CommandButton1_Click()Application.ScreenUpdating = False'deklarasi variabel


Dim Nama, Alamat As String'Ambil data nama dan alamat dari sheet Form
Nama = Me.Cells(2, 1).Value
Alamat = Me.Cells(2, 2).Value

With Worksheets("Database")
'Cari tau baris terakhir yang kosong pada sheet Database
BarisTerakhir = Worksheets("Database").Cells(.Rows.Count, 1).End(xlUp).Row

'Simpan data dari sheet Form ke sheet Database


'pada baris terakhir yang kosong

.Cells(BarisTerakhir + 1, 1).Value = Nama


.Cells(BarisTerakhir + 1, 2).Value = Alamat
End With

'hapus data inputan pada sheet Form


Me.Range(Cells(2, 1), Cells(2, 2)).ClearContents

'simpan file
ActiveWorkbook.Save

Application.ScreenUpdating = TrueEnd Sub


MEMBUAT FORM ISIAN DATA SEDERHANA DI EXCEL
Terkadang kita merasa jenuh mengisi table di excel, untuk membuang kejenuhan mengisi data saya coba iseng iseng membuat form sederhana untuk
sekedar membuang kejenuhan…..
Selanjutnya anda bias mengembangkan sesuai dengan kebutuhan…….
Adapun langkah-langkah pembuatan form sebagai berikut :
1. Buka file excel 2007
2. Double Klik di nama worksheet lalu ganti nama yg asalnya Sheet1 menjadi “PARTSDATA” (ini mah klo saya, klo anda terserah tapi perlu diingat
namanya untuk pembuatan code)
3. Pada Row 1 kolom kita buat nama heading untuk tabelnya seperti tampak pada gambar dibawah ini :

4. Kemudian kita simpan file sebagai excel makro….klik file save as pilih Excel Macro Enabled Workbook….ketik nama file disini saya beri nama file
“data barang”

Langkah berikutnya membuat Macro untuk file tersebut, adapun langkah-langkah pembuatan macro sebagai berikut :
1. Pada worksheet pilih menu view klik tab Macros pilih view macros :

2. Isikan macro name : “FORM” klik create :


3. Klik kanan mouse pada VBA Project
4. Pilih insert
5. Pilih user form :

Langkah selanjutnya adalah design form dengan Control yang akan kita gunakan adalah : Control Label, Textbox dan Command Button seperti
tampak pada gambar berikut :
Langkah selanjutnya adalah member 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”

TextBox1 Name diganti dengan “tkode”


TextBox2 Name diganti dengan “tnama”
TextBox3 Name diganti dengan “tsatuan”
TextBox4 Name diganti dengan “tharga”

command button1 Caption diganti dengan “TAMBAH”


command button1 Name diganti dengan “CMDTMBH”
command button2 Caption diganti dengan “TUTUP”
command button2 Name diganti dengan “CMDTTP”

atur sedemikian rupa hingga tampak seperti gambar dibawah ini

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
3. Masukan kode dibawah ini (biar gak cape copy paste saja code dibawah ini):

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

Sekarang kita kembali ke worksheet kmudian kita akan membuat tombol untuk mengaktifkan form…terserah dmana saja menyimpannya…

Buat rectangle seperti digambar tersebut untuk memasukkan kode klik kanan mouse pada rectangle tersebut lalu pilih “Assign Macro” lalu pilih
form…..selesai sudah…jika benar sesuai urutan maka akan tampak seperti ini…..jangan lupa simpen ya….selamat mencoba….
Form Input Data Siswa Berbasis Excel Versi Update Maret 2015 dengan VBA
Yatna Supriyatna

Input data siswa yang masih menggunakan Excel sebagai pengolahan database siswa memang masih banyak sekali digunakan.
Aplikasi yang pernah saya buat tentang Aplikasi data dan Profil Siswa Berbasis Excel memang belum sempurna hanya sebatas
menggunakan rumus-rumus excel standar yang biasa dan sering digunakan sehari-hari.

Kali ini saya membuat sebuah Form Input Data Siswa Berbasis Excel Versi Update Maret 2015 dengan VBA yang seblumnya
masih menggunakan cara lama. Untuk melihat screeshoot silakan perhatikan gambar dibawah ini

Form input data siswa ini saya buat secara lengkap dari mulai NIS, NISN, Nama siswa, Tempat lahir, tanggal lahir, jenis kelamin,
alamat, No. HP, No, SKHUN, No. Ijasah, Nama Ibu kandung, tahun lahir ibu kandung, pekerjaan ibu, pendidikan ibu, nama
ayah, tahun lahir ayah, pekerjaan ayah, pendidikan ayah, penghasilan orang tua, alamat orang tua.
Field-fiel ini adalah sesuai dengan data di Aplikasi Dapodikmen untuk SMA. Form input data siswa ini juga dilengkapi dengan
tombol "SIMPAN" untuk menyimpan dokumen data siswa yang telah di entri ke dalam database.

Bagaimana cara membuat Form Input Data Siswa Berbasis Excel ini?
Untuk membuatnya cukup sederhana silakan buat sebuah form seperti tampilakn diatas. Untuk yang belum mengetahui caranya
silakan ikuti langkah berikut

STEP 1
Buat sebuah dokumen baru kemudian aktifkan VBA editor dengan menekan kombinasi keyboar ALT+F11 kemudian cari menu
Insert dan klik UserForm

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 menjadi NIS
STEP 3
Setelah label NIS terbuat silakan buat label berikutnya sesuai dengan Field diatas dan caranya sama dengan tahap 2 hingga
menjadi seperi tampilan berikut. Jangan lupa ganti properties Caption sesuai dengan fieldnya

STEP 4
Untuk langkah ke-4 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-4 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

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

Hasil akhir kira-kira seperti ini


STEP 5
Untuk tahap ke-5 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.

STEP 6
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 7
Tahap ke-7 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 8
Membuat perintah CLOSE silakan ketikkan script nya dibawah ini dengan cara double klik tombol CLOSE

Private Sub CMDClose_Click()


Unload Me
End Sub

STEP 9
Membuat sebuah validasi data untuk textbox yang berisi data angka agar data yang diinput hanya berupa data angka buka hurfu.
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 10
Tahap 10 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

TAHAP 11
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"

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

Anda mungkin juga menyukai