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

Coding Form Keluar

This document contains VBA code for an Excel form used for managing inventory transactions. The code includes subroutines for: 1. Looking up customer and product data based on selection in dropdowns and populating form fields. 2. Adding new transaction records to sheets upon clicking an "Add" button. 3. Generating transaction IDs sequentially upon clicking a "New" button. 4. Retrieving and clearing data from sheets upon various button clicks to refresh the form.

Uploaded by

Corleone Vito
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
114 views9 pages

Coding Form Keluar

This document contains VBA code for an Excel form used for managing inventory transactions. The code includes subroutines for: 1. Looking up customer and product data based on selection in dropdowns and populating form fields. 2. Adding new transaction records to sheets upon clicking an "Add" button. 3. Generating transaction IDs sequentially upon clicking a "New" button. 4. Retrieving and clearing data from sheets upon various button clicks to refresh the form.

Uploaded by

Corleone Vito
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 9

--------------------------------------------

COSING FORM KELUAR - EXCEL & VBA TUTORIAL


--------------------------------------------
Option Explicit

Private Sub CBCUSTOMER_Change()


On Error GoTo EXCELVBA
Dim CariCustomer As Object
Set CariCustomer = Sheet4.Range("C6:C100000").Find(What:=Me.CBCUSTOMER.Value,
LookIn:=xlValues)
Me.TXTALAMAT.Value = CariCustomer.Offset(0, 1).Value
Sheet9.Range("C8").Value = Me.CBCUSTOMER.Value
Sheet9.Range("C9").Value = CariCustomer.Offset(0, 1).Value
Sheet9.Range("C11").Value = CariCustomer.Offset(0, 2).Value
Sheet9.Range("C12").Value = CariCustomer.Offset(0, 3).Value

Exit Sub
EXCELVBA:
Call MsgBox("Maaf, data Customer tidak ditemukan", vbInformation, "Data Customer")

End Sub

Private Sub CBIDBARANG_Change()


On Error GoTo EXCELVBA
Dim CariBarang As Object
Set CariBarang = Sheet3.Range("B6:B100000").Find(What:=Me.CBIDBARANG.Value,
LookIn:=xlValues)
Me.TXTNAMABARANG.Value = CariBarang.Offset(0, 1).Value
Me.TXTSATUAN.Value = CariBarang.Offset(0, 2).Value
Me.TXTSTOK.Value = CariBarang.Offset(0, 3).Value
Me.TXTGUDANG.Value = CariBarang.Offset(0, 4).Value
Me.TXTHARGA.Value = CariBarang.Offset(0, 5).Value

Me.TXTSTOK.Enabled = False
Me.TXTSISA.Enabled = False

Exit Sub
EXCELVBA:
Call MsgBox("Maaf, Id barang belum terdaftar", vbInformation, "Data Barang")

End Sub

Private Sub CMDADD_Click()


Dim DBMASUK As Object
Dim UpdateStok As Object

Set DBMASUK = Sheet7.Range("A100000").End(xlUp)


Set UpdateStok = Sheet3.Range("B6:B10000").Find(What:=Me.CBIDBARANG.Value,
LookIn:=xlValues)

If Me.TXTIDTRANSAKSI.Value = "" _
Or Me.TXTTANGGAL.Value = "" _
Or Me.CBIDBARANG.Value = "" _
Or Me.TXTKELUAR.Value = "" Then
Call MsgBox("Isi data barang masuk dengan lengkap", vbInformation, "Barang Masuk")
Else
DBMASUK.Offset(1, 0).Value = "=ROW()-ROW(BARANGMASUK!$A$3)"
DBMASUK.Offset(1, 1).Value = Me.TXTIDTRANSAKSI.Value
DBMASUK.Offset(1, 2).Value = Format(Me.TXTTANGGAL.Value, "MM/DD/YYYY")
DBMASUK.Offset(1, 3).Value = Format(Me.TXTTANGGAL.Value, "MMMM")
DBMASUK.Offset(1, 4).Value = Format(Me.TXTTANGGAL.Value, "YYYY")
DBMASUK.Offset(1, 5).Value = Me.CBCUSTOMER.Value
DBMASUK.Offset(1, 6).Value = Me.TXTALAMAT.Value
DBMASUK.Offset(1, 7).Value = Me.CBIDBARANG.Value
DBMASUK.Offset(1, 8).Value = Me.TXTNAMABARANG.Value
DBMASUK.Offset(1, 9).Value = Me.TXTSATUAN.Value
DBMASUK.Offset(1, 10).Value = Me.TXTGUDANG.Value
DBMASUK.Offset(1, 11).Value = Me.TXTKELUAR.Value
DBMASUK.Offset(1, 12).Value = Me.TXTHARGA.Value
DBMASUK.Offset(1, 13).Value = Me.TXTTOTAL.Value

