أكواد VBA جاهزة للتطبيق في المحاسبة باستخدام Excel
Excel هو أداة قوية تُستخدم على نطاق واسع في المحاسبة لتحليل البيانات، وإنشاء التقارير، وأتمتة العمليات. يمكن تعزيز وظائف Excel باستخدام برمجة VBA (Visual Basic for Applications) لزيادة الكفاءة والدقة في تنفيذ المهام المتكررة والمعقدة. في هذا المقال، سنستعرض مجموعة من أكواد VBA الجاهزة للاستخدام في المحاسبة.
1. كود لحساب إجمالي العمود:
هذا الكود يقوم بحساب مجموع القيم في عمود معين ويعرض النتيجة في رسالة منبثقة. يمكن استخدامه لحساب إجمالي المبيعات، المصاريف، أو أي قيمة مالية أخرى.
Sub SumColumn()
Dim total As Double
total = Application.WorksheetFunction.Sum(Range("B2:B100"))
MsgBox "إجمالي العمود B هو: " & total
End Sub
النتيجة المتوقعة: عرض إجمالي القيم في العمود B من الخلية B2 إلى B100 في رسالة منبثقة.
2. كود لتحليل البيانات المالية باستخدام التنسيق الشرطي:
هذا الكود يطبق تنسيقًا شرطيًا لتحديد القيم السلبية (الخسائر) في عمود معين ويقوم بتلوينها بالأحمر.
Sub HighlightNegativeValues()
Dim ws As Worksheet
Set ws = Sheets("Sheet1")
With ws.Range("B2:B100")
.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, Formula1:="=0"
.FormatConditions(ws.Range("B2:B100").FormatConditions.Count).SetFirstPriority
.FormatConditions(1).Interior.Color = RGB(255, 0, 0)
End With
End Sub
النتيجة المتوقعة: تلوين جميع القيم السلبية في العمود B من الخلية B2 إلى B100 باللون الأحمر لتسهيل اكتشاف الخسائر.
3. كود لإضافة ختم “مدفوع” إلى خلايا معينة:
في المحاسبة، غالبًا ما تحتاج إلى تتبع المدفوعات. هذا الكود يضيف ختم “مدفوع” إلى الخلايا التي تحتوي على القيم المدفوعة.
Sub AddPaidStamp()
Dim ws As Worksheet
Dim cell As Range
Set ws = Sheets("Sheet1")
For Each cell In ws.Range("C2:C100")
If cell.Value = "Paid" Then
cell.Offset(0, 1).Value = "مدفوع"
End If
Next cell
End Sub
النتيجة المتوقعة: إدراج كلمة “مدفوع” في العمود D لكل صف يحتوي على “Paid” في العمود C.
4. كود لإعداد تقرير مالي شهري:
هذا الكود ينشئ تقريرًا شهريًا بسيطًا يجمع البيانات المالية من أوراق متعددة في المصنف.
Sub GenerateMonthlyReport()
Dim wsReport As Worksheet
Dim wsData As Worksheet
Dim lastRow As Long
Dim reportRow As Long
Set wsReport = Sheets.Add
wsReport.Name = "Monthly Report"
wsReport.Range("A1").Value = "التقرير الشهري"
wsReport.Range("A2").Value = "تاريخ التقرير: " & Date
reportRow = 4
For Each wsData In ThisWorkbook.Worksheets
If wsData.Name <> wsReport.Name Then
lastRow = wsData.Cells(wsData.Rows.Count, "A").End(xlUp).Row
wsData.Range("A1:C" & lastRow).Copy wsReport.Cells(reportRow, 1)
reportRow = reportRow + lastRow
End If
Next wsData
End Sub
النتيجة المتوقعة: إنشاء ورقة جديدة باسم “Monthly Report” تحتوي على البيانات المالية من جميع الأوراق الأخرى في المصنف.
5. كود لحساب ضريبة القيمة المضافة (VAT):
هذا الكود يحسب ضريبة القيمة المضافة لمجموعة من القيم في عمود معين ويضيف النتائج إلى عمود جديد.
Sub CalculateVAT()
Dim ws As Worksheet
Dim lastRow As Long
Dim VATRate As Double
Dim i As Long
Set ws = Sheets("Sheet1")
VATRate = 0.15 ' نسبة ضريبة القيمة المضافة 15%
lastRow = ws.Cells(ws.Rows.Count, 2).End(xlUp).Row
For i = 2 To lastRow
ws.Cells(i, 3).Value = ws.Cells(i, 2).Value * VATRate
ws.Cells(i, 4).Value = ws.Cells(i, 2).Value + ws.Cells(i, 3).Value
Next i
End Sub
النتيجة المتوقعة: حساب ضريبة القيمة المضافة بنسبة 15% لكل قيمة في العمود B، ووضع ضريبة القيمة المضافة في العمود C والإجمالي بعد الضريبة في العمود D.
6. كود لإعداد فواتير تلقائية:
يمكن لهذا الكود إنشاء فواتير تلقائيًا استنادًا إلى بيانات العملاء والمبيعات.
Sub GenerateInvoice()
Dim wsTemplate As Worksheet
Dim wsInvoice As Worksheet
Dim wsData As Worksheet
Dim lastRow As Long
Dim i As Long
Set wsTemplate = Sheets("Invoice Template")
Set wsData = Sheets("Sales Data")
lastRow = wsData.Cells(wsData.Rows.Count, 1).End(xlUp).Row
For i = 2 To lastRow
Set wsInvoice = wsTemplate.Copy(After:=Sheets(Sheets.Count))
wsInvoice.Name = "Invoice " & i
With wsInvoice
.Range("B5").Value = wsData.Cells(i, 1).Value ' اسم العميل
.Range("B6").Value = wsData.Cells(i, 2).Value ' تاريخ البيع
.Range("B7").Value = wsData.Cells(i, 3).Value ' المبلغ
End With
Next i
End Sub
النتيجة المتوقعة: إنشاء فواتير متعددة بناءً على بيانات البيع، مع استخدام قالب الفاتورة من ورقة “Invoice Template”.
7. كود لمقارنة بيانات المبيعات بين فترتين:
يتيح لك هذا الكود مقارنة بيانات المبيعات بين فترتين زمنيتين مختلفتين.
Sub CompareSalesData()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Set ws = Sheets("Sales Comparison")
lastRow = ws.Cells(ws.Rows.Count, 2).End(xlUp).Row
For i = 2 To lastRow
If ws.Cells(i, 2).Value > ws.Cells(i, 3).Value Then
ws.Cells(i, 4).Value = "Increased"
ElseIf ws.Cells(i, 2).Value < ws.Cells(i, 3).Value Then
ws.Cells(i, 4).Value = "Decreased"
Else
ws.Cells(i, 4).Value = "No Change"
End If
Next i
End Sub
النتيجة المتوقعة: مقارنة مبيعات الفترة 1 (العمود B) والفترة 2 (العمود C) ووضع النتيجة (Increased, Decreased, No Change) في العمود D.
8. كود لتتبع الميزانية والمصروفات:
هذا الكود يساعد في تتبع الميزانية مقابل المصروفات الفعلية وإظهار الفائض أو العجز.
Sub TrackBudget()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Set ws = Sheets("Budget Tracking")
lastRow = ws.Cells(ws.Rows.Count, 2).End(xlUp).Row
For i = 2 To lastRow
ws.Cells(i, 4).Value = ws.Cells(i, 2).Value - ws.Cells(i, 3).Value ' فائض/عجز
If ws.Cells(i, 4).Value < 0 Then
ws.Cells(i, 4).Interior.Color = RGB(255, 0, 0) ' تلوين الخلايا التي بها عجز باللون الأحمر
End If
Next i
End Sub
النتيجة المتوقعة: حساب الفرق بين الميزانية (العمود B) والمصروفات الفعلية (العمود C) ووضع النتيجة في العمود D مع تمييز الخلايا التي بها عجز باللون الأحمر.
الخلاصة
باستخدام أكواد VBA المذكورة أعلاه، يمكنك أتمتة العديد من المهام المحاسبية في Excel، مما يوفر الوقت ويزيد من دقة العمليات. سواء كنت ترغب في إعداد تقارير مالية، تتبع الميزانية، حساب الضرائب، أو حتى إنشاء فواتير تلقائيًا، يمكن لهذه الأكواد أن تكون مفيدة للغاية في تبسيط وتحسين سير العمل المحاسبي.