0% found this document useful (0 votes)
79 views7 pages

Coding Form Masuk

This document contains VBA code for an Excel form used to manage inventory transactions. The form allows the user to search for products, add new transactions, update stock quantities, and generate reports. Key functions include searching for product details, adding new receipt records, updating total stock values, and filtering transaction data for reporting.

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)
79 views7 pages

Coding Form Masuk

This document contains VBA code for an Excel form used to manage inventory transactions. The form allows the user to search for products, add new transactions, update stock quantities, and generate reports. Key functions include searching for product details, adding new receipt records, updating total stock values, and filtering transaction data for reporting.

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/ 7

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

COSING FORM MASUK - EXCEL & VBA TUTORIAL


--------------------------------------------
Option Explicit
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.TXTTOTALSTOK.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 = Sheet5.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.TXTMASUK.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.CBSUPPLIER.Value
DBMASUK.Offset(1, 6).Value = Me.CBIDBARANG.Value
DBMASUK.Offset(1, 7).Value = Me.TXTNAMABARANG.Value
DBMASUK.Offset(1, 8).Value = Me.TXTSATUAN.Value
DBMASUK.Offset(1, 9).Value = Me.TXTGUDANG.Value
DBMASUK.Offset(1, 10).Value = Me.TXTMASUK.Value
DBMASUK.Offset(1, 11).Value = Me.TXTHARGA.Value
DBMASUK.Offset(1, 12).Value = Me.TXTTOTAL.Value

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


UpdateStok.Offset(0, 6).Value = Val(Me.TXTTOTALSTOK.Value) * Val(Me.TXTHARGA.Value)
Call AmbilData
Call MsgBox("data barang masuk telah disimpan", vbInformation, "Barang Masuk")
Me.TXTIDTRANSAKSI.Value = ""
Me.TXTTANGGAL.Value = ""
Me.CBIDBARANG.Value = ""
Me.TXTNAMABARANG.Value = ""
Me.TXTSATUAN.Value = ""
Me.TXTSTOK.Value = ""
Me.TXTMASUK.Value = ""
Me.TXTTOTALSTOK.Value = ""
Me.TXTGUDANG.Value = ""
Me.TXTHARGA.Value = ""
Me.TXTTOTAL.Value = ""
Me.CBSUPPLIER.Value = ""
End If

End Sub

Private Sub CMDBARU_Click()


Dim X As Long
X = Sheet5.Range("O3").Value + 1
Sheet5.Range("O3").Value = X
If Sheet5.Range("O2").Value = 1 Then
Me.TXTIDTRANSAKSI.Value = "BM-100000" & X
End If
If Sheet5.Range("O2").Value = 2 Then
Me.TXTIDTRANSAKSI.Value = "BM-10000" & X
End If
If Sheet5.Range("O2").Value = 3 Then
Me.TXTIDTRANSAKSI.Value = "BM-1000" & X
End If
If Sheet5.Range("O2").Value = 4 Then
Me.TXTIDTRANSAKSI.Value = "BM-100" & X
End If
If Sheet5.Range("O2").Value = 5 Then
Me.TXTIDTRANSAKSI.Value = "BM-10" & X
End If
Me.TXTIDTRANSAKSI.Enabled = False
Me.TXTTANGGAL.Value = Format(Date, "DD/MM/YYYY")
Call GetData

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 = Sheet5.Range("A" & Rows.Count).End(xlUp).Row
TData = Application.WorksheetFunction.CountA(Sheet5.Range("A4:A100000"))

If TData = 0 Then
Me.TABELDATA.RowSource = ""
Else
Me.TABELDATA.RowSource = "BARANGMASUK!A4:M" & 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 = Sheet5
Sheet6.Range("O5").Value = Me.CBBULAN.Value
Sheet6.Range("P5").Value = Me.CBTAHUN.Value
Me.TABELDATA.Value = ""
CARI_DATA.Range("A3").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:= _
Sheet6.Range("O4:P5"), CopyToRange:=Sheet6.Range("A4:M4"), Unique:=False
iRow = Sheet6.Range("A" & Rows.Count).End(xlUp).Row
TotalData = Application.WorksheetFunction.CountA(Sheet6.Range("A5:A10000"))
If TotalData = 0 Then
Me.TABELDATA.RowSource = ""
Call MsgBox("Data tidak ditemukan", vbInformation, "Cari Data")
Else
Me.TABELDATA.RowSource = "CARIMASUK!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
Sheet6.PrintPreview
Sheet1.Select

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

Private Sub CMDDELETE_Click()


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
Sheet5.Select

