اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

شرح UserForm Spreadsheet


الردود الموصى بها

شرح   UserForm Spreadsheet


تحياتي إلى الجميع
شرح

UserForm Spreadsheet

هذه الأداة تسمح بنسخ كامل ورقة العمل او مدي محدد منها الي الفورم

مع التحكم في الجزء المنسوخ بالتسيق للصفوف والأعمدة

والتلوين واشياء كثيرة اخري


هذه الاداة

UserForm Microsoft Spreadsheet Control ActiveX

من ادوات 

Control ActiveX

وهي تتوفر لمستخدي اوفيس 11  و  14

أي لمستخدمي اوفيس  2003  و  2010

بدون اى مشاكل
==================================================

اما مستخدمي اوفيس 2007

اما تركيب    owc11

Office Web Components

الخاصه بأوفيس 11

بدلا من Excel Services

ورابط تحميلها من    Microsoft    موجود بالمرفقات_1

او

فأذا لم تعمل الاداة

يجب تنفيذ التعليمات التاليه وهي طريقتين بالرابط التالي

رابط التعليمات بالمرفق_2
 

==================================================

 

المرفقات_1.rar

 

المرفقات_2.rar

يتبع

 

 

اظهار الاداة لمستخدمي اوفيس  2003  و  2010

سوف نتبع كل السبل المتاحه لإظهر الادة

الطريقة الاولي اتبع الصور من 1 - 4

في محرر الاكواد

 

1.jpg

 

2.jpg

 

3.jpg

 

4.jpg

 

الطريقة الثانية اتبع الصور من 5 - 6

في محرر الاكواد

 

5.jpg

 

6.jpg

 

بعد اضافة المكتبتين نفذ ما في الصور من 1 الي 4

اذا لم تجد هاتين المكتبتين لا عليك

قم بتحميل المرفق_3

ستجد بداخله ملف اكسيل بأسم   Add_Reference

اضغط علي الزر لتنفيذ ماكرو يعمل علي اضافة هاتين المكتبتين

بعد اضافة المكتبتين عن طريق الماكرو نفذ ما في الصور من 1 الي 4
 

==================================================

المرفقات_3.rar

يتبع

 

تم تعديل بواسطه عمر الحسيني
  • Like 5
  • Thanks 1
رابط هذا التعليق
شارك

والان نبدأ استخدام الاداه

بعد تجهيز الملف بجدول البيانات في اول ورقة

وايضا بعد تجهيز الملف بال   UserForm

وادراج الاداة   Spreadsheet    فى     UserForm

نبدأ بكتابة الاكواد  داخل اجراء البداية لل     UserForm   وهو اللاجراء الاولي الذي يعمل

عند بداية تنفيذ استدعاء  ال    UserForm  وهو  UserForm_Initialize

وتكون الاكواد كالاتي
 

==================================================

Dim Sh_Data As Worksheet
Dim Rng As Range
Dim Spread As OWC11.Spreadsheet
'
Private Sub UserForm_Initialize()
'
Set Sh_Data = Sheets("Data")
Set Spread = UserForm1.Spreadsheet1
OptionButton1 = True
OptionButton2 = False
CommandButton1.Caption = "خـــــروج"
ScreenOff
'======================================================================

End_Row = Sh_Data.Cells(Rows.Count, "A").End(xlUp).Row          'تحديد رقم اخر صف في ورقة الدتا
Set Rng = Sh_Data.Range("A1:K" & End_Row)                       'تحديد مدي قاعدة البيانات
'======================================================================

Rng.Copy                                                        'نسخ مدي قاعدة البيانات
'
With Spread
    '
    With .Range("A1")
        .Paste                                                  'لصق مدي قاعدة الي شيت الفورم بدء من الخليه A1
        .Select
    End With
    '
    Application.CutCopyMode = Fals
    .Cells.AutoFit                                              'احتواء تلقائي لشيت الفورم
    '
    With .ActiveWindow
        .ViewableRange = Rng.Address    'اجبار شيت الفور علي اظهر مدى قاعدة البيانات فقط لعدم استهلاك الذاكره
                                    'انا اعمل علي اوفيس 2003  ليتوافق مع جميع نسخ الاوفيس
                                    'وهو يحتوي علي صفوف عددها هو   35536 صف
                                    'و يحتوي علي اعمدة عددها هو   256 عمود
                                    'اما داخل ال     Spread   في    UserForm
                                    'فهيي تحتوي علي صفوف عددها هو   262144 صف
                                    'أي عدد الصفوف يساوي 4 امثال ورقة العمل العادية
                                    'و تحتوي علي اعمدة عددها هو   18278 عمود
                                    'أي عدد الاعمدة يساوي 72 ضعف ورقة العمل العادية
                                    'تخيل حجم الذاكرة المستهلكة
                                    'فهذا السطر يجبر ال   Spread   علي عرض مدي قاعدة البيانات فقط
                                    'تخيل حجم الذاكرة التي تم توفيرها
    End With
    '
    .RightToLeft = True                                         'جعل شيت الفورم من اليمين الي اليسار
    '
