Anda di halaman 1dari 6

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

FORM BARANG - EXCEL & VBA TUTORIAL


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

Option Explicit
Private Sub ResetData()
'Perintah pengganti Error
On Error GoTo Salah
'Perintah Menentukan tempat pencarian
Dim CariData As Object
Set CariData = Sheet1
'Perintah memasukkan kriteria pencarian
Sheet5.Range("W3").Value = ""
Sheet5.Range("X3").Value = ""
'Perintah Melakukan Pencarian Data
CariData.Range("A6").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:= _
Sheet5.Range("W2:X3"), Copytorange:=Sheet5.Range("A2:U2"), Unique:=False
'Perintah Memasukkan hasil pencarian ke TabelHasil
Call HasilPencarian
'Perintah Lanjutan pengganti Error
Exit Sub
Salah:
Call MsgBox("Data tidak ditemukan", vbInformation, "Cari Data")

End Sub

Private Sub CBBULAN1_Change()


'Perintah pengganti Error
On Error GoTo Salah
'Perintah Menentukan tempat pencarian
Dim CariData As Object
Set CariData = Sheet1
'Perintah memasukkan kriteria pencarian
Sheet5.Range("X3").Value = Me.CBBULAN1.Value
'Perintah Melakukan Pencarian Data
CariData.Range("A6").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:= _
Sheet5.Range("W2:X3"), Copytorange:=Sheet5.Range("A2:U2"), Unique:=False
'Perintah Memasukkan hasil pencarian ke TabelHasil
Call HasilPencarian
'Perintah Lanjutan pengganti Error
Exit Sub
Salah:
Call MsgBox("Data tidak ditemukan", vbInformation, "Cari Data")

End Sub

Private Sub CBTAHUN1_Change()


'Perintah pengganti Error
On Error GoTo Salah
'Perintah Menentukan tempat pencarian
Dim CariData As Object
Set CariData = Sheet1
'Perintah memasukkan kriteria pencarian
Sheet5.Range("W3").Value = Me.CBTAHUN1.Value
'Perintah Melakukan Pencarian Data
CariData.Range("A6").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:= _
Sheet5.Range("W2:X3"), Copytorange:=Sheet5.Range("A2:U2"), Unique:=False
'Perintah Memasukkan hasil pencarian ke TabelHasil
Call HasilPencarian
'Perintah Lanjutan pengganti Error
Exit Sub
Salah:
Call MsgBox("Data tidak ditemukan", vbInformation, "Cari Data")

End Sub
Private Sub HasilPencarian()
Dim DBBARANG As Long
Dim irow As Long
irow = Sheet5.Range("A" & Rows.Count).End(xlUp).Row
DBBARANG = Application.WorksheetFunction.CountA(Sheet5.Range("A3:A100000"))
If DBBARANG = 0 Then
Me.TABELDATA.RowSource = ""
Else
Me.TABELDATA.RowSource = "CARI!A3:U" & irow
End If
End Sub

Private Sub CMDADD_Click()


'Perintah membuat nama tempat simpan data
Dim DBBARANG As Object
'Perintah menentukan tempat simpan data
Set DBBARANG = Sheet1.Range("A80000").End(xlUp)
'Perintah menentukan data yang wajib diisi
If Me.TXTKODE.Value = "" _
Or Me.CBTAHUN.Value = "" _
Or Me.CBBULAN.Value = "" _
Or Me.TXTNAMABARANG.Value = "" _
Or Me.CBJENIS.Value = "" _
Or Me.CBSATUAN.Value = "" _
Or Me.TXTHARGAPOKOK.Value = "" _
Or Me.TXTHARGASATUAN.Value = "" _
Or Me.TXTJUMLAHAWAL.Value = "" _
Or Me.TXTPENJUALAN.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
DBBARANG.Offset(1, 0).Value = "=ROW()-ROW($A$5)"
DBBARANG.Offset(1, 1).Value = Me.TXTKODE.Value
DBBARANG.Offset(1, 2).Value = Me.CBTAHUN.Value
DBBARANG.Offset(1, 3).Value = Me.CBBULAN.Value
DBBARANG.Offset(1, 4).Value = Me.TXTNAMABARANG.Value
DBBARANG.Offset(1, 5).Value = Me.CBJENIS.Value
DBBARANG.Offset(1, 6).Value = Me.CBSATUAN.Value
DBBARANG.Offset(1, 7).Value = Me.TXTHARGAPOKOK.Value
DBBARANG.Offset(1, 8).Value = Me.TXTHARGASATUAN.Value
DBBARANG.Offset(1, 9).Value = Me.TXTJUMLAHAWAL.Value
DBBARANG.Offset(1, 11).Value = Me.TXTPENJUALAN.Value
Call NilaiAwal
Call NilaiPenjualan
Call PersenPenjualan
Call JumlahAkhir
Call NilaiAkhir
Call PersenStok
Call HPP
Call NILAIPROFIT
Call PERSENPROFIT
Call KETERANGAN

