-------------------------------------------------
CODING FORM BAYAR : EXCEL VBA TUTORIAL
-------------------------------------------------
Option Explicit
Private Sub CMDBAYAR_Click()
Dim STRUK, dbtransaksi As Object
Dim DATAMEJA As Object
Dim StartBaris As Long
Set DATAMEJA = Sheet4.Range("A5:A1000").Find(What:=Me.TXTMEJA.Value,
LookIn:=xlValues)
Set STRUK = Sheet6.Range("B1000").End(xlUp)
Set dbtransaksi = Sheet5.Range("D1000000").End(xlUp)
Select Case MsgBox("Anda akan mencetak struk" _
& vbCrLf & "Apakah anda yakin?" _
, vbYesNo Or vbQuestion Or vbDefaultButton1, "Cetak Struk")
Case vbNo
Exit Sub
Case vbYes
End Select
Call DynamicRange
STRUK.Offset(1, 0).PasteSpecial xlPasteAll
StartBaris = Application.WorksheetFunction.CountA(Sheet6.Range("B11:B1000")) + 3
dbtransaksi.Offset(1, 0).PasteSpecial xlPasteAll
Call HapusTransaksi
Call SimpanTanggal
STRUK.Offset(StartBaris, 0).Value = "Subtotal :"
STRUK.Offset(StartBaris + 1, 0).Value = "Pajak :"
STRUK.Offset(StartBaris + 2, 0).Value = "Total Bayar :"
STRUK.Offset(StartBaris + 3, 0).Value = "Terimakasih Atas Kunjungan Anda"
STRUK.Offset(StartBaris, 3).Value = CDec(Me.TXTTOTAL.Value)
STRUK.Offset(StartBaris + 1, 3).Value = Val(Me.TXTPAJAK.Value) / 100
STRUK.Offset(StartBaris + 2, 3).Value = CDec(Me.TXTGRANDTOTAL.Value)
Sheet6.Range("D11:E1000").NumberFormat = "#,##0"
STRUK.Offset(StartBaris + 1, 3).Style = "Percent"
Sheet6.PrintOut
Sheet6.Range("B11:E1000").ClearContents
FORMUTAMA.TXTPESANMEJA.Value = ""
FORMUTAMA.TXTQTY.Value = ""
FORMUTAMA.TXTNOMOR1.Value = ""
DATAMEJA.Offset(0, 1).Value = "Ready"
Unload Me
End Sub
Private Sub TXTPAJAK_Change()
On Error Resume Next
Dim DTOTAL As Long
DTOTAL = Val(CDec(Me.TXTTOTAL.Value)) * (Val(Me.TXTPAJAK.Value) / 100)
Me.TXTGRANDTOTAL.Value = Format(Val(CDec(Me.TXTTOTAL.Value)) + DTOTAL, "#,###")
End Sub
Private Sub UserForm_Initialize()
Me.BackColor = RGB(49, 55, 94)
Me.TXTTANGGAL.Value = Now
Call AmbilPesanan
Call HitungTotal
End Sub
Private Sub AmbilPesanan()
Dim DBPESANAN As Long
Dim irow As Long
With ActiveSheet
irow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
DBPESANAN = Application.WorksheetFunction.CountA(ActiveSheet.Range("A2:A1000"))
If DBPESANAN = 0 Then
Me.TABELBAYAR.RowSource = ""
Else
Me.TABELBAYAR.RowSource = "A2:F" & irow
End If
End With
End Sub
Sub DynamicRange()
Dim sht As Worksheet
Dim LastRow As Long
Dim LastColumn As Long
Dim StartCell As Range
Set sht = ActiveSheet
Set StartCell = Range("B2")
LastRow = sht.Cells(sht.Rows.Count, StartCell.Column).End(xlUp).Row
LastColumn = sht.Cells(StartCell.Row, sht.Columns.Count).End(xlToLeft).Column
sht.Range(StartCell, sht.Cells(LastRow, LastColumn)).Copy
End Sub
Sub HapusTransaksi()
Dim sht As Worksheet
Dim LastRow As Long
Dim LastColumn As Long
Dim StartCell As Range
Set sht = ActiveSheet
Set StartCell = Range("A2")
LastRow = sht.Cells(sht.Rows.Count, StartCell.Column).End(xlUp).Row
LastColumn = sht.Cells(StartCell.Row, sht.Columns.Count).End(xlToLeft).Column
sht.Range(StartCell, sht.Cells(LastRow, LastColumn)).Select
Selection.DELETE
End Sub
Sub SimpanTanggal()
Dim x As Integer
For x = 1 To WorksheetFunction.CountA(Sheet6.Range("B11:B1000"))
Dim HasilTransaksi As Object
Set HasilTransaksi = Sheet5.Range("A800000").End(xlUp)
HasilTransaksi.Offset(1, 0).Value = "=ROW()-ROW($A$5)"
HasilTransaksi.Offset(1, 1).Value = Date
HasilTransaksi.Offset(1, 2).Value = Me.TXTMEJA.Value
Next
End Sub
Private Sub HitungTotal()
Dim MySum As Double
Dim r As Long
MySum = 0
With TABELBAYAR
For r = 0 To .ListCount - 1
MySum = MySum + .List(r, 4)
Next r
End With
Me.TXTTOTAL.Value = Format(MySum, "#,###")
End Sub