JavaScript is not enabled!...Please enable javascript in your browser

جافا سكريبت غير ممكن! ... الرجاء تفعيل الجافا سكريبت في متصفحك.

-->
Home

تحميل مجانى فورم ادخال بيانات كامل UserForm Data Entry Excel في إكسيل

 

تحميل مجانى فورم ادخال بيانات كامل UserForm Data Entry Excel  في إكسيل

 


نظام إدارة المنتجات باستخدام UserForm في إكسيل هو أداة فعالة تمكن المستخدمين من إضافة وتعديل وحذف وعرض بيانات المنتجات بطريقة سهلة وبديهية. هذا الدليل يقدم شرحاً شاملاً للنظام

  1. نظام إدارة المنتجات بإكسيل
  2.  UserForm متكامل للمخازن
  3.  حفظ بيانات المنتجات في إكسيل
  4.  تعديل وحذف المنتجات
  5.  بحث متقدم في قوائم إكسيل
  6.  واجهة مستخدم سهلة للمخازن
  7.  برمجة VBA لإدارة البيانات
  8.  نموذج إدخال بيانات منتجات
  9.  ربط ListBox مع ورقة العمل
  10.  أتمتة إدارة المخزون

 

 مكونات النظام الأساسية

 

 1. واجهة إدخال البيانات (UserForm)

  •  حقول الإدخال: ID، التاريخ، اسم المنتج، الكمية، السعر، الإجمالي
  •  أزرار التحكم: حفظ، تعديل، حذف، جديد
  •  قائمة عرض البيانات (ListBox)
  •  صندوق البحث الفوري

 

 2. ميزات البحث والتصفية

تعريف المتغيرات

Dim ws As Worksheet

Dim lastRow As Long, i As Long

Dim dataArray() As Variant

Dim searchResults As Collection

Dim matchFound As Boolean

 

  • ws: متغير لورقة العمل
  • lastRow: سيخزن رقم آخر صف به بيانات
  • i: عداد للحلقات التكرارية
  • dataArray: مصفوفة لتخزين البيانات التي ستظهر في الليست بوكس
  • searchResults: مجموعة لتخزين نتائج البحث
  • matchFound: متغير منطقي يحدد إذا وجد تطابق في البحث

 

3. تهيئة الكائنات

Set ws = ThisWorkbook.Sheets("Sheet1")

Set searchResults = New Collection

  • تحديد ورقة العمل التي تحتوي البيانات (يجب تغيير "Sheet1" لاسم الورقة الفعلي)
  • إنشاء كائن جديد من نوع Collection لتخزين نتائج البحث

 

4- إيجاد آخر صف به بيانات

lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

5- البحث عند وجود نص بحث

If searchText <> "" Then

    For i = 2 To lastRow

        matchFound = False

        For col = 1 To 6

            If InStr(1, ws.Cells(i, col).Value, searchText, vbTextCompare) > 0 Then

                matchFound = True

                Exit For

            End If

        Next col

  • إذا كان هناك نص بحث، نبحث في كل صف من الصف 2 إلى آخر صف
  • لكل صف، نبحث في الأعمدة من 1 إلى 6 (A إلى F)
  • InStr تبحث عن النص في كل خلية (حساسية الأحرف غير مهمة بسبب vbTextCompare)
  • إذا وجد تطابق، matchFound يصبح True ونخرج من حلقة البحث في الأعمدة

 

6. تخزين النتائج المتطابقة

        If matchFound Then

            searchResults.Add Array(ws.Cells(i, 1).Value, ws.Cells(i, 2).Value, _

                               ws.Cells(i, 3).Value, ws.Cells(i, 4).Value, _

                               ws.Cells(i, 5).Value, ws.Cells(i, 6).Value)

        End If

    Next i

إذا وجد تطابق، نضيف كل قيم الصف (من العمود A إلى F) إلى مجموعة النتائج

 

