0% found this document useful (0 votes)
18 views6 pages

Form Transaksi

The document contains VBA code for a sales transaction form in Excel. It includes private subroutines that handle events like changing discount percentages, clearing form fields, searching for products, and updating transaction totals. Functions are used to retrieve stock quantities from a database, add new transaction records, and populate the form with existing transaction data from a worksheet.

Uploaded by

Widha Filia
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)
18 views6 pages

Form Transaksi

The document contains VBA code for a sales transaction form in Excel. It includes private subroutines that handle events like changing discount percentages, clearing form fields, searching for products, and updating transaction totals. Functions are used to retrieve stock quantities from a database, add new transaction records, and populate the form with existing transaction data from a worksheet.

Uploaded by

Widha Filia
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/ 6

=====================================================

CODING FORM TRANSAKSI | EXCEL VBA TUTORIAL


=====================================================
Option Explicit
Private Sub CBDISKON_Change()
Dim A As Currency
Dim B As Integer
Dim C As Integer

On Error Resume Next


A = Me.TXTHARGASATUAN.Value
B = Me.CBDISKON.Value
C = Me.TXTJUMLAH.Value
Me.TXTDISKON.Value = (B / 100) * A * C
End Sub

Private Sub CMDBATAL_Click()


Me.TXTKODE1.Enabled = True
Me.TXTKODE2.Enabled = True
Me.TABELPENJUALAN.Enabled = False
Me.FRAMEBARANG.Enabled = False
Me.FRAMEPELANGGAN.Enabled = False

Me.TABELPENJUALAN.Value = ""
Me.TXTKODE.Value = ""
Me.TXTBARANG.Value = ""
Me.TXTJUMLAH.Value = ""
Me.TXTHARGASATUAN.Value = ""
Me.CBDISKON.Value = ""
Me.TXTDISKON.Value = ""
Me.TXTJUMLAHHARGA.Value = ""

End Sub

Private Sub CMDCARIBARANG_Click()


FORMCARIBARANG.Show
End Sub

Private Sub Label59_Click()

End Sub

Private Sub TXTALAMAT_Change()


Sheet6.Range("B6").Value = Me.TXTALAMAT.Value
End Sub

Private Sub TXTJUMLAHTRANSAKSI_Change()