End With
'======================================================================

Change2Arabic
'
End Sub

 

==================================================

المثال_1 بالمرفقات_4

تم تجربة المثال علي كل من أوفيس 11 / 2003   و أوفيس 14 / 2010  بدون أي مشاكل

==================================================

المرفقات_4.rar

 

يتبع

بعد حفظ الملف و إعادة فتحه مرة اخري

ستظهر رسالة تحذيريه من   ActiveX Control

 

Reg.jpg

 

لأيقاف ظهور هذه الرسالة ينفذ ملف الريجيستري التالي

الموجود بالمرفقات_5

الي ان نلتقي مع تكملة المثال
==================================================

المرفقات_5.rar

يتبع

تم تعديل بواسطه عمر الحسيني
  • Like 2
رابط هذا التعليق
شارك

 

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

تحياتي إلى الجميع

تكملة شرح

UserForm Spreadsheet

قبل عمل  ال   TextBox  لنستخدمه في البحث او الفلترة

سنقوم بعمل بعض التحابيش الجماليه لل   Spreadsheet

وهي اخفاء لبعض الاشرطه والادوات من ال   Spreadsheet   لتبدو لنا مثل   ListBox   تماما

كما في الصوره التاليه سيتم اخفاء كل الاشرطة والادوات التي تم تميزها باللون الاحمر

 

11.jpg

 

ويتم ذلك بأستخدام اجراء تنشيط   UserForm   وهو   UserForm_Activate

وتكون الاكواد كالاتي
 

==================================================

Private Sub UserForm_Activate()
'
'==================================================================
With Spread
    .DisplayToolbar = False                         ' اخفاء شريط الادوات
    With .ActiveWindow
        .DisplayWorkbookTabs = False                ' اخفاء تاب اوراق العمل
        .EnableResize = False                       ' اخفاء تاب التحكم في حجم ورقة العمل
        .DisplayHeadings = False                    ' اخفاء ترقيم الصفوف و الاعمدة
        .DisplayHorizontalScrollBar = False         'اخفاء شريط التمرير الافقي
        .DisplayVerticalScrollBar = False           'اخفاء شريط التمرير الرأاسي
    End With
End With
'==================================================================
'
End Sub

 

==================================================

والان نكمل المثال بعد تم عرض كامل الدتا داخل  Spread

1 - سنقوم بعمل زر للخروج طور الفورم

2 - سنعمل عدد 2  TextBox احدهما للبحث او الفلترة والثاني لمجموع مبالغ المكافئة

3 - سنعمل عدد 2  OptionButton  الاول للفلترة من بداية الاسم

والثاني للفلترة بأي جزء  من الاسم

وتكون الاكواد كالاتي

في حدث  TextBox1_Change  كالاتي

عند ادراج اى حرف في   TextBox1 يبدأ تنشيط هذا الحدث
 

==================================================

Private Sub TextBox1_Change()
'
On Error GoTo End_Me
Spread.Rows("1:" & Rows.Count).ClearContents
'حذف محتويات ال    Spread   بالكامل
'
'/=============================================================
Search_Text = TextBox1 & "*"
'في حالة تنشيظ ال   OptionButton1
'توجيه محتوي ال   TextBox1   الى المتغير  Search_Text
'واضافة علامة النجمة له في نهايته ليكون البحث او الفلترة بجزء من بداية الاسم
If OptionButton2 Then Search_Text = "*" & TextBox1 & "*"
' اما في حالة تنشيظ ال   OptionButton2
'توجيه محتوي ال   TextBox1   الى المتغير  Search_Text
'واضافة علامة النجمة له في البداية و النهايته ليكون البحث او الفلترة  بأي بجزء من الاسم
ScreenOn
Sh_Data.Range("A1").AutoFilter Field:=2, Criteria1:=Search_Text
'في ورقة العمل الرئيسية عمل تصفية تلقائية على العمود الثاني (الاسم)
'بمحتوي متغير الفلترة المتغير  Search_Text
'/=============================================================
Sh_Data.AutoFilter.Range.Copy
'بعد الفلترة نسخ ناتج الفلترة من ورقة العمل الرئيسية الي الذاكرة
With Spread
    With .Range("A1")
        .Paste
