VBA code
Ledger Form |
Me.ComboBox1.DropDown |
End Sub |
Private Sub CommandButton1_Click() |
Dim MROW As Long |
If Me.TextBox1 <> "" And Me.TextBox1 <> "" Then |
MROW = Sheet3.Range("A1000000").End(xlUp).Row + 1 |
Sheet3.Range("A" & MROW) = Me.TextBox1 |
Sheet3.Range("B" & MROW) = Me.ComboBox1 |
Me.TextBox1 = "" |
Me.ComboBox1 = "" |
Me.TextBox1.SetFocus |
Else |
MsgBox "Please Fill name And Group" |
End If |
End Sub |
Private Sub TextBox1_AfterUpdate() |
On Error Resume Next |
A = Application.WorksheetFunction.Match(Me.TextBox1, Sheet3.Range("A:A"), 0) |
If A >= 1 Then |
MsgBox "This Name already exist" |
Me.TextBox1 = "" |
End If |
Me.TextBox1.SetFocus |
End Sub |
Private Sub TextBox1_Change() |
On Error Resume Next |
Me.TextBox1 = Format(StrConv(Me.TextBox1, vbProperCase)) |
End Sub |
Private Sub UserForm_Initialize() |
Me.ComboBox1.List = Array("Income", "Expense") |
End Sub |
TransForm |
Private Sub CashMB_Enter() |
Me.CashMB.DropDown |
End Sub |
Private Sub CommandButton1_Click() |
Dim MROW As Long |
Dim CLN As String |
'Input Data |
If Me.LedgerCMB = "" And Me.AmtBox = "" Then |
MsgBox "Please input amount And name " |
Me.GroupCMB.SetFocus |
Exit Sub |
Else |
CLN = Me.CLNBOX 'Textbox for Column Address |
MROW = Sheet2.Range("A1000000").End(xlUp).Row + 1 |
Sheet2.Range("A" & MROW) = Format(CDate(Me.TextBox1), "DD/MMM/YYYY") |
Sheet2.Range("B" & MROW) = Me.LedgerCMB |
Sheet2.Range("C" & MROW) = Me.GroupCMB |
Sheet2.Range(CLN & MROW) = Me.AmtBox.Value |
Sheet2.Range("F" & MROW) = Me.CashMB |
Sheet2.Range("G" & MROW) = MROW + 100 |
'Form Clear |
Me.GroupCMB = "" |
Me.LedgerCMB = "" |
Me.AmtBox = "" |
Me.CashMB = "" |
Me.CLNBOX = "" |
Me.TextBox1.SetFocus |
End If |
End Sub |
Private Sub GroupCMB_Change() |
Dim I As Long |
Me.LedgerCMB.Clear |
For I = 2 To Sheet3.Range("A1000000").End(xlUp).Row |
If Sheet3.Cells(I, "B") = Me.GroupCMB Then |
Me.LedgerCMB.AddItem Sheet3.Cells(I, "A") |
End If |
Next I |
If Me.GroupCMB = "Income" Then |
Me.CLNBOX = "D" |
ElseIf Me.GroupCMB = "Expense" Then |
Me.CLNBOX = "E" |
End If |
End Sub |
Private Sub GroupCMB_Enter() |
Me.GroupCMB.DropDown |
End Sub |
Private Sub LedgerCMB_Enter() |
Me.LedgerCMB.DropDown |
End Sub |
Private Sub TextBox1_AfterUpdate() |
On Error Resume Next |
Me.TextBox1 = CDate(Me.TextBox1) |
End Sub |
Private Sub TextBox1_Enter() |
Me.TextBox1.SelStart = (0) |
Me.TextBox1.SelLength = Len(Me.TextBox1) |
End Sub |
Private Sub UserForm_Initialize() |
Me.GroupCMB.List = Array("Income", "Expense") 'Combobox |
Me.CashMB.List = Array("Cash", "Bank") 'Combobox |
Me.TextBox1 = Date |
End Sub |
HomeForm |
Private Sub CommandButton1_Click() |
TransForm.Show |
End Sub |
Private Sub CommandButton5_Click() |
With Me.ListBox1 |
.Clear |
.AddItem "Income" |
.List(.ListCount - 1, 1) = "Cash" |
.List(.ListCount - 1, 2) = "Bank" |
.List(.ListCount - 1, 3) = "Expense" |
.List(.ListCount - 1, 4) = "Cash" |
.List(.ListCount - 1, 5) = "Bank" |
.Selected(0) = True |
'Income Fill |
Dim I As Long |
Dim RNG As Long |
RNG = Sheet3.Range("A1000000").End(xlUp).Row + 1 |
For I = 2 To RNG |
If Sheet3.Cells(I, "B") = "Income" Then |
.AddItem Sheet3.Cells(I, "A") |
End If |
Next I |
'Expense Fill |
For X = 1 To RNG |
If Sheet3.Cells(X, "B") = "Expense" Then |
.AddItem |
M = M + 1 |
.List(M, 3) = Sheet3.Cells(X, "A") |
End If |
Next X |
'Title Down |
.AddItem |
.List(.ListCount - 2, 0) = "Income" |
.List(.ListCount - 2, 1) = "Cash" |
.List(.ListCount - 2, 2) = "Bank" |
.List(.ListCount - 2, 3) = "Expense" |
.List(.ListCount - 2, 4) = "Cash" |
.List(.ListCount - 2, 5) = "Bank" |
'UnderLine |
.AddItem |
For b = 0 To 5 |
.List(.ListCount - 2, b) = "------------------------" |
Next b |
'Date |
Dim EDate, ENDate As Date |
'Start Date |
EDate = CDate(Application.WorksheetFunction.EoMonth(1 & "/" & Me.MonthCMB & "/" & Me.YearCMB, -1) + 1) |
'End Date |
ENDate = CDate(Application.WorksheetFunction.EoMonth(1 & "/" & Me.MonthCMB & "/" & Me.YearCMB, 0)) |
Dim RNG2 As Long |
Dim sum, sum1, sum4, sum5 As Double |
Dim C, C1, C2, C3 As Integer |
Dim A, A1, A2, A3 As Long |
RNG2 = Sheet2.Range("A1000000").End(xlUp).Row + 1 |
For C = 1 To .ListCount - 1 |
For A = 1 To RNG2 |
'Sum from Sheet2 |
'Cash Income Total |
If .List(C, 0) = Sheet2.Cells(A, "B") And Sheet2.Cells(A, "A") >= _ |
EDate And Sheet2.Cells(A, "A") <= ENDate And Sheet2.Cells(A, "F") = "Cash" Then |
sum = sum + Val(Sheet2.Cells(A, "D")) |
.List(C, 1) = Format(sum, "#####.00") |
End If |
Next A |
sum = 0 |
Next C |
'Sum from Sheet2 |
'Bank Bank Income Total |
For C1 = 1 To .ListCount - 1 |
For A1 = 1 To RNG2 |
If .List(C1, 0) = Sheet2.Cells(A1, "B") And Sheet2.Cells(A1, "A") >= _ |
EDate And Sheet2.Cells(A1, "A") <= ENDate And Sheet2.Cells(A1, "F") = "Bank" Then |
sum4 = sum4 + Val(Sheet2.Cells(A1, "D")) |
.List(C1, 2) = Format(sum4, "#####.00") |
End If |
Next A1 |
sum4 = 0 |
Next C1 |
'Sum from Sheet2 |
'Expens Cash Total |
For C2 = 1 To .ListCount - 1 |
For A2 = 1 To RNG2 |
If .List(C2, 3) = Sheet2.Cells(A2, "B") And Sheet2.Cells(A2, "A") >= _ |
EDate And Sheet2.Cells(A2, "A") <= ENDate And Sheet2.Cells(A2, "F") = "Cash" Then |
sum1 = sum1 + Val(Sheet2.Cells(A2, "E")) |
.List(C2, 4) = Format(sum1, "#####.00") |
End If |
Next A2 |
sum1 = 0 |
Next C2 |
'Sum from Sheet2 |
'Expense Bank Total |
For C3 = 1 To .ListCount - 1 |
For A3 = 1 To RNG2 |
If .List(C3, 3) = Sheet2.Cells(A3, "B") And Sheet2.Cells(A3, "A") >= _ |
EDate And Sheet2.Cells(A3, "A") <= ENDate And Sheet2.Cells(A3, "F") = "Bank" Then |
sum5 = sum5 + Val(Sheet2.Cells(A3, "E")) |
.List(C3, 5) = Format(sum5, "#####.00") |
End If |
Next A3 |
sum5 = 0 |
Next C3 |
'Sum from Listbox |
Dim N As Integer |
Dim Sum2, sum3, sum6, sum7 As Double |
For N = 1 To .ListCount - 1 |
On Error Resume Next |
Sum2 = Sum2 + Val(.List(N, 1)) 'Income Cash |
sum3 = sum3 + Val(.List(N, 4)) 'Expense Cash |
sum6 = sum6 + Val(.List(N, 2)) 'Income Bank |
sum7 = sum7 + Val(.List(N, 5)) 'Expense Bank |
Next N |
'Sum Total year |
Dim YrIncSum, YrExpSum As Double |
Dim STR, EDT As Date |
STR = 1 & "/" & "January" & "/" & Me.YearCMB |
EDT = 31 & "/" & "December" & "/" & Me.YearCMB |
'sum Income Year |
YrIncSum = Application.WorksheetFunction.SumIfs(Sheet2.Range("D:D"), Sheet2.Range("A:A"), ">=" & _ |
STR, Sheet2.Range("A:A"), "<=" & EDT) |
'Sum Espense Year |
YrExpSum = Application.WorksheetFunction.SumIfs(Sheet2.Range("E:E"), Sheet2.Range("A:A"), ">=" & _ |
STR, Sheet2.Range("A:A"), "<=" & EDT) |
'Income |
.AddItem |
.List(.ListCount - 2, 0) = "Total Income" 'Text column 0 |
.List(.ListCount - 2, 1) = Format(Sum2, "####.00") 'Cash Income column1 |
.List(.ListCount - 2, 2) = Format(sum6, "####.00") 'Bank Income column2 |
'Expense |
.List(.ListCount - 2, 3) = "Total Expense" 'Text column3 |
.List(.ListCount - 2, 4) = Format(sum3, "#####.00") ' Cash Expense column4 |
.List(.ListCount - 2, 5) = Format(sum7, "####.00") ' Bank Expense column5 |
'Grand Total Selected month |
.AddItem |
.List(.ListCount - 2, 0) = Me.MonthCMB 'combobox(month) |
.List(.ListCount - 2, 1) = "Grand Total " |
.List(.ListCount - 2, 2) = Format(Sum2 + sum6, "####.00") 'Income Cash+Income Bank |
.List(.ListCount - 2, 3) = Me.MonthCMB 'Combobox(Year) |
.List(.ListCount - 2, 4) = "Grand Total " |
.List(.ListCount - 2, 5) = Format(sum3 + sum7, "####.00") 'Expense Cash + Expense Bank |
'Undedrline |
.AddItem "_________________" |
.List(.ListCount - 2, 0) = "_________________" |
.List(.ListCount - 2, 1) = "_________________" |
.List(.ListCount - 2, 2) = "_________________" |
.List(.ListCount - 2, 3) = "_________________" |
.List(.ListCount - 2, 4) = "_________________" |
.List(.ListCount - 2, 5) = "_________________" |
'Month Balance |
.AddItem |
.List(.ListCount - 2, 0) = Me.MonthCMB & " Cash In Hand" |
.List(.ListCount - 2, 1) = Format(Val(Sum2 - sum3), "#####.00") 'Income Cash - Expense Cash |
.List(.ListCount - 2, 2) = "Year" |
.List(.ListCount - 2, 3) = "Income" |
.List(.ListCount - 2, 4) = Format(YrIncSum, "#####.00") 'Year Income Total |
'Year Balance Income-Expense |
.AddItem |
.List(.ListCount - 2, 0) = Me.MonthCMB & " In Bank" |
.List(.ListCount - 2, 1) = Format(Val(sum6 - sum7), "#####.00") 'Income Bank - Expense bank |
.List(.ListCount - 2, 2) = Me.YearCMB 'Combobx Year |
.List(.ListCount - 2, 3) = "Expense" |
.List(.ListCount - 2, 4) = Format(YrExpSum, "#####.00") 'Year Total Expense |
'Total Cash + Bank Month |
BLN = Val(Sum2 - sum3) + Val(sum6 - sum7) |
.AddItem |
.List(.ListCount - 2, 0) = "Total" |
.List(.ListCount - 2, 1) = Format(BLN, "#####.00") |
.List(.ListCount - 2, 3) = "Balance" |
.List(.ListCount - 2, 4) = Format(Val(YrIncSum - YrExpSum), "#####.00") |
End With |
End Sub |
Private Sub CommandButton3_Click() |
LedgersForm.Show |
End Sub |
Private Sub CommandButton4_Click() |
Dim EDate, ENDate As Date |
'Start Date |
EDate = CDate(Application.WorksheetFunction.EoMonth(1 & "/" & _ |
Me.MonthCMB & "/" & Me.YearCMB, -1) + 1) |
'End Date |
ENDate = CDate(Application.WorksheetFunction.EoMonth(1 & "/" & _ |
Me.MonthCMB & "/" & Me.YearCMB, 0)) |
'Listbox Header |
With Me.ListBox1 |
.Clear |
.AddItem |
For X = 0 To 6 'Loop Column |
.List(0, X) = Sheet2.Cells(1, X + 1) |
Next X |
.Selected(0) = True |
'Listbox Fill |
Dim I As Long |
For I = 2 To Sheet2.Range("A1000000").End(xlUp).Row + 1 |
If Sheet2.Cells(I, "A") >= EDate And Sheet2.Cells(I, "A") <= ENDate Then |
.AddItem |
For C = 0 To 6 'Loop Column |
.List(.ListCount - 1, C) = Sheet2.Cells(I, C + 1) |
Next C |
End If |
Next I |
'Sum Total |
Dim R As Integer |
Dim sum, sum1 As Double |
For R = 1 To .ListCount - 1 |
sum = sum + Val(.List(R, 3)) 'Amount In |
sum1 = sum1 + Val(.List(R, 4)) 'Amount out |
Next R |
'UnderLine |
.AddItem |
.List(.ListCount - 1, 3) = "----------------------" |
.List(.ListCount - 1, 4) = "----------------------" |
.List(.ListCount - 1, 5) = "----------------------" |
On Error Resume Next |
.AddItem |
.List(.ListCount - 1, 3) = Format(sum, "#####.00") 'Total Amount in |
.List(.ListCount - 1, 4) = Format(sum1, "#####.00") 'Total Amount Out |
.List(.ListCount - 1, 5) = "Balance: " & Format(Val(sum - sum1), "#####.00") 'Balance |
End With |
End Sub |
Private Sub UserForm_Initialize() |
For I = 0 To 11 |
Me.YearCMB.AddItem Format(Date, "YYYY") - I |
Me.MonthCMB.AddItem MonthName(I + 1) |
Next I |
Me.YearCMB = Format(Date, "YYYY") 'Combobox |
Me.MonthCMB = Format(Date, "MMMM") 'Combobox |
End Sub |
Thanks Sir.
ReplyDeleteCan you send me a copy.
i am beginner. And i need to make practice.
Thanks you again.
Excellent
ReplyDelete