You are on page 1of 4

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

COSING FORM PRODUK - EXCEL & VBA TUTORIAL


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

Option Explicit

Private Sub CMDADD_Click()


'Perintah membuat nama tempat simpan data
Dim DBPRODUK As Object
'Perintah menentukan tempat simpan data
Set DBPRODUK = Sheet3.Range("A80000").End(xlUp)
'Perintah menentukan data yang wajib diisi
If Me.TXTKODE.Value = "" _
Or Me.TXTNAMA.Value = "" _
Or Me.CMBSATUAN.Value = "" _
Or Me.TXTSTOK.Value = "" _
Or Me.CBGUDANG.Value = "" _
Or Me.TXTHARGASATUAN.Value = "" _
Or Me.TXTTOTALHARGA.Value = "" Then

'Perintah membuat pesan jika data kosong


Call MsgBox("Harap isi data dengan lengkap", vbInformation, "Input Data")
'Perintah menyimpan data jika data diisi lengkap
Else
DBPRODUK.Offset(1, 0).Value = "=ROW()-ROW($A$5)"
DBPRODUK.Offset(1, 1).Value = Me.TXTKODE.Value
DBPRODUK.Offset(1, 2).Value = Me.TXTNAMA.Value
DBPRODUK.Offset(1, 3).Value = Me.CMBSATUAN.Value
DBPRODUK.Offset(1, 4).Value = Me.TXTSTOK.Value
DBPRODUK.Offset(1, 5).Value = Me.CBGUDANG.Value
DBPRODUK.Offset(1, 6).Value = Me.TXTHARGASATUAN.Value
DBPRODUK.Offset(1, 7).Value = Me.TXTTOTALHARGA.Value
Call AmbilData
Call MsgBox("Data berhasil disimpan", vbInformation, "Input Data")

'Perintah membersihkan Form setelah data berhasil disimpan


Me.TXTKODE.Value = ""
Me.TXTNAMA.Value = ""
Me.CMBSATUAN.Value = ""
Me.TXTSTOK.Value = ""
Me.CBGUDANG.Value = ""
Me.TXTHARGASATUAN.Value = ""
Me.TXTTOTALHARGA.Value = ""
End If
End Sub

Private Sub AmbilData()


Dim DBPRODUK As Long
Dim iRow As Long
iRow = Sheet3.Range("A" & Rows.Count).End(xlUp).Row
DBPRODUK = Application.WorksheetFunction.CountA(Sheet3.Range("A6:A100000"))
If DBPRODUK = 0 Then
FORMPRODUK.TABELDATA.RowSource = ""
Else
FORMPRODUK.TABELDATA.RowSource = "PRODUK!A6:H" & iRow
End If
End Sub
Private Sub CMDDELETE_Click()
Application.ScreenUpdating = False
Dim HapusData As Object
Set HapusData = Sheet3.Range("A6:A100000").Find(What:=Me.TXTNOMOR.Value,
LookIn:=xlValues)

If Me.TXTNOMOR.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
Me.TABELDATA.Value = ""
Sheet4.Select
Selection.EntireRow.Delete
Me.TXTNOMOR.Value = ""
Call AmbilData
Call MsgBox("Data berhasil dihapus", vbInformation, "Hapus Data")

Me.TXTKODE.Value = ""
Me.TXTNAMA.Value = ""
Me.CMBSATUAN.Value = ""
Me.TXTSTOK.Value = ""
Me.CBGUDANG.Value = ""
Me.TXTHARGASATUAN.Value = ""
Me.TXTTOTALHARGA.Value = ""
Me.TXTNOMOR.Value = ""
Me.TABELDATA.Value = ""
End If

End Sub

Private Sub CMDRESET_Click()


Me.TXTKODE.Value = ""
Me.TXTNAMA.Value = ""
Me.CMBSATUAN.Value = ""
Me.TXTSTOK.Value = ""
Me.CBGUDANG.Value = ""
Me.TXTHARGASATUAN.Value = ""
Me.TXTTOTALHARGA.Value = ""
Me.TXTNOMOR.Value = ""
Me.TABELDATA.Value = ""
Call AmbilData
Me.CMDADD.Enabled = True

End Sub

Private Sub CMDUPDATE_Click()