Selection.EntireRow.Delete
UpdateStok.Offset(0, 3).Value = UpdateStok.Offset(0, 3).Value - 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.TXTMASUK.Value = ""
Me.TXTTOTALSTOK.Value = ""
Me.TXTGUDANG.Value = ""
Me.TXTHARGA.Value = ""
Me.TXTTOTAL.Value = ""
Me.CBSUPPLIER.Value = ""
Me.TXTNOMOR.Value = ""
Call AmbilData
Sheet1.Select
End If

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.TXTMASUK.Value = ""
Me.TXTTOTALSTOK.Value = ""
Me.TXTGUDANG.Value = ""
Me.TXTHARGA.Value = ""
Me.TXTTOTAL.Value = ""
Me.CBSUPPLIER.Value = ""
Me.TXTNOMOR.Value = ""
Me.CBBULAN.Value = ""
Me.CBTAHUN.Value = ""
Me.TXTTOTALSTOK.Value = ""
Me.TXTIDHAPUS.Value = ""
Me.TXTIDBARANG.Value = ""
Me.STOKHAPUS.Value = ""

Call AmbilData
Me.CMDDELETE.Enabled = True
Me.CMDADD.Enabled = True
Me.CMDBARU.Enabled = True
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 = Sheet5.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.CBSUPPLIER.Value
UBAHDATA.Offset(0, 6).Value = Me.CBIDBARANG.Value
UBAHDATA.Offset(0, 7).Value = Me.TXTNAMABARANG.Value
UBAHDATA.Offset(0, 8).Value = Me.TXTSATUAN.Value
UBAHDATA.Offset(0, 9).Value = Me.TXTGUDANG.Value
UBAHDATA.Offset(0, 10).Value = Me.TXTMASUK.Value
UBAHDATA.Offset(0, 11).Value = Me.TXTHARGA.Value
UBAHDATA.Offset(0, 12).Value = Me.TXTTOTAL.Value

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


UpdateStok.Offset(0, 6).Value = Me.TXTTOTAL.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.TXTMASUK.Value = ""
Me.TXTTOTALSTOK.Value = ""
Me.TXTGUDANG.Value = ""
Me.TXTHARGA.Value = ""
Me.TXTTOTAL.Value = ""
Me.CBSUPPLIER.Value = ""
Me.TXTNOMOR.Value = ""

Call AmbilData
'Sheet1.Select
End If

End Sub

Private Sub TABELDATA_Click()

End Sub

Private Sub TABELDATA_DblClick(ByVal Cancel As MSForms.ReturnBoolean)


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.CBSUPPLIER.Value = Me.TABELDATA.Column(5)
Me.CBIDBARANG.Value = Me.TABELDATA.Column(6)
Me.TXTNAMABARANG.Value = Me.TABELDATA.Column(7)
Me.TXTSATUAN.Value = Me.TABELDATA.Column(8)
Me.TXTGUDANG.Value = Me.TABELDATA.Column(9)
Me.TXTMASUK.Value = Me.TABELDATA.Column(10)
Me.TXTHARGA.Value = Me.TABELDATA.Column(11)
Me.TXTTOTAL.Value = Me.TABELDATA.Column(12)

Me.TXTTOTALSTOK.Value = Me.TXTSTOK.Value

Me.STOKHAPUS.Value = Me.TABELDATA.Column(10)
Me.TXTIDBARANG.Value = Me.TABELDATA.Column(6)

Sheet5.Select
SUMBERUBAH = Sheets("BARANGMASUK").Cells(Rows.Count, "A").End(xlUp).Row
Sheets("BARANGMASUK").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

End Sub

Private Sub TXTMASUK_Change()


On Error Resume Next
Me.TXTTOTALSTOK.Value = Val(Me.TXTSTOK.Value) - Val(Me.STOKHAPUS.Value) +
Val(Me.TXTMASUK.Value)
Me.TXTTOTAL.Value = Val(Me.TXTMASUK.Value) * Val(Me.TXTHARGA.Value)

End Sub

Private Sub UserForm_Initialize()


Me.BackColor = RGB(38, 41, 47)
Me.Frame1.BackColor = RGB(38, 41, 47)
Call AmbilSupplier
Call AmbilData
End Sub
Private Sub AmbilSupplier()
Dim TData As Long
Dim iRow As Long
iRow = Sheet2.Range("C" & Rows.Count).End(xlUp).Row
TData = Application.WorksheetFunction.CountA(Sheet2.Range("C6:C100000"))

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

You might also like