UpdateStok.Offset(0, 3).Value = Me.TXTSISA.Value


UpdateStok.Offset(0, 6).Value = Val(Me.TXTSISA.Value) * Val(Me.TXTHARGA.Value)
Call AmbilData
Call InputSurat
Call MsgBox("data barang masuk telah disimpan", vbInformation, "Barang Masuk")
Me.CBIDBARANG.Value = ""
Me.TXTNAMABARANG.Value = ""
Me.TXTSATUAN.Value = ""
Me.TXTSTOK.Value = ""
Me.TXTSISA.Value = ""
Me.TXTKELUAR.Value = ""
Me.TXTGUDANG.Value = ""
Me.TXTHARGA.Value = ""
Me.TXTTOTAL.Value = ""
Me.TXTKETERANGAN.Value = ""
End If
Me.CMDDATASURAT.Enabled = True
Me.CMDSURAT.Enabled = True
Me.CMDCLEAR.Enabled = True

End Sub
Private Sub InputSurat()
Dim DBMASUK As Object
Dim UpdateStok As Object

Set DBMASUK = Sheet9.Range("A100000").End(xlUp)

DBMASUK.Offset(1, 0).Value = "=ROW()-ROW(BARANGMASUK!$A$14)"


DBMASUK.Offset(1, 1).Value = Me.CBIDBARANG.Value
DBMASUK.Offset(1, 2).Value = Me.TXTNAMABARANG.Value
DBMASUK.Offset(1, 3).Value = Me.TXTSATUAN.Value
DBMASUK.Offset(1, 4).Value = Me.TXTKELUAR.Value
DBMASUK.Offset(1, 5).Value = Me.TXTKETERANGAN.Value
End Sub

Private Sub CMDBARU_Click()


Dim X As Long
X = Sheet7.Range("P3").Value + 1
Sheet7.Range("P3").Value = X
If Sheet7.Range("P2").Value = 1 Then
Me.TXTIDTRANSAKSI.Value = "BK-100000" & X
End If
If Sheet7.Range("P2").Value = 2 Then
Me.TXTIDTRANSAKSI.Value = "BK-10000" & X
End If
If Sheet7.Range("P2").Value = 3 Then
Me.TXTIDTRANSAKSI.Value = "BK-1000" & X
End If
If Sheet7.Range("P2").Value = 4 Then
Me.TXTIDTRANSAKSI.Value = "BK-100" & X
End If
If Sheet7.Range("P2").Value = 5 Then
Me.TXTIDTRANSAKSI.Value = "BK-10" & X
End If
Me.TXTIDTRANSAKSI.Enabled = False
Me.TXTTANGGAL.Value = Format(Date, "DD/MM/YYYY")
Call GetData
Me.CMDBARU.Enabled = False
Sheet9.Range("A15:F43").ClearContents
Sheet9.Range("F8:F12").ClearContents

End Sub

Private Sub GetData()


Dim TData As Long
Dim iRow As Long
iRow = Sheet3.Range("B" & Rows.Count).End(xlUp).Row
TData = Application.WorksheetFunction.CountA(Sheet2.Range("B6:B10000"))

If TData = 0 Then
Me.CBIDBARANG.RowSource = ""
Else
Me.CBIDBARANG.RowSource = "PRODUK!B6:C" & iRow
End If

End Sub
Private Sub AmbilData()
Dim TData As Long
Dim iRow As Long
iRow = Sheet7.Range("A" & Rows.Count).End(xlUp).Row
TData = Application.WorksheetFunction.CountA(Sheet7.Range("A4:A100000"))

If TData = 0 Then
Me.TABELDATA.RowSource = ""
Else
Me.TABELDATA.RowSource = "BARANGKELUAR!A4:N" & iRow
End If
Me.TXTTOTALBARANG.Value = Me.TABELDATA.ListCount

