نظام إدارة المبيعات بالـ VBA في Excel
زر واحد يحفظ فواتيرك ويرقّمها تلقائياً
بضغطة واحدة: يحفظ الفاتورة، يرحّل البيانات للسجل، ويولّد رقم الفاتورة التالي تلقائياً — بدون معادلات، بدون مجهود، وبدون أي خبرة في البرمجة.
😤 المشكلة اللي بتعاني منها كل يوم
لو بتسجّل فواتير في Excel يدوياً — أنت بتكرر نفس العمليات الممّلة كل مرة: تكتب البيانات في ورقة، تنتقل لورقة ثانية، تلاقي آخر صف فاضي، تنقل البيانات، تمسح الأولى، وتكتب رقم الفاتورة الجديدة بإيدك.
ده مش بس مضيّع للوقت — ده مصدر للأخطاء. نسيان رقم فاتورة، كتابة رقم متكرر، بيانات ناقصة في السجل. مشاكل حقيقية بتأثر على عملك.
⚡ مميزات النظام الكامل
ترقيم تلقائي ذكي
رقم الفاتورة يتولّد ويتحدث بعد كل حفظ — INV-001، INV-002...
ترحيل فوري للسجل
البيانات تنتقل لورقة Sales_Log تلقائياً بضغطة واحدة
تحقق من البيانات
الكود يتأكد إن كل الحقول ملاّنة قبل الحفظ ويبلّغك لو في حاجة ناقصة
مسح تلقائي
بعد الحفظ الخلايا بتتمسح وحدها جاهزة للفاتورة الجديدة
تاريخ تلقائي
التاريخ بيتحدث كل يوم تلقائياً — مش محتاج تكتبه يدوياً
مناسب للمبتدئين
الكود مشروح سطر سطر بالعربي — سهل الفهم والتعديل
💻 الكود الكامل — مشروح بالعربي
مكتوب بأسلوب مبسط للمبتدئين — مفيش Classes، مفيش Arrays معقدة، مفيش UserForms. فقط كود نظيف مع تعليقات عربية على كل سطر:
' ============================================================ ' نظام إدارة المبيعات — VBA بسيط للمبتدئين ' ============================================================ Sub HifzAlFatoura() ' --- تعريف المتغيرات --- Dim wsInput As Worksheet ' ورقة الإدخال Dim wsLog As Worksheet ' ورقة السجل Dim lastRow As Long ' أول صف فارغ Dim invoiceNum As String ' رقم الفاتورة الحالي Dim nextNum As Long ' رقم الفاتورة القادمة ' --- تحديد الورقتين بالاسم --- Set wsInput = ThisWorkbook.Sheets("Sales") Set wsLog = ThisWorkbook.Sheets("Sales_Log") ' --- التحقق من إدخال البيانات الأساسية --- If wsInput.Range("C6").Value = "" Then MsgBox "من فضلك ادخل اسم العميل!", vbExclamation, "تنبيه" wsInput.Range("C6").Select : Exit Sub End If If Not IsNumeric(wsInput.Range("C8").Value) Or wsInput.Range("C8").Value = "" Then MsgBox "من فضلك ادخل كمية صحيحة!", vbExclamation, "تنبيه" wsInput.Range("C8").Select : Exit Sub End If ' --- حفظ رقم الفاتورة الحالي في متغير --- invoiceNum = wsInput.Range("C4").Value ' --- إيجاد أول صف فارغ في السجل --- lastRow = wsLog.Cells(wsLog.Rows.Count, "A").End(xlUp).Row + 1 ' --- ترحيل البيانات إلى Sales_Log --- wsLog.Cells(lastRow, 1) = invoiceNum wsLog.Cells(lastRow, 2) = wsInput.Range("C5").Value wsLog.Cells(lastRow, 3) = wsInput.Range("C6").Value wsLog.Cells(lastRow, 4) = wsInput.Range("C7").Value wsLog.Cells(lastRow, 5) = wsInput.Range("C8").Value wsLog.Cells(lastRow, 6) = wsInput.Range("C9").Value wsLog.Cells(lastRow, 7) = wsInput.Range("C8").Value * wsInput.Range("C9").Value ' --- تنسيق التاريخ والإجمالي --- wsLog.Cells(lastRow, 2).NumberFormat = "DD/MM/YYYY" wsLog.Cells(lastRow, 7).NumberFormat = "#,##0.00" ' --- رسالة التأكيد --- MsgBox "تم حفظ الفاتورة بنجاح!" & vbCrLf & "رقم الفاتورة: " & invoiceNum, vbInformation, "نظام المبيعات" ' --- مسح خلايا الإدخال --- wsInput.Range("C6").Value = "" wsInput.Range("C7").Value = "" wsInput.Range("C8").Value = "" wsInput.Range("C9").Value = "" ' --- حساب رقم الفاتورة التالي وكتابته في C4 --- nextNum = wsLog.Cells(wsLog.Rows.Count, "A").End(xlUp).Row - 3 + 1 wsInput.Range("C4").Value = "INV-" & Format(nextNum, "000") ' --- الانتقال لاسم العميل جاهزاً للفاتورة التالية --- wsInput.Range("C6").Select End Sub
🚀 خطوات التنفيذ — للمبتدئ الجديد
- نزّل الملف وافتحهاضغط زر التحميل المجاني أسفل المقالة وافتح الملف بـ Microsoft Excel
- احفظه بصيغة XLSMFile ← Save As ← Excel Macro-Enabled Workbook (*.xlsm) — ضروري عشان VBA يشتغل
- افتح محرر VBAاضغط Alt + F11 على الكيبورد — هيفتح محرر الكود
- أنشئ Module جديدمن Insert ← Module — هيظهر مربع أبيض فارغ
- الصق الكود وأضف الزرالصق الكود كاملاً، ارجع للورقة، أضف شكل من Insert ← Shapes واربطه بالكود
- جرّب وامتع نفسك! 🎉أدخل بيانات فاتورة، اضغط الزر، وشوف السحر يحصل
📊 مقارنة النسخة المجانية والمدفوعة
| الميزة | المجانية | المدفوعة 🏆 |
|---|---|---|
| ورقة إدخال الفواتير | ✓ | ✓ |
| سجل الفواتير التلقائي | ✓ | ✓ |
| ترقيم تلقائي للفواتير | ✓ | ✓ |
| التحقق من البيانات قبل الحفظ | ✓ | ✓ |
| تقرير مبيعات شهري تلقائي | ✗ | ✓ |
| بحث ذكي في الفواتير | ✗ | ✓ |
| تنبيه تجاوز الـ Target | ✗ | ✓ |
| لوحة إحصائيات مبيعات | ✗ | ✓ |
| دعم فني مباشر | ✗ | ✓ |
| تحديثات مدى الحياة | ✗ | ✓ |
💎 اختار النسخة المناسبة ليك
- ورقة Sales كاملة التنسيق
- سجل Sales_Log
- كل مميزات النسخة المجانية
- كود VBA مشروح بالعربي
- دعم فني مباشر
- تحديثات مدى الحياة