'لصق ناتج الفلترة الي ال   Spread
        .Select
    End With
End With
'/=============================================================
Total = Sh_Data.Range("M1").Value
TextBox2 = CStr(Format(Total, "0.00"))
'نسج خلية المجموع ( M1 ) من ورقة العمل الرئيسية الي  TextBox2 في الفورم
'/=============================================================
End_Me:
ScreenOn
On Error GoTo 0
'
End Sub

 

==================================================

ملحوظة

بعد عمل الفلترة على الفورم يمكن التبديل بين بداية الاسم و أي جزء الاسم

الملف موجود بالمرفقات_6

تم تجربة المثال علي كل من أوفيس 11 / 2003   و أوفيس 14 / 2010  بدون أي مشاكل

وبذلك ينتهي شرح   UserForm Spreadsheet

والي لقاء قريب بإذن الله مع شرح اداة ثانية نادرة الاستخدام مغمورة مطمورة

==================================================

المرفقات_6.rar


تحياتى لكم جميعا
 

تم تعديل بواسطه عمر الحسيني
  • Like 4
  • Thanks 2
رابط هذا التعليق
شارك

الاخ مهند الزيدي

لقد نوهت انها تعمل جيدا  علي اوفيس 2003  و 2010

اما 2007 و 2016 لها بعض المشاكل

 

علي العموم

ماهي الخطوات التي اتبعتها بالتفصيل

حتي استطيع اجابتك

وهل اتجاه الاعمدة علي نسخة الاوفيس لديك

من اليمين الي اليسار

ام من اليسار اليمين

وهل قوائمك عربي ام انجليزي

ارجو مما يريد الاستفسار ان يذكر الخطوات السابقة ذات اللون الاحمر بالتفصيل

 

رابط هذا التعليق
شارك

استاذ عمر

استخدم اوفيس216

القوائم عربية

والصفحات من اليمن الى اليسار

الاداة تظهر معى فى الادوات لكنها لا تظهر فى الفورم

 

  • Like 2
رابط هذا التعليق
شارك

شكرا لك اخي عمر الحسيني .. وفقك الله لكل خير .. عملت كل خطوات حل المشكلة التي شرحتها .. ولكن لاتظهر ال  Spreadsheet عند تشغيل الفورم ولا عند VBA  كما في الصورة المرفقة

Untitled.jpg

رابط هذا التعليق
شارك

 

 

الاخوة الاعزاء

من ارد مني توضيحا يجب عليه اولا توضيح الاتي بدون نقصان

1 - رقم نسخة الاوفيس

2 - ماهي الخطوات التي اتبعتها بالتفصيل من خلال شرحي السابق

3 - اتجاه الاعمدة علي نسخة الاوفيس لديك من اليمين الي اليسار ام من اليسار اليمين

4 - وهل قوائمك عربي ام انجليزي

اربع نقاط يجب ذكرها حتي استطيع محاولة ايجاد حل

فكيف لي ان  اعرف ايجاد حل بدون معرفة التفاصيل بعد الشرح الواضح في بداية الموضوع

كل هذا قبل تشغيل المثال المرفق في الشرح

 

 

تم تعديل بواسطه عمر الحسيني
رابط هذا التعليق
شارك

ا / عمر

نفذت كل الخطوات السابقة من اجل اضافة المكتبتين و لم يضافوا

تم تفعيل microsoft office spread sheet

و ظهرت الاداة و لكن تحت اسم unknown

و تم الذهاب الى ال tools  من خلال محرر الاكواد و لم اجد المكتبتين 

ثم تم تحميل الملف بالمرفقات 3 Add_Reference

و الضغط على زر Add_Reference و لم اجد المكتبتين ايضا  

عندى اوفيس 2016

القوائم : عربى

اتجاه الاعمدة : من اليمين الى اليسار

 

رابط هذا التعليق
شارك

 

الاخ صلاح الصغير

 

حمل   Office Web Components

من الرابط الموجود بالمرفقات_1

النسخة العربية وقم بتركيبها

ثم اعد الخطوات من 1  الي  4

 

 

رابط هذا التعليق
شارك

  • 2 years later...
  • 2 weeks later...
زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information