0% found this document useful (0 votes)
54 views9 pages

Coding Form Setoran

This document contains the code for a userform in Excel VBA. The userform contains controls and code to manage student payment/deposit data. It allows the user to search for a student by ID, add new deposit records, update or delete existing records, and view/filter the deposit transaction data in a table. The code handles data validation, updating the student balance when records are modified, and refreshing the form controls when the underlying data is changed.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views9 pages

Coding Form Setoran

This document contains the code for a userform in Excel VBA. The userform contains controls and code to manage student payment/deposit data. It allows the user to search for a student by ID, add new deposit records, update or delete existing records, and view/filter the deposit transaction data in a table. The code handles data validation, updating the student balance when records are modified, and refreshing the form controls when the underlying data is changed.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

CODING FORM SETORAN

Option Explicit

Private Sub CBNISN_Change()

On Error GoTo EXCELVBA

Dim CariSiswa As Object

Set CariSiswa = Sheet2.Range("B5:B10000").Find(What:=Me.CBNISN.Value, LookIn:=xlValues)

Me.TXTNAMASISWA.Value = CariSiswa.Offset(0, 1).Value

Me.TXTKELAS.Value = CariSiswa.Offset(0, 3).Value

Me.TXTSALDO.Value = CariSiswa.Offset(0, 7).Value

Exit Sub

EXCELVBA:

Call MsgBox("Maaf, Id barang belum terdaftar", vbInformation, "Data Barang")

End Sub

Private Sub CMDADD_Click()

Dim DataSetoran, UpdateSetoran As Object

Set DataSetoran = Sheet4.Range("B900000").End(xlUp)

Set UpdateSetoran = Sheet2.Range("B5:B900000").Find(What:=Me.CBNISN.Value, LookIn:=xlValues)

If Me.TXTIDTRANSAKSI.Value = "" _

Or Me.TXTTANGGAL.Value = "" _

Or Me.CBNISN.Value = "" _

Or Me.TXTSETORAN.Value = "" Then

Call MsgBox("Harap isi data setoran dengan lengkap", vbInformation, "Setoran")

Else

DataSetoran.Offset(1, -1).Value = "=ROW()-ROW(SETORAN!$A$4)"

DataSetoran.Offset(1, 0).Value = Me.TXTIDTRANSAKSI.Value


DataSetoran.Offset(1, 1).Value = Format(Me.TXTTANGGAL.Value, "mm/dd/yyyy")

DataSetoran.Offset(1, 2).Value = Me.CBNISN.Value

DataSetoran.Offset(1, 3).Value = Me.TXTNAMASISWA.Value

DataSetoran.Offset(1, 4).Value = Me.TXTKELAS.Value

DataSetoran.Offset(1, 5).Value = Me.TXTSETORAN.Value

UpdateSetoran.Offset(0, 7).Value = Me.TOTALSALDO.Value

Call MsgBox("data setoran berhasil disimpan", vbInformation, "Setoran")

Me.TXTIDTRANSAKSI.Value = ""

Me.TXTTANGGAL.Value = ""

Me.CBNISN.Value = ""

Me.TXTNAMASISWA.Value = ""

Me.TXTKELAS.Value = ""

Me.TXTSETORAN.Value = ""

Me.TXTSALDO.Value = ""

Me.TOTALSALDO.Value = ""

Call AmbilData

End If

End Sub

Private Sub CMDBARU_Click()

Dim X As Long

X = Sheet4.Range("I3").Value + 1

Sheet4.Range("I3").Value = X

If Sheet4.Range("I2").Value = 1 Then

Me.TXTIDTRANSAKSI.Value = "ST-100000" & X

End If

If Sheet4.Range("I2").Value = 2 Then

Me.TXTIDTRANSAKSI.Value = "ST-10000" & X

End If

If Sheet4.Range("I2").Value = 3 Then
Me.TXTIDTRANSAKSI.Value = "ST-1000" & X

End If

If Sheet4.Range("I2").Value = 4 Then

Me.TXTIDTRANSAKSI.Value = "ST-100" & X

End If

If Sheet4.Range("I2").Value = 5 Then