Dim UPDATEPRODUK As Object
Set UPDATEPRODUK = Sheet3.Range("A6:A100000").Find(What:=Me.TXTNOMOR.Value,
LookIn:=xlValues)
If Me.TXTNOMOR.Value = "" Then
Call MsgBox("Pilih data yang akan diupdate", vbInformation, "Update Data")
Else
UPDATEPRODUK.Offset(0, 1).Value = Me.TXTKODE.Value
UPDATEPRODUK.Offset(0, 2).Value = Me.TXTNAMA.Value
UPDATEPRODUK.Offset(0, 3).Value = Me.CMBSATUAN.Value
UPDATEPRODUK.Offset(0, 4).Value = Me.TXTSTOK.Value
UPDATEPRODUK.Offset(0, 5).Value = Me.CBGUDANG.Value
UPDATEPRODUK.Offset(0, 6).Value = Me.TXTHARGASATUAN.Value
UPDATEPRODUK.Offset(0, 7).Value = Me.TXTTOTALHARGA.Value
Call MsgBox("Data produk berhasil diupdate", vbInformation, "Update Data")
Me.CMDADD.Enabled = True
Me.TXTKODE.Value = ""
Me.TXTNAMA.Value = ""
Me.CMBSATUAN.Value = ""
Me.TXTSTOK.Value = ""
Me.CBGUDANG.Value = ""
Me.TXTHARGASATUAN.Value = ""
Me.TXTTOTALHARGA.Value = ""
Me.TXTNOMOR.Value = ""
Me.TABELDATA.Value = ""

End If

End Sub

Private Sub TABELDATA_DblClick(ByVal Cancel As MSForms.ReturnBoolean)


Application.ScreenUpdating = False
Dim SUMBERUBAH, CELLAKTIF As String
Me.TXTNOMOR.Value = Me.TABELDATA.Value
Me.TXTKODE.Value = Me.TABELDATA.Column(1)
Me.TXTNAMA.Value = Me.TABELDATA.Column(2)
Me.CMBSATUAN.Value = Me.TABELDATA.Column(3)
Me.TXTSTOK.Value = Me.TABELDATA.Column(4)
Me.CBGUDANG.Value = Me.TABELDATA.Column(5)
Me.TXTHARGASATUAN.Value = Me.TABELDATA.Column(6)
Me.TXTTOTALHARGA.Value = Me.TABELDATA.Column(7)
Me.CMDADD.Enabled = False
Sheet3.Select
SUMBERUBAH = Sheets("PRODUK").Cells(Rows.Count, "A").End(xlUp).Row
Sheets("PRODUK").Range("A6:A" & SUMBERUBAH).Find(What:=Me.TXTNOMOR.Value,
LookIn:=xlValues, LookAt:=xlWhole).Activate
CELLAKTIF = ActiveCell.Row
Sheet1.Select

End Sub

Private Sub TXTCARI_Change()


On Error GoTo Salah
Dim iRow As Long
Dim DCARIDATA As Object
Set DCARIDATA = Sheet3
Sheet3.Range("J5").Value = "Nama Barang"
Sheet3.Range("J6").Value = "*" & Me.TXTCARI.Value & "*"
DCARIDATA.Range("A5").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:= _
Sheet3.Range("J5:J6"), CopyToRange:=Sheet3.Range("L5:S5"), Unique:=False
iRow = Sheet3.Range("L" & Rows.Count).End(xlUp).Row
If Application.WorksheetFunction.CountA(Sheet3.Range("L6:L999999")) = 0 Then
Me.TABELDATA.RowSource = ""
Call MsgBox("Data tidak ditemukan", vbInformation, "Cari Data")
Else
Me.TABELDATA.RowSource = "PRODUK!L6:S" & iRow
End If
Exit Sub
Salah:
Call MsgBox("Maaf Data tidak ditemukan", vbInformation, "Cari Data")

End Sub

Private Sub TXTPROFIT_Change()


On Error Resume Next
Me.TXTTOTALHARGA.Value = Val(Me.TXTHARGASATUAN.Value) * Val(Me.TXTSTOK.Value)

End Sub

Private Sub TXTHARGASATUAN_Change()


On Error Resume Next
Me.TXTTOTALHARGA.Value = Val(Me.TXTHARGASATUAN.Value) * Val(Me.TXTSTOK.Value)

End Sub

Private Sub TXTSTOK_Change()


On Error Resume Next
Me.TXTTOTALHARGA.Value = Val(Me.TXTHARGASATUAN.Value) * Val(Me.TXTSTOK.Value)

End Sub

Private Sub UserForm_Initialize()


Call AmbilData
With CMBSATUAN
.AddItem "Buah"
.AddItem "Kotak"
.AddItem "Pcs"
.AddItem "Kardus"
End With
With CBGUDANG
.AddItem "Gudang 1"
.AddItem "Gudang 2"
.AddItem "Gudang 3"
.AddItem "Gudang 4"
End With
Me.BackColor = RGB(38, 41, 47)
End Sub

You might also like