Call MsgBox("Data berhasil disimpan", vbInformation, "Input Data")


Call AmbilData

'Perintah membersihkan Form setelah data berhasil disimpan


Me.TXTKODE.Value = ""
Me.CBTAHUN.Value = ""
Me.CBBULAN.Value = ""
Me.TXTNAMABARANG.Value = ""
Me.CBJENIS.Value = ""
Me.CBSATUAN.Value = ""
Me.TXTHARGAPOKOK.Value = ""
Me.TXTHARGASATUAN.Value = ""
Me.TXTJUMLAHAWAL.Value = ""
Me.TXTPENJUALAN.Value = ""

End If

End Sub
Private Sub AmbilData()
Dim DBBARANG As Long
Dim irow As Long
irow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
DBBARANG = Application.WorksheetFunction.CountA(Sheet1.Range("A6:A100000"))
If DBBARANG = 0 Then
Me.TABELDATA.RowSource = ""
Else
Me.TABELDATA.RowSource = "DATABARANG!A6:U" & irow
End If
End Sub

Private Sub CMDDELETE_Click()


If Me.TXTNOMOR.Value = "" Then
Call MsgBox("Pilih data pada tabel data", vbInformation, "Hapus Data")
Else
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 = ""
Me.TXTNOMOR.Value = ""
Sheet1.Select
Selection.EntireRow.Delete
Call AmbilData

Sheet1.Select
End If

End Sub
Private Sub CMDRESET_Click()
Me.TXTNOMOR.Value = ""
Me.TXTKODE.Value = ""
Me.CBTAHUN.Value = ""
Me.CBBULAN.Value = ""
Me.TXTNAMABARANG.Value = ""
Me.CBJENIS.Value = ""
Me.CBSATUAN.Value = ""
Me.TXTHARGAPOKOK.Value = ""
Me.TXTHARGASATUAN.Value = ""
Me.TXTJUMLAHAWAL.Value = ""
Me.TXTPENJUALAN.Value = ""
Me.CBTAHUN1.Value = ""
Me.CBBULAN1.Value = ""

Call AmbilData
Call ResetData

End Sub

Private Sub CMDUPDATE_Click()


