Membuat Aplikasi Buku Tabungan

Buku tabungan sangat diperlukan terutama di sekolah-sekolah masih banyak yang menggunakan buku tabungan secara manual, cape deh!!!.

Saya mencoba berbagi pengetahuan tentang tata cara membuat buku tabungan siswa di sekolah dengan menggunakan macro excel.

Tanpa basa-basi langsung saja kita buat buku tabungan siswa dengan mempersiapkan satu lembar kerja excel yang disimpan dengan format macro excel dengan nama file buku tabungan siswa.
Untuk membuat buku tabungan siswa persiapkan tiga buah sheet dan beri nama : anggota,Buku Tabungan,Temporaryarea.

Dimana sheet anggota adalah sheet untuk menyimpan nama setiap anggota yang menabung, sheet buku tabungan adalah sheet untuk menyimpan data transaksi anggota/siswa yang menabung, sementara sheet temporaryarea adalah sheet yang akan berganti isinya sesuai kebutuhan bisa untuk menampilkan rekap, ataupun transaksi peranggota.

Untuk sheet anggota buatlah sebuah data base untuk menyimpan data anggota yang menabung dengan mengisikan data pada range A1 dengan No, Range B1 dengan Kode Anggota, range C1 dengan Nama Anggota.

Pada Sheet Buku Tabungan kita isikan range A1 dengan NO range B1 kode Anggota, range C1 dengan Simpanan, range D1 dengan Penarikan.

Setelah beres merancang sheet buku tabungan kita tinggal menyiapkan dua buah userform, tentunya dengan membuka jendela visual basic dengan menekan tombol alt + F11 atau melalui menu developer klik visual basic.

Userform1 digunakan untuk membuat menu utama pada aplikasi buku tabungan ini, mulai dari menyiapkan tombol input, tombol edit dan tombol lihat buku tabungan.

Userform2 digunakan untuk membuat form input data, dengan memisahkan dua buah jenis input yaitu input anggota untuk menyimpan data anggota yang menabung pada sheet anggota, dan input transaksi untuk menyimpan data transaksi setiap anggota yang menabung.

Berikut adalah gambaran userform1 sebagai menu Utama pada Aplikasi Buku Tabungan ini.
membuat aplikasi buku tabungan
menu utama

Menu Utama terdiri dari empat tombol yaitu Tombol Input Anggota, Tombol Pencatatan Transaksi, Lihat Tabungan Anggota dan Lihat Rekap Tabungan.

Langkah selanjutnya adalah mempersiapkan userfom2 untuk membuat form input anggota, input Transaksi, Pencarian Anggota untuk Aplikasi Buku Tabungan ini pada userform2 saya memisahkannya dengan menggunakan frame pada toolbox, kita akan memberikan bayangan frame1 untuk Input Anggota pada userform2. Lihatlah ilustrasi gambar berikut!
membuat aplikasi buku tabungan
Input Anggota
Buatlah desaign userform2 dengan menggunakan frame seperti pada gambar diatas, itu merupakan Input data anggota pada aplikasi buku tabungan ini.aturlah pada propertiesnya frame1 visible harus false.

Langkah selanjutnya membuat frame yang kedua frame ini berfungsi untuk mencatat transaksi setiap anggota penabung yang akan menabung, dalam frame ini kita menyisipkan frame lagi guna untuk memisahkan antara kotak pencarian dan input data, berikut adalah gambaran desain input data transaksi pada aplikasi buku tabungan ini.
membuat aplikasi buku tabungan
Input Transaksi Tabungan
Dengan memanggil menu utama kita bisa memanggil antara frame1 dan frame2 secara bergantian dimana apabila di klik input anggota maka frame1(input anggota) akan muncul sementara frame2(input transaksi ) sembunyi. Hal tersebut bisa dilakukan dengan menyisipkan script pada menu utama.

Karena Input anggota pada menu utama di aplikasi buku tabungan ini merupakan commandbutton1 maka kita bisa menyisipkan kode berikut dengan cara mengklik Input Anggota pada userform1

Private Sub CommandButton1_Click()
UserForm2.Caption = "Input Anggota"
UserForm2.Frame1.Visible = True
UserForm2.Frame1.Left = 100
UserForm2.Frame1.Top = 50
UserForm2.Frame1.Height = 192
UserForm2.Frame1.Width = 276
UserForm2.Show
End Sub

Kode tersebut berarti kita menampilkan frame1 yang pada awalnya visiblenya false diubah menjadi true selain itu kita juga akan mengatur posisi frame 1, serta lebar dan tingginya frame1 itu.

Untuk menampilkan Input data transaksi pada buku tabungan maka kode yang digunakan adalah sebagai berikut:

Private Sub CommandButton2_Click()
UserForm2.Caption = "Input Transaksi"
UserForm2.Frame2.Visible = True
UserForm2.Frame2.Top = 48
UserForm2.Frame2.Left = 36
UserForm2.Frame2.Width = 414
UserForm2.Frame2.Height = 282
UserForm2.Show
End Sub