End Sub

Private Sub CMDCARI_Click()


On Error GoTo Salah
Dim iRow As Long
Dim CARI_DATA As Object
Set CARI_DATA = Sheet3
Sheet6.Range("L2").Value = ">=" & Me.TANGGALAWAL.Value
Sheet6.Range("M2").Value = "<=" & Me.TANGGALAKHIR.Value
Me.TABELDATA.Value = ""
CARI_DATA.Range("A5").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:= _
Sheet6.Range("L1:M2"), CopyToRange:=Sheet6.Range("A1:H1"), Unique:=False
iRow = Sheet6.Range("A" & Rows.Count).End(xlUp).Row
If iRow > 1 Then
Me.TABELDATA.RowSource = "CARIMASUK!A2:H" & iRow
Else
Call MsgBox("Data tidak ditemukan", vbInformation, "Cari Data")
End If
Me.TXTTOTALBARANG.Value = Me.TABELDATA.ListCount
Exit Sub
Salah:
Call MsgBox("Maaf Data tidak ditemukan", vbInformation, "Cari Data")
End Sub

Private Sub CMDCETAK_Click()


On Error GoTo Salah
Dim iRow, TotalData As Long
Dim CARI_DATA As Object
Set CARI_DATA = Sheet7
Sheet8.Range("P5").Value = Me.CBBULAN.Value
Sheet8.Range("Q5").Value = Me.CBTAHUN.Value
Me.TABELDATA.Value = ""
CARI_DATA.Range("A3").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:= _
Sheet8.Range("P4:Q5"), CopyToRange:=Sheet8.Range("A4:N4"), Unique:=False
iRow = Sheet8.Range("A" & Rows.Count).End(xlUp).Row
TotalData = Application.WorksheetFunction.CountA(Sheet8.Range("A5:A10000"))
If TotalData = 0 Then
Me.TABELDATA.RowSource = ""
Call MsgBox("Data tidak ditemukan", vbInformation, "Cari Data")
Else
Me.TABELDATA.RowSource = "CARIKELUAR!A5:M" & iRow
End If
Me.TXTTOTALBARANG.Value = Me.TABELDATA.ListCount

Select Case MsgBox("Anda akan mencetak laporan barang masuk" _


& vbCrLf & "Apakah anda yakin?" _
, vbYesNo Or vbQuestion Or vbDefaultButton1, "Cetak data")
Case vbNo
Exit Sub
Case vbYes
End Select
Unload Me
Sheet8.PrintPreview
Sheet1.Select

Exit Sub
Salah:
Call MsgBox("Maaf Data tidak ditemukan", vbInformation, "Cari Data")
End Sub

Private Sub CMDCLEAR_Click()


Sheet9.Range("A15:F43").ClearContents
Sheet9.Range("C8:C12").ClearContents
Sheet9.Range("F8:F12").ClearContents

End Sub

Private Sub CMDDATASURAT_Click()


Dim TData As Long
Dim iRow As Long
iRow = Sheet9.Range("A" & Rows.Count).End(xlUp).Row
TData = Application.WorksheetFunction.CountA(Sheet9.Range("A15:A42"))
Me.TABELDATA.ColumnCount = 6

If TData = 0 Then
Me.TABELDATA.RowSource = ""
Else
Me.TABELDATA.RowSource = "SURATJALAN!A15:F" & iRow
End If

End Sub
Private Sub CMDDELETE_Click()
On Error GoTo EXCELVBA
Application.ScreenUpdating = False
Dim UpdateStok As Object
Set UpdateStok = Sheet3.Range("B6:B10000").Find(What:=Me.TXTIDBARANG.Value,
LookIn:=xlValues)

Me.TABELDATA.Value = ""
If Me.TXTIDHAPUS.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
Sheet7.Select

Selection.EntireRow.Delete
UpdateStok.Offset(0, 3).Value = UpdateStok.Offset(0, 3).Value +
Val(Me.STOKHAPUS.Value)
UpdateStok.Offset(0, 6).Value = Val(UpdateStok.Offset(0, 3).Value) *
Val(UpdateStok.Offset(0, 5).Value)

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