'Perintah membuat sumber data ubah
Dim SUMBERUBAH As Object
Set SUMBERUBAH = Sheet1.Range("A6:A100000").Find(What:=Me.TXTNOMOR.Value,
LookIn:=xlValues)
'perintah memastikan bahwa data yang akan diupdate telah dipilih
If Me.TXTNOMOR.Value = "" Then
Call MsgBox("Data yang diupdate belum dipilih", vbInformation, "Update Data")
Else
SUMBERUBAH.Offset(0, 1).Value = Me.TXTKODE.Value
SUMBERUBAH.Offset(0, 2).Value = Me.CBTAHUN.Value
SUMBERUBAH.Offset(0, 3).Value = Me.CBBULAN.Value
SUMBERUBAH.Offset(0, 4).Value = Me.TXTNAMABARANG.Value
SUMBERUBAH.Offset(0, 5).Value = Me.CBJENIS.Value
SUMBERUBAH.Offset(0, 6).Value = Me.CBSATUAN.Value
SUMBERUBAH.Offset(0, 7).Value = Me.TXTHARGAPOKOK.Value
SUMBERUBAH.Offset(0, 8).Value = Me.TXTHARGASATUAN.Value
SUMBERUBAH.Offset(0, 9).Value = Me.TXTJUMLAHAWAL.Value
SUMBERUBAH.Offset(0, 11).Value = Me.TXTPENJUALAN.Value
Call MsgBox("Data berhasil diupdate", vbInformation, "Update Data")
Me.TXTKODE.Value = ""
Me.CBTAHUN.Value = ""
Me.CBBULAN.Value = ""
Me.TXTNAMABARANG.Value = ""
Me.CBJENIS.Value = ""
Me.CBSATUAN.Value = ""
Me.TXTHARGAPOKOK.Value = ""
Me.TXTHARGASATUAN.Value = ""
Me.TXTJUMLAHAWAL.Value = ""
Me.TXTPENJUALAN.Value = ""
End If

End Sub

Private Sub TABELDATA_Click()

End Sub

Private Sub TABELDATA_DblClick(ByVal Cancel As MSForms.ReturnBoolean)


On Error GoTo EXCELVBA
Me.TXTNOMOR.Value = Me.TABELDATA.Value
Me.TXTKODE.Value = Me.TABELDATA.Column(1)
Me.CBTAHUN.Value = Me.TABELDATA.Column(2)
Me.CBBULAN.Value = Me.TABELDATA.Column(3)
Me.TXTNAMABARANG.Value = Me.TABELDATA.Column(4)
Me.CBJENIS.Value = Me.TABELDATA.Column(5)
Me.CBSATUAN.Value = Me.TABELDATA.Column(6)
Me.TXTHARGAPOKOK.Value = Me.TABELDATA.Column(7)
Me.TXTHARGASATUAN.Value = Me.TABELDATA.Column(8)
Me.TXTJUMLAHAWAL.Value = Me.TABELDATA.Column(9)
Me.TXTPENJUALAN.Value = Me.TABELDATA.Column(11)
Exit Sub
EXCELVBA:
Call MsgBox("Harap klik pada data yang tersedia", vbInformation, "Pilih data")

End Sub

Private Sub UserForm_Initialize()


Me.BackColor = RGB(14, 15, 56)
Me.Frame1.BackColor = RGB(14, 15, 56)

Me.TABELDATA.BackColor = RGB(25, 29, 67)


Call AmbilData
With CBTAHUN
.AddItem "2021"
.AddItem "2022"
.AddItem "2023"
.AddItem "2024"
.AddItem "2025"
End With

With CBBULAN
.AddItem "Januari"
.AddItem "Februari"
.AddItem "Maret"
.AddItem "April"
.AddItem "Mei"
.AddItem "Juni"
.AddItem "Juli"
.AddItem "Agustus"
.AddItem "September"
.AddItem "Oktober"
.AddItem "November"
.AddItem "Desember"
End With
With CBTAHUN1
.AddItem "2021"
.AddItem "2022"
.AddItem "2023"
.AddItem "2024"
.AddItem "2025"
End With

With CBBULAN1
.AddItem "Januari"
.AddItem "Februari"
.AddItem "Maret"
.AddItem "April"
.AddItem "Mei"
.AddItem "Juni"
.AddItem "Juli"
.AddItem "Agustus"
.AddItem "September"
.AddItem "Oktober"
.AddItem "November"
.AddItem "Desember"
End With
With CBJENIS
.AddItem "Jenis 1"
.AddItem "Jenis 2"
.AddItem "Jenis 3"
End With
With CBSATUAN
.AddItem "Pax"
.AddItem "Box"
.AddItem "Kaleng"
.AddItem "Pcs"
.AddItem "Btl"
End With

End Sub

Anda mungkin juga menyukai