Sekarang saya coba memasukan script atau perintah pada masing-masing form pada aplikasi buku tabungan itu. untuk daftar anggota kita pasangkan script di bawah ini pada tombol simpan

Private Sub CommandButton1_Click()
'data validasi apabila textbox kosong ketika di klik simpan akan menolak input data
If TextBox1.Value = "" Then
MsgBox "Isi dulu data"
Exit Sub
End If
'untuk mengaktipkan sheet input data
Sheet1.Activate
'mendeskripsikan banyaknya data yang terinput
Dim isi As Long
isi = WorksheetFunction.CountA(Range("A:A")) + 1
Cells(isi, 1).Value = WorksheetFunction.Count(Range("A:A")) + 1
Cells(isi, 2).FormulaR1C1 = "=""A.""&text(rc[-1],""00#"")"
Cells(isi, 3).Value = TextBox1.Value
MsgBox "input berhasil"
TextBox1.Value = ""

End Sub

 Sementara untuk transaksi simpanan ataupun penarikan saya membuat kolom pencarian sehingga scriptnya cukup panjang adalah sebagai berikut
'ini merupkan tombol  pencarian pada saat kita menginputkan nama yang akan di cari pada kolom nama maka akan ditampilkan nama pada listbox, sehingga untuk menginput transaksinya kita tinggal mengkliknya salah satu nama yang ditampilkan pada listbox.
Private Sub TextBox2_Change()
Sheet2.Activate
Range("m2").Value = "*" & TextBox2.Value & "*"
Range("l6").CurrentRegion.Clear
Sheet1.Range("a1").CurrentRegion.Name = "Anggota"
Range("Anggota").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
        "l1:m2"), CopyToRange:=Range("L6"), Unique:=False
Range("l6").CurrentRegion.Name = "tampil"
ListBox1.RowSource = "tampil"
ListBox1.ColumnCount = 3
ListBox1.ColumnWidths = 0 & ";" & 0 & ";" & 40

End Sub

'kita membuat kode apabila listbox tidak di klik maka akan ada pesan bahwa harus mengklik, maka sebelumnya harus memasang dahulu kode berikut

Private Sub ListBox1_Click()
Label7.Caption = ListBox1.Column(1)
'menghitung saldo pada saat anggota dipilih
Label6.Caption = WorksheetFunction.SumIfs(Sheet2.Range("D:D"), Sheet2.Range("C:C"), ListBox1.Column(1)) - WorksheetFunction.SumIfs(Sheet2.Range("E:E"), Sheet2.Range("C:C"), ListBox1.Column(1))
End Sub

 Selanjutnya memasangkan kalendar untuk mengisi tanggal pada textbox tanggal pada aplikasi buku tabungan, textbox tanggal ini sengaja di lock agar tanggal tidak diinputkan secara manual, kebanyakan input tanggal manual suka salah, sehingga menggunakan fasilitas bantuan control calendar.

Private Sub TextBox6_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Calendar1.Visible = True
Calendar1.Left = 6
Calendar1.Top = 54
Calendar1.Width = 192
Calendar1.Height = 120
End Sub

Selanjutnya pasang script berikut pada tombol simpan
Private Sub CommandButton3_Click()
'script validasi apabila data belum lengkap
If Label7.Caption = "" Or Label7.Caption = "Kode Anggota" Then
MsgBox "pilih dulu anggota"
Exit Sub
End If
If TextBox3.Value = "" Or TextBox4.Value = "" Or TextBox6.Value = "" Then
MsgBox "data belum lengkap"
Exit Sub
End If
'script validasi apabila data yang diinput bukan nomor
If Not IsNumeric(TextBox3.Value) Then
MsgBox "data simpanan harus angka"
Exit Sub
End If
If Not IsNumeric(TextBox4.Value) Then
MsgBox "data penarikan harus angka"
Exit Sub
End If
'script validasi apabila ada anggota melakukan penarikan dan melebihi simpanan
If CDbl(Label6.Caption) + CDbl(TextBox3.Value) - CDbl(TextBox4.Value) < 0 Then

MsgBox "Penarikan Lebih"
Exit Sub
End If
'script input data
Sheet2.Activate
Dim isi As Long
isi = WorksheetFunction.CountA(Range("A:A")) + 1
Cells(isi, 1).Value = WorksheetFunction.Count(Range("A:A")) + 1
Cells(isi, 2).Value = Calendar1.Value
Cells(isi, 3).Value = ListBox1.Column(1)
Cells(isi, 4).Value = TextBox3.Value
Cells(isi, 5).Value = TextBox4.Value
MsgBox "Input berhasil"
TextBox3.Value = ""
TextBox4.Value = ""
ListBox1.Value = ""
TextBox2 = ""
Label6.Caption = ""
Label7.Caption = ""
End Sub
 Selanjutnya kita akan membuat Skrip untuk melihat buku tabungan saya mencoba membagi ke dalam dua bagian yaitu dilihat secara detail per anggota berdasarkan transaksi buku tabungan dan rekap data setiap anggota.