Me.TXTIDTRANSAKSI.Value = ""
Me.TXTTANGGAL.Value = ""
Me.CBIDBARANG.Value = ""
Me.TXTNAMABARANG.Value = ""
Me.TXTSATUAN.Value = ""
Me.TXTSTOK.Value = ""
Me.TXTKELUAR.Value = ""
Me.TXTSISA.Value = ""
Me.TXTGUDANG.Value = ""
Me.TXTHARGA.Value = ""
Me.TXTTOTAL.Value = ""
Me.CBCUSTOMER.Value = ""
Me.TXTNOMOR.Value = ""
Me.STOKHAPUS.Value = ""
Me.TXTIDBARANG.Value = ""
Me.TXTIDHAPUS.Value = ""

Call AmbilData
Sheet1.Select
End If
Exit Sub
EXCELVBA:
Call MsgBox("Data barang pada tabel Produk tidak ditemukan", vbInformation, "Hapus
Data")

End Sub

Private Sub CMDRESET_Click()


Me.TXTIDTRANSAKSI.Value = ""
Me.TXTTANGGAL.Value = ""
Me.CBIDBARANG.Value = ""
Me.TXTNAMABARANG.Value = ""
Me.TXTSATUAN.Value = ""
Me.TXTSTOK.Value = ""
Me.TXTKELUAR.Value = ""
Me.TXTSISA.Value = ""
Me.TXTGUDANG.Value = ""
Me.TXTHARGA.Value = ""
Me.TXTTOTAL.Value = ""
Me.CBCUSTOMER.Value = ""
Me.TXTNOMOR.Value = ""
Me.CBBULAN.Value = ""
Me.CBTAHUN.Value = ""
Me.TXTIDHAPUS.Value = ""
Me.TXTIDBARANG.Value = ""
Me.STOKHAPUS.Value = ""
Me.TXTKETERANGAN.Value = ""
Me.TABELDATA.ColumnCount = 14
Call AmbilData
Me.CMDDELETE.Enabled = True
Me.CMDADD.Enabled = True
Me.CMDBARU.Enabled = True
End Sub

Private Sub CMDSURAT_Click()


With FORMSURATJALAN
.TXTNOTRANSAKSI.Value = Me.TXTIDTRANSAKSI.Value
End With
FORMSURATJALAN.Show

End Sub

Private Sub CMDUPDATE_Click()


Application.ScreenUpdating = False
'Perintah membuat Sumber data yang diubah
Dim UBAHDATA As Object
Dim UpdateStok As Object
Set UBAHDATA = Sheet7.Range("A4:A10000").Find(What:=Me.TABELDATA.Value,
LookIn:=xlValues)
Set UpdateStok = Sheet3.Range("B4:B10000").Find(What:=Me.CBIDBARANG.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, 2).Value = Format(Me.TXTTANGGAL.Value, "MM/dd/yyyy")
UBAHDATA.Offset(0, 3).Value = Format(Me.TXTTANGGAL.Value, "mmmm")
UBAHDATA.Offset(0, 4).Value = Format(Me.TXTTANGGAL.Value, "yyyy")
UBAHDATA.Offset(0, 5).Value = Me.CBCUSTOMER.Value
UBAHDATA.Offset(0, 6).Value = Me.TXTALAMAT.Value
UBAHDATA.Offset(0, 7).Value = Me.CBIDBARANG.Value
UBAHDATA.Offset(0, 8).Value = Me.TXTNAMABARANG.Value
UBAHDATA.Offset(0, 9).Value = Me.TXTSATUAN.Value
UBAHDATA.Offset(0, 10).Value = Me.TXTGUDANG.Value
UBAHDATA.Offset(0, 11).Value = Me.TXTKELUAR.Value
UBAHDATA.Offset(0, 12).Value = Me.TXTHARGA.Value
UBAHDATA.Offset(0, 13).Value = Me.TXTTOTAL.Value

UpdateStok.Offset(0, 3).Value = Me.TXTSISA.Value


UpdateStok.Offset(0, 6).Value = Val(Me.TXTSISA.Value) * Val(Me.TXTHARGA.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.CBIDBARANG.Value = ""
Me.TXTNAMABARANG.Value = ""
Me.TXTSATUAN.Value = ""
Me.TXTSTOK.Value = ""
Me.TXTKELUAR.Value = ""
Me.TXTSISA.Value = ""
Me.TXTGUDANG.Value = ""
Me.TXTHARGA.Value = ""
Me.TXTTOTAL.Value = ""
Me.CBCUSTOMER.Value = ""
Me.TXTNOMOR.Value = ""
Me.STOKHAPUS.Value = ""
Me.TXTIDBARANG.Value = ""
Me.TXTIDHAPUS.Value = ""

Call AmbilData
'Sheet1.Select
End If

End Sub

Private Sub TABELDATA_Click()

End Sub

Private Sub TABELDATA_DblClick(ByVal Cancel As MSForms.ReturnBoolean)


On Error GoTo EXCELVBA
Dim SUMBERUBAH As String
Dim CELLAKTIF As String
Application.ScreenUpdating = False
Me.TXTNOMOR.Value = Me.TABELDATA.Value
Me.TXTIDTRANSAKSI.Value = Me.TABELDATA.Column(1)
Me.TXTIDHAPUS.Value = Me.TABELDATA.Column(1)
Me.TXTTANGGAL.Value = Format(Me.TABELDATA.Column(2), "DD/MM/YYYY")
Me.CBCUSTOMER.Value = Me.TABELDATA.Column(5)
Me.CBIDBARANG.Value = Me.TABELDATA.Column(7)
Me.TXTNAMABARANG.Value = Me.TABELDATA.Column(8)
Me.TXTSATUAN.Value = Me.TABELDATA.Column(9)
Me.TXTGUDANG.Value = Me.TABELDATA.Column(10)
Me.TXTKELUAR.Value = Me.TABELDATA.Column(11)
Me.TXTHARGA.Value = Me.TABELDATA.Column(12)
Me.TXTTOTAL.Value = Me.TABELDATA.Column(13)

Me.TXTSISA.Value = Me.TXTSTOK.Value

Me.STOKHAPUS.Value = Me.TABELDATA.Column(11)
Me.TXTIDBARANG.Value = Me.TABELDATA.Column(7)

Sheet7.Select
SUMBERUBAH = Sheets("BARANGKELUAR").Cells(Rows.Count, "A").End(xlUp).Row
Sheets("BARANGKELUAR").Range("A4:A" & SUMBERUBAH).Find(What:=Me.TXTNOMOR.Value,
LookIn:=xlValues, LookAt:=xlWhole).Activate
CELLAKTIF = ActiveCell.Row
Me.CMDDELETE.Enabled = True
Me.CMDADD.Enabled = False
Me.TXTIDTRANSAKSI.Enabled = False
Me.CMDBARU.Enabled = False
Me.TXTIDHAPUS.Enabled = False
Me.STOKHAPUS.Enabled = False
Me.TXTIDBARANG.Enabled = False

Sheet1.Select
Exit Sub
EXCELVBA:
Call MsgBox("Anda sedang membuka data Surat Jalan, silahkan klik tombol Reset
terlebih dahulu", vbInformation, "Data Surat")

End Sub
Private Sub TXTKELUAR_Change()
On Error Resume Next
Me.TXTSISA.Value = Val(Me.TXTSTOK.Value) + Val(Me.STOKHAPUS.Value) -
Val(Me.TXTKELUAR.Value)
Me.TXTTOTAL.Value = Val(Me.TXTKELUAR.Value) * Val(Me.TXTHARGA.Value)
End Sub

Private Sub UserForm_Initialize()


Me.BackColor = RGB(38, 41, 47)
Me.Frame1.BackColor = RGB(38, 41, 47)
Me.Frame2.BackColor = RGB(38, 41, 47)
Me.CMDDATASURAT.Enabled = False
Me.CMDSURAT.Enabled = False
Me.CMDCLEAR.Enabled = False
Call AmbilCustomer
Call AmbilData
End Sub
Private Sub AmbilCustomer()
Dim TData As Long
Dim iRow As Long
iRow = Sheet4.Range("C" & Rows.Count).End(xlUp).Row
TData = Application.WorksheetFunction.CountA(Sheet4.Range("C6:C100000"))

If TData = 0 Then
Me.CBCUSTOMER.RowSource = ""
Else
Me.CBCUSTOMER.RowSource = "CUSTOMER!C6:C" & iRow
End If
End Sub

You might also like