Me.TXTIDTRANSAKSI.Value = "ST-10" & X

End If

Me.TXTIDTRANSAKSI.Enabled = False

End Sub

Private Sub CMDCARI_Click()

On Error GoTo Salah

Dim iRow As Long

Dim JData As Long

Dim CARI_DATA As Object

Set CARI_DATA = Sheet4

Sheet3.Range("I4").Value = Me.CBKRITERIA.Value

Sheet3.Range("I5").Value = "*" & Me.TXTCARI.Value & "*"

CARI_DATA.Range("A4").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _

Sheet3.Range("I4:I5"), CopyToRange:=Sheet3.Range("A4:G4"), Unique:=False

iRow = Sheet3.Range("A" & Rows.Count).End(xlUp).Row

If Application.WorksheetFunction.CountA(Sheet3.Range("A5:A60000")) = 0 Then

Me.TABELDATA.RowSource = ""

Call MsgBox("Data tidak ditemukan", vbInformation, "Cari Data")

Else

Me.TABELDATA.RowSource = "CARISETORAN!A5:g" & iRow

End If
Me.TXTJUMLAH.Value = Me.TABELDATA.ListCount

Exit Sub

Salah:

Call MsgBox("Maaf Data tidak ditemukan", vbInformation, "Cari Data")

End Sub

Private Sub CMDDELETE_Click()

Application.ScreenUpdating = False

Dim UpdateSaldo As Object

Set UpdateSaldo = Sheet2.Range("B4:B10000").Find(What:=Me.CBNISN.Value, LookIn:=xlValues)

If Me.TXTIDTRANSAKSI.Value = "" Then

Call MsgBox("Pilih data pada tabel data", vbInformation, "Hapus Data")

Else

'Membuat pesan konfirmasi hapus data

Select Case MsgBox("Anda akan menghapus data" _

& vbCrLf & "Apakah anda yakin?" _

, vbYesNo Or vbQuestion Or vbDefaultButton1, "Hapus data")

Case vbNo

Exit Sub

Case vbYes

End Select

Sheet4.Select

UpdateSaldo.Offset(0, 7).Value = UpdateSaldo.Offset(0, 7).Value - Me.TXTSETOR.Value

Selection.EntireRow.Delete

Call MsgBox("Data berhasil dihapus", vbInformation, "Hapus Data")


Me.TXTIDTRANSAKSI.Value = ""

Me.TXTTANGGAL.Value = ""

Me.CBNISN.Value = ""

Me.TXTNAMASISWA.Value = ""

Me.TXTKELAS.Value = ""

Me.TXTSETORAN.Value = ""

Me.TXTSALDO.Value = ""

Me.TOTALSALDO.Value = ""

Call AmbilData

Sheet1.Select

End If

End Sub

Private Sub CMDRESET_Click()

Me.TXTIDTRANSAKSI.Value = ""

Me.TXTTANGGAL.Value = ""

Me.CBNISN.Value = ""

Me.TXTNAMASISWA.Value = ""

Me.TXTKELAS.Value = ""

Me.TXTSETORAN.Value = ""

Me.TXTSALDO.Value = ""

Me.TOTALSALDO.Value = ""

Me.TXTSETOR.Value = ""

Me.CBKRITERIA.Value = ""

Me.TXTCARI.Value = ""

Me.CMDADD.Enabled = True

Me.CMDBARU.Enabled = True

Call AmbilData

End Sub
Private Sub CMDUPDATE_Click()

Application.ScreenUpdating = False

'Perintah membuat Sumber data yang diubah

Dim UBAHDATA As Object

Dim UpdateSaldo As Object

Set UBAHDATA = Sheet4.Range("B5:B10000").Find(What:=Me.TXTIDTRANSAKSI.Value,


LookIn:=xlValues)

Set UpdateSaldo = Sheet2.Range("B5:B10000").Find(What:=Me.CBNISN.Value, LookIn:=xlValues)

'Perintah mengecek apakah ada data yang diubah

If Me.TXTIDTRANSAKSI.Value = "" Then

Call MsgBox("Untuk mengubah Data, Pilih data terlebih dahulu", vbInformation, "Ubah Data")