If Me.TXTJUMLAHTRANSAKSI.Value = 16 Then
Call MsgBox("Transaksi sudah mencapai batas, silahkan lakukan pembayaran terlebih
dahulu", vbInformation, "Transaksi Penuh")
Me.TXTKODE1.Enabled = False
Me.TXTKODE2.Enabled = False
Me.CMDCARIBARANG.Enabled = False
Else
Exit Sub
End If

End Sub
Private Sub UserForm_Initialize()
Me.TXTKODE1.Enabled = False
Me.TXTKODE2.Enabled = False
Call AmbilTransaksi
Me.TXTJUMLAHTRANSAKSI.Value = Sheet6.Range("K2").Value
Me.TXTTOTAL.Value = Sheet6.Range("F27").Value
Me.TXTTOTAL.Value = Format(Me.TXTTOTAL.Value, "Rp #,###")
Me.TXTTOTALDISKON.Value = Sheet6.Range("F28").Value
Me.TXTTOTALDISKON.Value = Format(Me.TXTTOTALDISKON.Value, "Rp #,###")
Me.TXTTOTALHARGA.Value = Sheet6.Range("F30").Value
Me.TXTTOTALHARGA.Value = Format(Me.TXTTOTALHARGA.Value, "Rp #,###")
With CBDISKON
.AddItem 0
.AddItem 5
.AddItem 10
.AddItem 15
.AddItem 20
End With

End Sub
Private Sub CMDBAYAR_Click()
FORMBAYAR.Show
End Sub
Private Sub CMDCARI_Click()
FORMCARIPELANGGAN.Show

End Sub
Private Sub CMDEDIT_Click()
Me.FRAMEBARANG.Enabled = True
Me.FRAMEPELANGGAN.Enabled = True
Me.TXTKODE1.Enabled = False
Me.TXTKODE2.Enabled = False
Me.TABELPENJUALAN.Enabled = True
End Sub
Private Sub CMDHAPUS_Click()
On Error GoTo EXCELVBA
Dim STOK As Object
Set STOK = Sheet4.Range("B6:B1000000").Find(What:=Me.TXTKODE.Value,
LookIn:=xlValues)
Dim DATAHAPUS As Object
Set DATAHAPUS = Sheet6.Range("A10:A25").Find(What:=Me.TXTKODE.Value,
LookIn:=xlValues)
If Me.TXTKODE.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
DATAHAPUS.Offset(0, 0).ClearContents
DATAHAPUS.Offset(0, 1).ClearContents
DATAHAPUS.Offset(0, 2).ClearContents
DATAHAPUS.Offset(0, 3).ClearContents
DATAHAPUS.Offset(0, 4).ClearContents
STOK.Offset(0, 6).Value = STOK.Offset(0, 6).Value + Me.TXTJUMLAHEDIT.Value
Me.TXTTOTAL.Value = Sheet6.Range("F27").Value
Me.TXTTOTAL.Value = Format(Me.TXTTOTAL.Value, "Rp #,###")
Me.TXTTOTALDISKON.Value = Sheet6.Range("F28").Value
Me.TXTTOTALDISKON.Value = Format(Me.TXTTOTALDISKON.Value, "Rp #,###")
Me.TXTTOTALHARGA.Value = Sheet6.Range("F30").Value
Me.TXTTOTALHARGA.Value = Format(Me.TXTTOTALHARGA.Value, "Rp #,###")
Call UrutTransaksi
Me.TXTJUMLAHTRANSAKSI.Value = Sheet6.Range("K2").Value

Me.TXTKODE.Value = ""
Me.TXTBARANG.Value = ""
Me.TXTJUMLAH.Value = ""
Me.TXTHARGASATUAN.Value = ""
Me.CBDISKON.Value = ""
Me.TXTDISKON.Value = ""
Me.TXTJUMLAHHARGA.Value = ""
Me.TXTJUMLAHEDIT.Value = ""
End If
Exit Sub
EXCELVBA:
Call MsgBox("Data yang dihapus tidak terdaftar", vbInformation, "Hapus Data")
End Sub

Private Sub CMDSCAN_Click()


Me.TXTKODE1.Enabled = True
Me.TXTKODE2.Enabled = True
Me.TABELPENJUALAN.Enabled = False
Me.FRAMEBARANG.Enabled = False
Me.FRAMEPELANGGAN.Enabled = False

Me.TABELPENJUALAN.Value = ""
Me.TXTKODE.Value = ""
Me.TXTBARANG.Value = ""
Me.TXTJUMLAH.Value = ""
Me.TXTHARGASATUAN.Value = ""
Me.CBDISKON.Value = ""
Me.TXTDISKON.Value = ""
Me.TXTJUMLAHHARGA.Value = ""
End Sub
Private Sub CMDUPDATE_Click()
On Error GoTo EXCELVBA
Dim STOK As Object
Set STOK = Sheet4.Range("B6:B1000000").Find(What:=Me.TXTKODE.Value,
LookIn:=xlValues)
Dim DBTRANSAKSI As Object
Set DBTRANSAKSI = Sheet6.Range("A10:A25").Find(What:=Me.TXTKODE.Value,
LookIn:=xlValues)
If Me.TXTKODE.Value = "" Then
Call MsgBox("Harap pilih transaksi yang ada", vbInformation, "Pilih Transaksi")
Else
DBTRANSAKSI.Offset(0, 2).Value = Me.TXTJUMLAH.Value
DBTRANSAKSI.Offset(0, 4).Value = Me.TXTDISKON.Value
STOK.Offset(0, 6).Value = STOK.Offset(0, 6).Value + Me.TXTJUMLAHEDIT.Value -
Me.TXTJUMLAH.Value
Me.TXTTOTAL.Value = Sheet6.Range("F27").Value
Me.TXTTOTAL.Value = Format(Me.TXTTOTAL.Value, "Rp #,###")
Me.TXTTOTALDISKON.Value = Sheet6.Range("F28").Value
Me.TXTTOTALDISKON.Value = Format(Me.TXTTOTALDISKON.Value, "Rp #,###")
Me.TXTTOTALHARGA.Value = Sheet6.Range("F30").Value
Me.TXTTOTALHARGA.Value = Format(Me.TXTTOTALHARGA.Value, "Rp #,###")
Me.TXTKODE.Value = ""
Me.TXTBARANG.Value = ""
Me.TXTJUMLAH.Value = ""
Me.TXTHARGASATUAN.Value = ""
Me.CBDISKON.Value = ""
Me.TXTDISKON.Value = ""
Me.TXTJUMLAHHARGA.Value = ""
Me.TXTJUMLAHEDIT.Value = ""
End If

Exit Sub
EXCELVBA:
Call MsgBox("Data barang tidak ditemukan", vbInformation, "Data Barang")

End Sub
Private Sub TABELPENJUALAN_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
On Error GoTo EXCELVBA
Me.TXTKODE.Value = Me.TABELPENJUALAN.Value
Me.TXTBARANG.Value = Me.TABELPENJUALAN.Column(1)
Me.TXTJUMLAH.Value = Me.TABELPENJUALAN.Column(2)
Me.TXTJUMLAHEDIT.Value = Me.TABELPENJUALAN.Column(2)
Me.TXTHARGASATUAN.Value = Me.TABELPENJUALAN.Column(3)
Me.TXTDISKON.Value = Me.TABELPENJUALAN.Column(4)
Me.TXTJUMLAHHARGA.Value = Me.TABELPENJUALAN.Column(5)
Exit Sub
EXCELVBA:
Call MsgBox("Klik 2x pada data pelanggan", vbInformation, "Data Barang")
End Sub
Private Sub TXTHARGASATUAN_Change()
Dim A As Currency
Dim B As Integer
On Error Resume Next
A = Me.TXTHARGASATUAN.Value
B = Me.TXTJUMLAH.Value
Me.TXTJUMLAHHARGA.Value = A * B
End Sub

Private Sub TXTJUMLAH_Change()


Dim A As Currency
Dim B As Integer
On Error Resume Next
A = Me.TXTHARGASATUAN.Value
B = Me.TXTJUMLAH.Value
Me.TXTJUMLAHHARGA.Value = A * B
End Sub
Private Sub TXTKODE1_AfterUpdate()
On Error GoTo EXCELVBA
Dim DBBARANG, DBSTOK As Object
Set DBBARANG = Sheet6.Range("A1000000").End(xlUp)
Set DBSTOK = Sheet4.Range("B6:B1000000").Find(What:=Me.TXTKODE1.Value,
LookIn:=xlValues)
If Me.TXTKODE1.Value = "" Then
Exit Sub
Else
DBBARANG.Offset(1, 0).Value = "'" & DBSTOK.Offset(0, 0).Value
DBBARANG.Offset(1, 1).Value = DBSTOK.Offset(0, 1).Value
DBBARANG.Offset(1, 2).Value = 1
DBBARANG.Offset(1, 3).Value = DBSTOK.Offset(0, 4).Value
DBBARANG.Offset(1, 4).Value = 0
DBSTOK.Offset(0, 6).Value = Val(DBSTOK.Offset(0, 6).Value) - 1
Me.TXTNAMA.Value = DBSTOK.Offset(0, 8).Value
On Error Resume Next
Me.Image1.Picture = LoadPicture(Me.TXTNAMA.Value)
Me.Image1.PictureSizeMode = 1
Call AmbilTransaksi
Me.TXTJUMLAHTRANSAKSI.Value = Sheet6.Range("K2").Value
Me.TXTTOTAL.Value = Sheet6.Range("F27").Value
Me.TXTTOTAL.Value = Format(Me.TXTTOTAL.Value, "Rp #,###")
Me.TXTTOTALDISKON.Value = Sheet6.Range("F28").Value
Me.TXTTOTALDISKON.Value = Format(Me.TXTTOTALDISKON.Value, "Rp #,###")
Me.TXTTOTALHARGA.Value = Sheet6.Range("F30").Value
Me.TXTTOTALHARGA.Value = Format(Me.TXTTOTALHARGA.Value, "Rp #,###")

'Call HitungTotal
'Call BukaGrafik
Me.TXTKODE1.Value = ""
End If
Exit Sub
EXCELVBA:
Call MsgBox("Barang yang diinput belum terdaftar", vbInformation, "Data Barang")
Me.TXTKODE1.Value = ""
End Sub

Private Sub TXTKODE2_AfterUpdate()


On Error GoTo EXCELVBA
Dim DBBARANG, DBSTOK As Object
Set DBBARANG = Sheet6.Range("A1000000").End(xlUp)
Set DBSTOK = Sheet4.Range("B6:B1000000").Find(What:=Me.TXTKODE2.Value,
LookIn:=xlValues)
If Me.TXTKODE2.Value = "" Then
Exit Sub
Else
DBBARANG.Offset(1, 0).Value = "'" & DBSTOK.Offset(0, 0).Value
DBBARANG.Offset(1, 1).Value = DBSTOK.Offset(0, 1).Value
DBBARANG.Offset(1, 2).Value = 1
DBBARANG.Offset(1, 3).Value = DBSTOK.Offset(0, 4).Value
DBBARANG.Offset(1, 4).Value = 0
DBSTOK.Offset(0, 6).Value = Val(DBSTOK.Offset(0, 6).Value) - 1
On Error Resume Next
Me.TXTNAMA.Value = DBSTOK.Offset(0, 8).Value
Me.Image1.Picture = LoadPicture(Me.TXTNAMA.Value)
Me.Image1.PictureSizeMode = 1
Call AmbilTransaksi
Me.TXTJUMLAHTRANSAKSI.Value = Sheet6.Range("K2").Value

Me.TXTTOTAL.Value = Sheet6.Range("F27").Value
Me.TXTTOTAL.Value = Format(Me.TXTTOTAL.Value, "Rp #,###")
Me.TXTTOTALDISKON.Value = Sheet6.Range("F28").Value
Me.TXTTOTALDISKON.Value = Format(Me.TXTTOTALDISKON.Value, "Rp #,###")
Me.TXTTOTALHARGA.Value = Sheet6.Range("F30").Value
Me.TXTTOTALHARGA.Value = Format(Me.TXTTOTALHARGA.Value, "Rp #,###")

'Call HitungTotal
'Call BukaGrafik
Me.TXTKODE2.Value = ""
Me.TXTKODE1.SetFocus
End If
Exit Sub
EXCELVBA:
Call MsgBox("Barang yang diinput belum terdaftar", vbInformation, "Data Barang")
Me.TXTKODE2.Value = ""

End Sub
Private Sub TXTPELANGGAN_Change()
Sheet6.Range("B5").Value = Me.TXTPELANGGAN.Value
End Sub
Private Sub TXTTELPON_Change()
Sheet6.Range("F5").Value = "'" & Me.TXTTELPON.Value
End Sub
Private Sub AmbilTransaksi()
'Perintah membuat variabel Jumlah Data
Dim DBTRANSAKSI As Long
DBTRANSAKSI = Application.WorksheetFunction.CountA(Sheet6.Range("A10:A25"))
'Perintah memunculkan data dari Sheet ke Userform
If DBTRANSAKSI = 0 Then
Me.TABELPENJUALAN.RowSource = ""
Else
Me.TABELPENJUALAN.RowSource = Sheet6.Range("TABELNOTA").Address(external:=True)
End If
End Sub

You might also like