Dalam mengerjakan tugas sehari-hari di sekolah, seringkali kita berhubungan dengan DATA. Akan lebih mudah bagi operator data jika data tersebut didesain secara simple. Secara umum, desain Data terdiri dari tiga bagian, yakni Input, Proses, Output.
Tulisan kali ini membahas tentang pembuatan Form Input yang sekaligus juga digunakan sebagai Form menampilkan output dari data yang sudah kita simpan sebelumnya. Form yang berfungsi ganda ini biasanya digunakan untuk: Rekap Absen, Formulir Pendaftaran Siswa, Pengisian Nilai, dan lain sebagainya.
Untuk contoh kita kali ini, disajikan Form pengisian Data Siswa per kelas.
Pada gambar di atas, form digunakan sebagai input data siswa per kelas. Jadi, jika ingin memasukkan data baru untuk kelas X-a, langsung kita tulis di tabel, kemudian setelah menekan tombol 'Simpan', maka data yang kita tulis disimpan di tabel penyimpanan.
Untuk mengisi data kelas yang lain, maka kita pilih kelasnya melalui Combo Box, kita tuliskan datanya lalu klik 'Simpan'.
Karena form tadi juga berfungsi sebagai Output, maka ketika kita pilih suatu kelas, maka tabel yang tampil di layar akan menampilkan data dari kelas tersebut sesuai yang sudah tersimpan.
Untuk membuat form yang bisa berfungsi ganda tersebut, setidaknya kita butuh 2 objek. Yakni objek untuk menyimpan data termasuk data baru, dan objek untuk menampilkan data yang sudah ada. Dalam contoh ini, untuk menyimpan data kita menggunakan Shape yang diberi Macro. Coding macro untuk menyimpan data di sheet yang sesuai adalah:
Sub Simpan()
Sebenarnya metode yang bisa dipakai untuk menampilkan atau menyimpan data tidak hanya menggunakan Copy-Paste sebagaimana coding di atas. Tapi bagi pemula dalam belajar VBA seperti saya, penggunakan metode Copas terasa lebih mudah dan sederhana.
Nah, file contoh Form yang berfungsi ganda bisa didownload di BoxNet pada sidebar atau di sini
Tulisan kali ini membahas tentang pembuatan Form Input yang sekaligus juga digunakan sebagai Form menampilkan output dari data yang sudah kita simpan sebelumnya. Form yang berfungsi ganda ini biasanya digunakan untuk: Rekap Absen, Formulir Pendaftaran Siswa, Pengisian Nilai, dan lain sebagainya.
Untuk contoh kita kali ini, disajikan Form pengisian Data Siswa per kelas.
Pada gambar di atas, form digunakan sebagai input data siswa per kelas. Jadi, jika ingin memasukkan data baru untuk kelas X-a, langsung kita tulis di tabel, kemudian setelah menekan tombol 'Simpan', maka data yang kita tulis disimpan di tabel penyimpanan.
Untuk mengisi data kelas yang lain, maka kita pilih kelasnya melalui Combo Box, kita tuliskan datanya lalu klik 'Simpan'.
Karena form tadi juga berfungsi sebagai Output, maka ketika kita pilih suatu kelas, maka tabel yang tampil di layar akan menampilkan data dari kelas tersebut sesuai yang sudah tersimpan.
Untuk membuat form yang bisa berfungsi ganda tersebut, setidaknya kita butuh 2 objek. Yakni objek untuk menyimpan data termasuk data baru, dan objek untuk menampilkan data yang sudah ada. Dalam contoh ini, untuk menyimpan data kita menggunakan Shape yang diberi Macro. Coding macro untuk menyimpan data di sheet yang sesuai adalah:
Sub Simpan()
Dim Kls As String
Dim Jml As Single
NoKls = Range("D5").Value
Kls = Choose(NoKls, "a", "b", "c", "d")
Jml = 7 + Application.WorksheetFunction.CountA("c7:c1000")
Application.ScreenUpdating = False
Range("B7:E" & Jml).Copy
Sheets("X-" & Kls).Range("A4").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Call ShowNilai
End Sub
Metode yang digunakan macro di atas adalah mengkopi data di tabel ke sheet yang sesuai. (Untuk tiap kelas kita buat Sheet khusus sesuai dengan nama kelas).
Sedangkan kode Macro untuk menampilkan data siswa sesuai dengan kelas yang dipilih adalah:
Sub ShowNilai()
NoKls = Range("D5").ValueMetode yang digunakan adalah kebalikan dari yang pertama, yakni mengkopi data di sheet yang sesuai, kemudian mem-paste-kan di form.
Kls = Choose(NoKls, "a", "b", "c", "d")
Application.ScreenUpdating = False
Sheets("X-" & Kls).Range("A4:D1000").Copy
Range("Form!B7").PasteSpecial xlPasteValues
Application.CutCopyMode = False
ThisWorkbook.Save
Application.ScreenUpdating = True
Range("B7").Select
End Sub
Sebenarnya metode yang bisa dipakai untuk menampilkan atau menyimpan data tidak hanya menggunakan Copy-Paste sebagaimana coding di atas. Tapi bagi pemula dalam belajar VBA seperti saya, penggunakan metode Copas terasa lebih mudah dan sederhana.
Nah, file contoh Form yang berfungsi ganda bisa didownload di BoxNet pada sidebar atau di sini
12 komentar:
mas, mohon pencerahan dari permasalahan saya ini...
misal pada cell C4 saya isi 60% maka pada cell D4 otomatis terisi 40%,
begitu juga sebaliknya, apa bila pada cell D4 saya isi 80% maka pada cell C4
otomatis terisi 20%, dan jika salah satu cell tersebut saya isi 100% maka
cell yang satunya kosong (todak nol%). jadi pada intinya jumlah kedua cell tersebut selalu 100%.
apakah harus pakai macro atau gmana..??
terima kasih
Urusan seperti itu tidak bisa menggunakan rumus biasa. Menurut saya harus pake Makro dengan memanfaatkan Worksheet_Events.
Caranya:
0. Formatlah kedua cel tersebut dengan Custom Number Format 0%;;""
1. Klik kanan nama sheet. Klik View Code
2. Copy paste-kan kode berikut:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 4 Then
If Target.Column = 3 Then
Cells(4, 4).Value = Format(1 - Target.Value, "0%")
ElseIf Target.Column = 4 Then
Cells(4, 3).Value = Format(1 - Target.Value, "0%")
End If
End If
End Sub
4. Kembali ke Excel, dan dicoba hasilnya.
File contoh akan dikirim via email
Kalau cara menambah kelas nya gimana ???
KNAPA DATA YANG DI INPUT TIDAK BISA DI SIMPAN. MOHON BANTUANNYA
Sub Simpan()
Dim Kls As String
Dim Jml As Single
NoKls = Range("D5").Value
Kls = Choose(NoKls, "a", "b", "c", "d")
Jml = 7 + Application.WorksheetFunction.CountA("c7:c1000")
Application.ScreenUpdating = False
Range("B7:E" & Jml).Copy
Sheets("X-" & Kls).Range("A4").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Call ShowNilai
End Sub
ganti kode
Application.ScreenUpdating = False
Range("B7:E" & Jml).Copy
dengan
Application.ScreenUpdating = False
Range("B7:E7" & Jml).Copy
Mas Heru yang cakep mohon pencerahannya dari masalah saya ini...
1. bagaimana cara mengganti nama tiap kolom atau menambah nama kolom baru
2. bagaimana cara mengganti kode kelas menjadi kode perusahaan atau nama/kode cabang
3. bagaimana menghubungkan sheet baru bila ada penambahan cabang baru atau nama perusahaan yang baru
Terima Kasih
E-Mail : mtaqdir529@gmail.com
ssalamualaikum wr.wb ... apa kabar pak, saya mau tanya pak, saya membuat program input data dengan macro pada microsoft excel, untuk program input sukses yang tersimpan pada database microsoft excell. yang saya tanyakan, bagaimana agar data yang sudah di input dan tersimpan pada database excell dapat di panggil lagi dan di edit kembali pada form peng-inputan .. terimakasih pak ..
Luar biasa
Assalamualaikum bang heru
terima kasih tutorial form imput sekaaligus output ini sangat membantu saya dalam pembuatan raport, analisis dan rekap nilai k13 di sekolah saya tempat mengajar.
saya ini masih awwam dalam vba, oleh karena itu saya minta tolong buatkan form imput sekaligus output tetapi untuk tempat penyimpanan datanya hanya 1 sheet saja sehingga bisa menghemat tempat. mohon bantuannya...
###Achmad Hidayat##Bangkalan###ahidayat06@gmail.com###
Mas, kalau di delete combobox seperti yang mas heru buat itu,,bagaimana koding simpannya mas,.mohon bantuannya mas
Terima kasih ilmunya..
mau tanya dong, itu simpan nya hanya terbatas sampai A75:D75, bagaimana cara menambah range nya
Assalamualaikum
Mas gimana klo mau nambah kelasnya?
Posting Komentar