Else

'Perintah mengubah data dari kolom pertama

UBAHDATA.Offset(0, 1).Value = Format(Me.TXTTANGGAL.Value, "MM/dd/yyyy")

UBAHDATA.Offset(0, 5).Value = Me.TXTSETORAN.Value

UpdateSaldo.Offset(0, 7).Value = Me.TOTALSALDO.Value

'Perintah memunculkan pesan bahwa data berhasil diubah

Call MsgBox("Data berhasil diubah", vbInformation, "Ubah Data")

'Perintah membersihkan textbox

Me.TXTIDTRANSAKSI.Value = ""

Me.TXTTANGGAL.Value = ""

Me.CBNISN.Value = ""

Me.TXTNAMASISWA.Value = ""

Me.TXTKELAS.Value = ""

Me.TXTSETORAN.Value = ""

Me.TXTSALDO.Value = ""
Me.TOTALSALDO.Value = ""

Call AmbilData

Sheet1.Select

End If

End Sub

Private Sub TABELDATA_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

On Error GoTo EXCELVBA

Dim SUMBERUBAH, CELLAKTIF As String

Application.ScreenUpdating = False

Me.TXTIDTRANSAKSI.Value = Me.TABELDATA.Column(1)

Me.TXTTANGGAL.Value = Format(Me.TABELDATA.Column(2), "DD/MM/YYYY")

Me.CBNISN.Value = Me.TABELDATA.Column(3)

Me.TXTNAMASISWA.Value = Me.TABELDATA.Column(4)

Me.TXTKELAS.Value = Me.TABELDATA.Column(5)

Me.TXTSETORAN.Value = Me.TABELDATA.Column(6)

Me.TOTALSALDO.Value = Me.TXTSALDO.Value

Me.TXTSETOR.Value = Me.TXTSETORAN.Value

Sheet4.Select

SUMBERUBAH = Sheets("SETORAN").Cells(Rows.Count, "B").End(xlUp).Row

Sheets("SETORAN").Range("B5:B" & SUMBERUBAH).Find(What:=Me.TXTIDTRANSAKSI.Value,


LookIn:=xlValues, LookAt:=xlWhole).Activate

CELLAKTIF = ActiveCell.Row

Sheets("SETORAN").Range("A" & CELLAKTIF & ":I" & CELLAKTIF).Select

Sheet1.Select

Me.CMDADD.Enabled = False

Me.CMDBARU.Enabled = False
Exit Sub

EXCELVBA:

Call MsgBox("Klik 2x pada tabel data", vbInformation, "Pilih Data")

End Sub

Private Sub TXTSETORAN_Change()

On Error Resume Next

Me.TOTALSALDO.Value = Val(Me.TXTSALDO.Value) - Val(Me.TXTSETOR.Value) +


Val(Me.TXTSETORAN.Value)

End Sub

Private Sub AmbilNISN()

Dim TData As Long

Dim iRow As Long

Sheet2.Select

iRow = Sheet2.Range("A" & Rows.Count).End(xlUp).Row

TData = Application.WorksheetFunction.CountA(Sheet2.Range("B5:B10000"))

If TData = 0 Then

Me.CBNISN.RowSource = ""

Else

Me.CBNISN.RowSource = "DATASISWA!B5:C" & iRow

End If

End Sub

Private Sub AmbilData()

Application.ScreenUpdating = False

Dim TData As Long

Dim iRow As Long

Sheet4.Select

iRow = Sheet4.Range("A" & Rows.Count).End(xlUp).Row

TData = Application.WorksheetFunction.CountA(Sheet4.Range("B5:B10000"))

If TData = 0 Then
Me.TABELDATA.RowSource = ""

Else

Me.TABELDATA.RowSource = "SETORAN!A5:G" & iRow

Me.TXTJUMLAH.Value = Me.TABELDATA.ListCount

End If

Sheet1.Select

End Sub

Private Sub UserForm_Initialize()

Call AmbilNISN

Call AmbilData

With CBKRITERIA

.AddItem "Nama Siswa"

.AddItem "Kelas"

End With

End Sub

You might also like