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

Form Utama

This document contains code for an Excel VBA form application. It includes code for form controls, data retrieval and storage, calculations, and more. The application allows users to manage transactions, customers, and products in Excel.

Uploaded by

arsy bugara
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)
15 views9 pages

Form Utama

This document contains code for an Excel VBA form application. It includes code for form controls, data retrieval and storage, calculations, and more. The application allows users to manage transactions, customers, and products in Excel.

Uploaded by

arsy bugara
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

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

EXCEL & VBA TUTORIAL : FORM UTAMA


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

Private Sub CBCUSTOMER_Change()


On Error GoTo EXCELVBA
Dim DBPRODUK As Object
Set DBPRODUK = Sheet1.Range("C6:C100000").Find(What:=Me.CBCUSTOMER.value,
LookIn:=xlValues)
Me.TXTNOMOR.value = DBPRODUK.Offset(0, 2).value
Sheet5.Range("B8").value = Me.CBCUSTOMER.value
Exit Sub
EXCELVBA:
Call MsgBox("Maaf Produk tidak ditemukan", vbInformation, "Produk")

End Sub

Private Sub CMDADD_Click()


If Me.TXTIDTRANSAKSI.value = "" _
Or Me.TXTNOTA.value = "" _
Or Me.CBCUSTOMER.value = "" _
Or Me.TXTNOMOR.value = "" Then
Call MsgBox("Harap isi data pemesanan terlebih dahulu dengan menekan tombol
Transaksi", vbInformation, "Transaksi")
Else
Me.CMDBAYAR.Enabled = False
FORMTRANSAKSI.Show
End If
End Sub

Private Sub CMDBAYAR_Click()


On Error GoTo EXCELVBA
If Me.TXTIDTRANSAKSI.value = "" _
Or Me.TXTTOTALBAYAR.value = "" Then
Call MsgBox("Harap pilih data pembayaran", vbInformation, "Data Pembayaran")
Else

With FORMBAYAR
.TXTTANGGAL.value = Format(CDate(Date), "MM/DD/YYYY")
.TXTID.value = FORMUTAMA.TXTIDTRANSAKSI.value
.TXTNOTA.value = FORMUTAMA.TXTNOTA.value
.TXTTOTAL.value = FORMUTAMA.TXTTOTALBAYAR.value
End With
FORMBAYAR.Show
End If
Exit Sub
EXCELVBA:
Call MsgBox("Data pebayaran tidak valid", vbInformation, "Data Pebayaran")

End Sub

Private Sub CMDBERSIH_Click()


Me.TXTCARI.value = ""
Me.TXTTGL1.value = ""
Me.TXTTGL2.value = ""
Me.TABELTRANSAKSI.value = ""
Me.TXTNOMOR1.value = ""
Call AMBILDATA
End Sub

Private Sub CMDBUKASHEET_Click()


Application.Visible = True
Unload Me
End Sub

Private Sub CMDCARI_Click()


On Error GoTo SALAH
Dim CARIDATA As Object
Set CARIDATA = Sheet3

Sheet6.Range("U6").value = ">=" & Format(CDate(Me.TXTTGL1.value), "MM/DD/YYYY")


Sheet6.Range("V6").value = "<=" & Format(CDate(Me.TXTTGL2.value), "MM/DD/YYYY")

CARIDATA.Range("A5").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:= _
Sheet6.Range("U5:V6"), Copytorange:=Sheet6.Range("A5:P5"), Unique:=False

Call HasilPencarian

Exit Sub
SALAH:
Call MsgBox("Data tidak ditemukan", vbInformation, "Cari Data")

End Sub
Private Sub HasilPencarian()
Dim DBStok As Long
Dim irow As Long
irow = Sheet6.Range("A" & Rows.Count).End(xlUp).Row
DBStok = Application.WorksheetFunction.CountA(Sheet6.Range("A6:A900000"))
If DBStok = 0 Then
Me.TABELTRANSAKSI.RowSource = ""
Else
Me.TABELTRANSAKSI.RowSource = "CARITRANSAKSI!A6:Q" & irow
End If

End Sub

Private Sub CMDCETAK_Click()


Select Case MsgBox("Anda akan mencetak laporan pemesanan" _
& vbCrLf & "Apakah anda yakin?" _
, vbYesNo Or vbQuestion Or vbDefaultButton1, "Cetak Laporan")
Case vbNo
Exit Sub
Case vbYes
End Select
Sheet6.PrintOut

End Sub

Private Sub CMDCLEAR_Click()


Me.TXTNOMOR.value = ""
Me.CBCUSTOMER.value = ""
Me.TXTIDTRANSAKSI.value = ""
Me.TXTNOTA.value = ""
Me.TABELTRANSAKSI.value = ""
Me.TXTNOMOR1.value = ""
Me.TXTTOTALBAYAR.value = ""
Me.TABELNOTA.RowSource = ""
Me.TABELBAYAR.value = ""
Me.CMDBAYAR.Enabled = False
End Sub

Private Sub CMDCUSTOMER_Click()


FORMCUSTOMER.Show
End Sub

Private Sub CMDDELETE_Click()


If Me.TXTNOMOR1.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.TXTNOMOR1.value = ""
Me.TABELTRANSAKSI.value = ""
Me.CMDADD.Enabled = True

Sheet3.Select
Selection.EntireRow.Delete
Call AMBILDATA
Call MsgBox("Data berhasil dihapus", vbInformation, "Hapus Data")
End If
Sheet3.Select

End Sub

Private Sub CMDKELUAR_Click()


Select Case MsgBox("Anda akan keluar dari aplikasi" _
& vbCrLf & "Apakah anda yakin?" _
, vbYesNo Or vbQuestion Or vbDefaultButton1, "Keluar")
Case vbNo
Exit Sub
Case vbYes
End Select
Application.Visible = True
Unload Me
ThisWorkbook.Save
ThisWorkbook.Close
End Sub

Private Sub CMDLAPORAN_Click()


FORMLAPORAN.Show
End Sub

Private Sub CMDPRODUK_Click()


FORMPRODUK.Show
End Sub

Private Sub CMDPROSES_Click()


On Error GoTo SALAH
Dim CARIDATA As Object
Set CARIDATA = Sheet3
If Me.TXTNOMOR1.value = "" Then
Call MsgBox("Harap pilih data transaksi yang akan di bayar", vbInformation, "Pilih
Transaksi")
Else
Sheet6.Range("U6").value = ""
Sheet6.Range("U6").value = ""

Sheet6.Range("W6").value = Me.TXTIDTRANSAKSI.value

CARIDATA.Range("A5").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:= _
Sheet6.Range("W5:W6"), Copytorange:=Sheet6.Range("A5:Q5"), Unique:=False
Call AmbilNota
Call HitungTotal
Me.CMDBAYAR.Enabled = True
End If
Exit Sub
SALAH:
Call MsgBox("Data tidak ditemukan", vbInformation, "Cari Data")
End Sub

Private Sub CMDRESET_Click()


Me.TXTTGL1.value = ""
Me.TXTTGL2.value = ""
Me.TABELTRANSAKSI.value = ""
Me.TXTNOMOR1.value = ""
Call AMBILDATA
End Sub

Private Sub CMDSIMPAN_Click()


ThisWorkbook.Save
End Sub

Private Sub CMDTGL1_Click()


Me.NOTGL1.value = 1
Me.NOTGL2.value = ""
Call AdvancedCalendar

End Sub

Private Sub CMDTGL2_Click()


Me.NOTGL2.value = 1
Me.NOTGL1.value = ""
Call AdvancedCalendar
End Sub

Private Sub CMDTRANSAKSI_Click()


Dim X, Y As Long
X = Sheet3.Range("Q3").value + 1
Sheet3.Range("Q3").value = X
If Sheet3.Range("Q2").value = 1 Then
Me.TXTIDTRANSAKSI.value = "TR-100000" & X
Me.TXTNOTA.value = "N-100000" & X
End If
If Sheet3.Range("Q2").value = 2 Then
Me.TXTIDTRANSAKSI.value = "TR-10000" & X
Me.TXTNOTA.value = "N-10000" & X
End If
If Sheet3.Range("Q2").value = 3 Then
Me.TXTIDTRANSAKSI.value = "TR-1000" & X
Me.TXTNOTA.value = "N-1000" & X
End If
If Sheet3.Range("Q2").value = 4 Then
Me.TXTIDTRANSAKSI.value = "TR-100" & X
Me.TXTNOTA.value = "N-100" & X
End If
If Sheet3.Range("Q2").value = 5 Then
Me.TXTIDTRANSAKSI.value = "TR-10" & X
Me.TXTNOTA.value = "N-10" & X
End If
End Sub
Private Sub AMBILCUSTOMER()
Dim DBCUSTOMER As Long
Dim irow As Long
irow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
DBCUSTOMER = Application.WorksheetFunction.CountA(Sheet1.Range("A6:A900000"))
If DBCUSTOMER = 0 Then
Me.CBCUSTOMER.RowSource = ""
Else
Me.CBCUSTOMER.RowSource = "CUSTOMER!C6:C" & irow
End If
End Sub

Private Sub CMDUPDATE_Click()


On Error GoTo EXCELVBA
If Me.TXTNOMOR1.value = "" Then
Call MsgBox("Harap pilih data transaksi yang akan di bayar", vbInformation, "Pilih
Transaksi")
Else
With FORMTRANSAKSI
.CBPRODUK.value = Me.TABELTRANSAKSI.Column(5)
.TXTNAMAPRODUK.value = Me.TABELTRANSAKSI.Column(6)
.TXTPANJANG.value = Me.TABELTRANSAKSI.Column(7)
.TXTLEBAR.value = Me.TABELTRANSAKSI.Column(8)
.TXTLUAS.value = Me.TABELTRANSAKSI.Column(9)
.TXTTGLORDER.value = Format(CDate(Me.TABELTRANSAKSI.Column(10)), "DD/MM/YYYY")
.TXTTGLSLESAI.value = Format(CDate(Me.TABELTRANSAKSI.Column(11)), "DD/MM/YYYY")
.CBSTATUS.value = Me.TABELTRANSAKSI.Column(12)
.TXTHARGA.value = Me.TABELTRANSAKSI.Column(13)
.TXTTOTAL.value = Me.TABELTRANSAKSI.Column(14)
.TXTDISKON.value = Me.TABELTRANSAKSI.Column(15)
.TXTBAYAR.value = Me.TABELTRANSAKSI.Column(16)
End With
Me.CMDBAYAR.Enabled = False
Call DataNota
Call AmbilNota
Call HitungTotal

FORMTRANSAKSI.Show
End If
Exit Sub
EXCELVBA:
Call MsgBox("Pilih data pada tabel data", vbInformation, "Pilih Data")
End Sub
Private Sub AmbilNota()
Dim DBStok As Long
Dim irow As Long
irow = Sheet6.Range("A" & Rows.Count).End(xlUp).Row
DBStok = Application.WorksheetFunction.CountA(Sheet6.Range("A6:A900000"))
If DBStok = 0 Then
Me.TABELNOTA.RowSource = ""
Else
Me.TABELNOTA.RowSource = "CARITRANSAKSI!F6:Q" & irow
End If
End Sub
Private Sub DataNota()
On Error Resume Next
Dim CARIDATA As Object
Set CARIDATA = Sheet3
Sheet6.Range("U6").value = ""
Sheet6.Range("U6").value = ""
Sheet6.Range("W6").value = Me.TXTIDTRANSAKSI.value
CARIDATA.Range("A5").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:= _
Sheet6.Range("W5:W6"), Copytorange:=Sheet6.Range("A5:Q5"), Unique:=False
End Sub
Private Sub HitungTotal()
Dim MySum As Double
Dim r As Long
MySum = 0
With TABELNOTA
For r = 0 To .ListCount - 1
MySum = MySum + .List(r, 11)
Next r
End With

Me.TXTTOTALBAYAR.value = MySum
End Sub

Private Sub OptionButton1_Click()


Application.ScreenUpdating = False
Me.MultiPage1.value = 0
End Sub

Private Sub OptionButton2_Click()


Application.ScreenUpdating = False

Me.MultiPage1.value = 1
End Sub

Private Sub TABELBAYAR_Click()


On Error GoTo EXCELVBA
Me.TXTNOMOR1.value = Me.TABELBAYAR.value
Me.TXTIDTRANSAKSI.value = Me.TABELBAYAR.Column(3)
Me.TXTNOTA.value = Me.TABELBAYAR.Column(4)
Me.CBCUSTOMER.value = Me.TABELBAYAR.Column(5)
Me.TXTNOMOR.value = Me.TABELBAYAR.Column(6)
Me.TABELNOTA.RowSource = ""
Me.TXTTOTALBAYAR.value = ""
Exit Sub
EXCELVBA:
Call MsgBox("Pilih data pada tabel data", vbInformation, "Pilih Data")
End Sub

Private Sub TABELTRANSAKSI_Click()


On Error GoTo EXCELVBA
Dim SumberData, CELLAKTIF As Long
Me.TXTNOMOR1.value = Me.TABELTRANSAKSI.value
Me.TXTIDTRANSAKSI.value = Me.TABELTRANSAKSI.Column(1)
Me.TXTNOTA.value = Me.TABELTRANSAKSI.Column(2)
Me.CBCUSTOMER.value = Me.TABELTRANSAKSI.Column(3)
Me.TXTNOMOR.value = Me.TABELTRANSAKSI.Column(4)

Sheet3.Select
SumberData = Sheets("TRANSAKSI").Cells(Rows.Count, "A").End(xlUp).Row
Sheets("TRANSAKSI").Range("A6:A" & SumberData).Find(What:=Me.TXTNOMOR1.value,
LookIn:=xlValues, lookAt:=xlWhole).Activate
CELLAKTIF = ActiveCell.Row
Sheet3.Select
Exit Sub
EXCELVBA:
Call MsgBox("Pilih data pada tabel data", vbInformation, "Pilih Data")

End Sub

Private Sub TXTCARI_Change()


On Error GoTo SALAH
Dim CARIDATA As Object
Set CARIDATA = Sheet3
Me.TABELTRANSAKSI.value = ""
Sheet6.Range("S6").value = "*" & Me.TXTCARI.value & "*"

CARIDATA.Range("A5").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:= _
Sheet6.Range("S5:S6"), Copytorange:=Sheet6.Range("A5:Q5"), Unique:=False

Call HasilTransaksi

Exit Sub
SALAH:
Call MsgBox("Data tidak ditemukan", vbInformation, "Cari Data")

End Sub
Private Sub HasilTransaksi()
Dim DBStok As Long
Dim irow As Long
irow = Sheet6.Range("A" & Rows.Count).End(xlUp).Row
DBStok = Application.WorksheetFunction.CountA(Sheet6.Range("A6:A900000"))
If DBStok = 0 Then
Me.TABELTRANSAKSI.RowSource = ""
Else
Me.TABELTRANSAKSI.RowSource = "CARITRANSAKSI!A6:Q" & irow
End If

End Sub

Private Sub TXTIDTRANSAKSI_Change()


Sheet5.Range("E9").value = Me.TXTIDTRANSAKSI.value
End Sub
Private Sub TXTNOMOR_Change()
Sheet5.Range("E8").value = Me.TXTNOMOR.value
End Sub

Private Sub TXTNOTA_Change()


Sheet5.Range("H9").value = Me.TXTNOTA.value

End Sub

Private Sub TXTTGL1_Change()


Sheet6.Range("O2").value = Me.TXTTGL1.value
End Sub

Private Sub TXTTGL2_Change()


Sheet6.Range("Q2").value = Me.TXTTGL2.value
End Sub

Private Sub TXTTOTALBAYAR_Change()


On Error Resume Next
Me.TXTTOTALBAYAR.value = Format(Me.TXTTOTALBAYAR.value, "Rp #,###")
End Sub

Private Sub UserForm_Initialize()


Call AMBILDATA
Call AMBILCUSTOMER
Call AMBILBAYAR
Me.CMDBAYAR.Enabled = False
Me.Frame1.BackColor = RGB(26, 31, 64)
Me.TABELTRANSAKSI.BackColor = RGB(26, 31, 64)
Me.TABELNOTA.BackColor = RGB(26, 31, 64)
Me.TABELBAYAR.BackColor = RGB(26, 31, 64)

End Sub
Private Sub AMBILDATA()
Dim DBTRANSAKSI As Long
Dim irow As Long
irow = Sheet3.Range("A" & Rows.Count).End(xlUp).Row
DBTRANSAKSI = Application.WorksheetFunction.CountA(Sheet3.Range("A6:A900000"))
If DBTRANSAKSI = 0 Then
FORMUTAMA.TABELTRANSAKSI.RowSource = ""
Else
FORMUTAMA.TABELTRANSAKSI.RowSource = "TRANSAKSI!A6:Q" & irow
End If
End Sub
Private Sub AMBILBAYAR()
Dim DBBAYAR As Long
Dim irow As Long
irow = Sheet4.Range("A" & Rows.Count).End(xlUp).Row
DBBAYAR = Application.WorksheetFunction.CountA(Sheet4.Range("A6:A900000"))
If DBBAYAR = 0 Then
FORMUTAMA.TABELBAYAR.RowSource = ""
Else
FORMUTAMA.TABELBAYAR.RowSource = "PEMBAYARAN!A6:L" & irow
End If
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then
Cancel = True
End If
End Sub

You might also like