7. تحضير المصفوفة للنتائج

    If searchResults.Count > 0 Then

        ReDim dataArray(1 To searchResults.Count, 1 To 6)

        For i = 1 To searchResults.Count

            For j = 1 To 6

                dataArray(i, j) = searchResults(i)(j - 1)

            Next j

        Next i

    Else

        ReDim dataArray(0 To 0, 1 To 6)

        dataArray(0, 1) = "لا توجد نتائج"

    End If

  • إذا كانت هناك نتائج، ننشئ مصفوفة ثنائية الأبعاد بحجم النتائج
  • نملأ المصفوفة بقيم النتائج
  • إذا لم تكن هناك نتائج، ننشئ مصفوفة بسطر واحد يظهر رسالة "لا توجد نتائج"

8. حالة عدم وجود نص بحث

Else

    If lastRow > 1 Then

        dataArray = ws.Range("A2:F" & lastRow).Value

    Else

        ReDim dataArray(0 To 0, 1 To 6)

        dataArray(0, 1) = "لا توجد بيانات"

    End If

End If

 

 

  • إذا لم يكن هناك نص بحث، نحمّل كل البيانات من A2 إلى F وآخر صف
  • إذا لم تكن هناك بيانات (فقط العناوين)، نعرض رسالة "لا توجد بيانات"

 

تعبئة الليست بوكس

With Me.ListBox1

    .ColumnCount = 6

    .ColumnWidths = "50;80;150;60;60;60"

    .List = dataArray

End With 

  • نحدد أن الليست بوكس سيعرض 6 أعمدة
  • نحدد عرض كل عمود (يمكن تعديل القيم حسب الحاجة)
  • نعيين مصدر البيانات للمصفوفة التي أعددناها

ملاحظات على خوارزمية البحث:

  • البحث غير حساس لحالة الأحرف (الكبيرة/الصغيرة)
  • يبحث في أي جزء من النص وليس فقط البداية
  • يبحث في جميع الأعمدة المحددة (من 1 إلى 6 في هذا المثال)
  • يعرض جميع الصفوف التي تحتوي على النص في أي من الأعمده

 

 3. وظائف التعديل والحذف

  •  تعديل البيانات: فتح نموذج التعديل مع تعبئة الحقول تلقائياً
  •  حذف البيانات: مع تأكيد العملية وتسجيل النسخ الاحتياطي

 

 فوائد النظام

 

1. توفير الوقت: إدخال البيانات أسرع بنسبة 70% من الطريقة التقليدية

2. تقليل الأخطاء: تحقق تلقائي من صحة البيانات المدخلة

3. بحث فوري: تصفية البيانات أثناء الكتابة

4. واجهة سهلة: لا تحتاج إلى خبرة في إكسيل للاستخدام

 

 كيفية التثبيت والاستخدام

1. فتح محرر VBA: Alt+F11

2. إضافة UserForm جديد

3. نسخ الأكواد السابقة

4. ربط الأزرار مع الإجراءات

5. اختبار النظام

 

 نصائح لتحسين الأداء

 

  •  استخدام `Application.ScreenUpdating = False` أثناء عمليات التحميل
  •  تفعيل خاصية `MultiSelect` في الـ ListBox للتعامل مع عدة عناصر
  •  إضافة تصدير البيانات إلى PDF أو Excel تلقائياً

نظام إدارة المنتجات باستخدام UserForm في إكسيل يوفر حلاً مثالياً للشركات الصغيرة والمتوسطة لإدارة مخزونها بكفاءة. من خلال دمج واجهة سهلة الاستخدام مع إمكانيات برمجة VBA القوية، يمكنك تحويل ملف إكسيل العادي إلى نظام إدارة متكامل. 

الكلمات المفتاحية :

 برمجة نماذج إكسيل المتقدمة

 حلول إدارة المخزون المجانية

 تعلم برمجة UserForm

 أنظمة إكسيل للمبتدئين

 تطوير أدوات الأعمال بإكسيل

 

لتحميل الفورم من هنا

قد يعجبك ايضا            

NameEmailMessage