Script berkut untuk menampilkan kotak pencarian anggota sebelum menampilkan detail transaksinya

Private Sub CommandButton3_Click()
UserForm2.Caption = "Cari Anggota"
UserForm2.Frame4.Visible = True
UserForm2.Frame4.Top = 48
UserForm2.Frame4.Left = 36
UserForm2.Frame4.Width = 414
UserForm2.Frame4.Height = 282
UserForm2.Show

End Sub

Pada frame di atas selain dibuatkan kotak pencarian juga dibuat tombol lihat guna menampilkan data detai setiap anggota yang menabung

saya coba tuliskan scriptnya
'ini adalah script pencarian pada perubahan input data pada textbox5
Private Sub TextBox5_Change()
Sheet2.Activate
Sheet2.Range("m2").Value = "*" & TextBox5.Value & "*"
Sheet2.Range("l6").CurrentRegion.Clear
Sheet1.Range("a1").CurrentRegion.Name = "Anggota"
Range("Anggota").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheet2.Range( _
        "l1:m2"), CopyToRange:=Range("L6"), Unique:=False
Sheet2.Range("l6").CurrentRegion.Name = "tampil"
ListBox2.RowSource = "tampil"
ListBox2.ColumnCount = 3
ListBox2.ColumnWidths = 0 & ";" & 0 & ";" & 40

End Sub

"berikutnya script apabila data listbox di klik
Private Sub ListBox2_Click()
Label9.Caption = ListBox2.Column(1)
End Sub

selanjutnya tulislah script berikut pada tombol lihat
Private Sub CommandButton4_Click()
If Label9.Caption = "" Or Label9.Caption = "Kode Anggota" Then
MsgBox "tentukan anggotanya"
Exit Sub
End If
Sheet3.Cells.Clear
Sheet2.Range("A1").CurrentRegion.AutoFilter field:=3, Criteria1:=ListBox2.Column(1)
Sheet2.Range("a1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
Sheet3.Activate
Range("a5").PasteSpecial Paste:=xlPasteValues
Range("a1").Value = "BUKU TABUNGAN"
Range("a3").Value = "NAMA "
Range("C3").Value = ":"
Range("D3").Value = ListBox2.Column(2)
Range("f5").Value = "Saldo"
Dim isi As Long
isi = WorksheetFunction.CountA(Range("A:A")) + 2
Range("f6").FormulaR1C1 = "=rc[-2]-rc[-1]"
Range(Cells(7, 6), Cells(isi, 6)).FormulaR1C1 = "=r[-1]c+rc[-2]-rc[-1]"
Range(Cells(6, 1), Cells(isi, 1)).Resize(, 1).Formula = "=row(1:1)"
Range("a1:f1").Merge
Range("A1:f1").HorizontalAlignment = xlCenter
Range(Cells(5, 1), Cells(isi, 6)).Borders.LineStyle = xlContinuous

Sheet2.Select
Selection.AutoFilter
Sheet3.Activate
Unload Me

End Sub
yang terakhir scrip untuk menampilkan rekap tabungan semua anggota yang diletakan pada tombol lihat rekap tabungan pada userform1/menu utama.

Private Sub CommandButton4_Click()
Sheet3.Activate
Sheet3.Cells.Clear
Range("A1").Value = "Rekap Tabungan"
Sheet1.Range("A1").CurrentRegion.Copy
Range("a5").PasteSpecial Paste:=xlPasteValues
Range("d5").Value = "Simpanan"
Range("e5").Value = "Penarikan"
Range("f5").Value = "Saldo"
Dim isi As Long
isi = WorksheetFunction.CountA(Range("A:A")) + 3
Range(Cells(6, 4), Cells(isi, 4)).FormulaR1C1 = "=sumifs('Buku Tabungan'!C4:c4,'Buku Tabungan'!C3:c3,rc2)"
Range(Cells(6, 5), Cells(isi, 5)).FormulaR1C1 = "=sumifs('Buku Tabungan'!C5:c5,'Buku Tabungan'!C3:c3,rc2)"
Range(Cells(6, 6), Cells(isi, 6)).FormulaR1C1 = "=rc[-2]-rc[-1]"
Range(Cells(5, 1), Cells(isi, 6)).Borders.LineStyle = xlContinuous
Range("A1:F1").Merge
Range("A1:F1").HorizontalAlignment = xlCenter
Unload Me
End Sub

Nah itulah cara membuat buku tabungan sengaja tidak diberikan contoh filenya kalo yang butuh bisa diemailkan saja, supaya bisa untuk mencobanya.