اذهب الي المحتوي
أوفيسنا

كيفية استخدام أدوات التحكم في صفحة إكسل مع بعض البرمجة


zakwan

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



كيفية استخدام أدوات التحكم في صفحة إكسل مع بعض البرمجة.

تطبيق 1:

افترض أنك تريد أن تستعرض بيانات المبيعات والمصاريف الشهرية -كالتي بالجدول أدناه - على صورة رسم بياني يربط بين متغير واحد من هذه المتغيرات مع الزمن (الشهور). يمكننا أن نرسم العديد من الرسومات البيانية عن طريق إكسل ولكن هذا يجعل شكل الصفحة غير مريح ويجعل التنقل بين الرسومات أمرا عسيرا

يمكننا استخدام أدوات التحكم مع برنامج فيجوال بيسك صغير للقيام بنفس المهمة بشكل جميل ويسير.

1vbex57.jpg

ابدأ برسم العلاقة بين الشهور ومبيعات المنتج الأول

2vbex52.jpg

ابدأ بتسجيل ماكرو ثم قم بتغييرمصدر البيانات Source Data للرسم البياني بحيث تكون العلاقة بين الشهور ومبيعات المنتج الثاني. أوقف تسجيل الماكرو ثم تصفح هذا الماكرو في محرر فيجوال بيسك VBE فتجده الآتي

Sub Macro1()
    ActiveSheet.ChartObjects(”Chart 1″).Activate
    ActiveChart.PlotArea.Select
    ActiveChart.SetSourceData Source:=Sheets(”Sheet1″).Range(”B4:B16,E4:E16″), _
        PlotBy:=xlColumns
End Sub
عن طريق تسحيل هذا الماكرو نستطيع التعرف على الأوامر اللازمة في فيجوال بيسك لتغيير المتغيرات في الرسم البياني. وهذا ما سوف نحتاجه في خطوة لاحقة. لنبدأ في استخدام أدوات التحكم وفيجوال بيسك لكي نستطيع استعراض العلاقة بين أي متغير والشهور حسب رغبتنا تأكد أنك في حالة التصميم Design Mode ثم افتح قائمة أدوات التحكم كما فعلنا في المقالة السابقة اختر زر اختيارات Option Button ثم قم بوضعه في صفحة إكسل بنفس الطريقة المستخدمة في رسم الأشكال قم بنسخ هذا الزر وقم بعمل أربع نسخ منه بحيث يكون لديك خمس زر اختيارات Option Buttons 3vbex53.jpg قف على أول زر اختيارات واضغط على الفأرة يمينا ثم اختر خواص Properties. ابحث عن خاصية Caption أي اسم الزر وقم بتغيير اسم الزر إلى مُسمى المتغيرات في الجدول أعلاه بحيث تبدأ بـ Sales of Product A وتنتهي بـ Cost 4vbex54.jpg لاحظ أن الخلفية الحمراء التي في الشكل أعلاه هي لون خلايا إكسل. يمكنك تغييرها للون غير اللون الأبيض لكي يكون الشكل واضحا إن أردت نريد الآن أن نقوم بكتابة ماكرو يقوم بتغيير المتغير في الرسم البياني عند اختيار كل زر من هذه الأزرار. قم بالضغط مرتين على زر الاختيارات Double Click -وأنت في حالة التصميم- فيظهر لك محرر فيجوال بيسك VBE 5vbex55.jpg هذا الماكرو يتم تنفيذه عند اختيار هذا الزر Click كما هو واضح من عنوانه. نود الآن كتابة جملة مشابهة لتلك التي حصلنا عليها عندما قمنا بتسجيل ماكرو - في أعلى الصفحة. ولكن سوف نقوم باختصاره وتعديلها كالتالي
ChartObjects(”Chart 1″).Chart.SetSourceData Source:=Sheets(”Sheet1″).Range(”B4:B16,c4:c16″)
سوف نقوم بكتابة نفس الجملة لكل زر اختيارات Option Button ولكن مع تغيير مصدر المعلومات في كل حالة حسب العمود الذي نرغب في إظهاره عند اختيار كل زر فنحصل على البرنامج التالي
Private Sub OptionButton1_Click()
ChartObjects(”Chart 1″).Chart.SetSourceData Source:=Sheets(”Sheet1″).Range(”B4:B16,c4:c16″)
End Sub

Private Sub OptionButton2_Click()
ChartObjects(”Chart 1″).Chart.SetSourceData Source:=Sheets(”Sheet1″).Range(”B4:B16,d4:d16″)
End Sub

Private Sub OptionButton3_Click()
ChartObjects(”Chart 1″).Chart.SetSourceData Source:=Sheets(”Sheet1″).Range(”B4:B16,e4:e16″)
End Sub

Private Sub OptionButton4_Click()
ChartObjects(”Chart 1″).Chart.SetSourceData Source:=Sheets(”Sheet1″).Range(”B4:B16,f4:f16″)
End Sub

Private Sub OptionButton5_Click()
ChartObjects(”Chart 1″).Chart.SetSourceData Source:=Sheets(”Sheet1″).Range(”B4:B16,g4:g16″)
End Sub
يُمكننا الآن تجربة عمل هذه الأزرار والتي سوف تتسبب في تغير محتويات الرسم البياني حسب الاختيار فعندما تختار زر التكلفة Cost تجد أن الرسم البياني يرسم العلاقة بين التكلفة والشهور وعندما تختار المنتج الثاني تجد أن الرسم البياني يرسم العلاقة بين مبيعات المنتج الثاني والشهور. يمكنك تصور عِظم فائدة هذا البرنامج عندما يكون لديك الكثير من المتغيرات والتي تريد تحليلها عن طريق الرسم البياني. لاحظ أنك تستطيع بسهولة استخدام نفس البرنامج مع أي ملف آخر بإجراء بعض التعديلات البسيطة. هذا المثال أوضح لنا كيفية برمجة أدوات التحكم وذلك بكتابة ماكرو مصاحب لبعض الأحداث التي تحدث على هذه الأدوات. في هذا المثال اكتفينا بماكرو يعمل عند الضغط Click على الزر Option Button. وهناك الكثير من الأحداث الأخرى التي قد نحتاج في أمثلة أخرى أن نبني لها ماكرو مصاحب لحدوثها. تطبيق 2: لو افترضنا في المثال السابق أن عدد المتغيرات كبير جدا - أكثر من 10 على سبيل المثال- فإن أزرار الاختيار Option Buttons تصبح كثيرة جدا بشكل مزعج. دعنا نُجرب استخدام الصندوق المتدلي في هذه الحالة. افتح قائمة أدوات التحكم واختر الصندوق المتدلي Combobox وقم برسمه كالمعتاد. اضغط على الفأرة يمينا واختر خواص Properties. سنقوم بتحديد مصدر معلومات الصندوق المتدلي عن طريق خاصية ListFillRange. ولكن يجب أن يكون مصدر المعلومات عمودا وليس صفا لأن هذه الخاصية ListFillRange لا تقبل أن تكون صفا. لذلك سنقوم بنسخ وإعادة لصق الخلايا C4:G4 في أي عمود وليكن العمود Z عن طريق
Copy…Pate /Transpose
كما تعلم فإن Transpose تقوم بنسخ الصف في عمود وبالتالي يكون لدينا نفس المعلومات في عمود. نفترض أننا وضعنا الخلايا المنسوخة في العمود Z فقم بتغييرخاصية ListFillRange إلى Z1:Z5. 6vbex581.jpg عند الخروج من حالة التصميم يكون شكل الصندوق المتدلي عند فتحه كالتالي 7vbex59.jpg علينا أن نكتب ماكرو يَقوم بتغيير الرسم البياني بناء على الاختيار في الصندوق المتدلي. لابد أن نتعرف أولا على رقم الاختيار بمعنى أنه الاختيار الأول أو الثاني أو الثالث….من القائمة وبالتالي يمكننا تحديد رقم العمود المناظر لهذا الاختيار. بعد ذلك يتم تغيير مصدر المعلومات كما في المثال السابق
Private Sub ComboBox1_Change()
j = 3 + ComboBox1.ListIndex
myrange = Sheets(”Sheet1″).Range(Cells(4, j), Cells(16, j)).Address
ChartObjects(”Chart 1″).Chart.SetSourceData Source:=Sheets(”Sheet1″).Range(myrange)
End Sub
المتغير J يتم حسابه بإضافة ثاثة لرقم الاختيار من الصندوق المتدلي. رقم الاختيار يتم تحديده عن طريق Combobox1.ListIndex والذي يبدأ من الصفر ثم واحد وهكذا أي أنه عند اختيار مبيعات المنتج الأول تكون قيمة الاختيار هي صفر وبالتالي قيمة المتغير J هي 3. يتم إضافة ثلاثة لأن الاختيار الاول مناظر للعمود الثالث في صفحة إكسل وهكذا. بهذه الطريقة أمكننا استخدام الصندوق المتدلي Combobox بدلا من أزرار الاختيارات Option Buttons وكما ترى فكلا منهما له مزاياه. تطبيق 3: لنفترض أننا نريد - في المثال السابق- أن يكون لدينا وسيلة لإظهار وإخفاء الرسم البياني اضغط على أيقونة حالة التصميم Design Mode افتح قائمة أدوات التحكم أضف زر أوامر Command Button ثم أضف واحد آخر فيكون لدينا اثنان Command Button قف على أحدهما واضغط يمينا على الفأرة ثم اختر خواص Properties قم بتغيير مسمى الزر Caption الأول إلى View ثم اختر الزر الثاني وغيِّر المسمى إلى Hide 8vbex61.jpg اضغط مرتين Double Clickعلى الزر الأول لكي تكتب الماكرو المصاحب للضغط عليه ثم اكتب السطر التالي داخل الماكرو فيكون الماكرو كالتالي
Private Sub CommandButton1_Click()
ChartObjects(”Chart 1″).Visible = -1
End Sub
السطر الأوسط يعني أن الرسم البياني ظاهرا. الآن قم بعمل نفس الشيء مع الزر الآخر ولكن الماكرو سيكون كالتالي
Private Sub CommandButton1_Click()
ChartObjects(”Chart 1″).Visible = 0
End Sub
القيمة 0 تعني أن الرسم البياني غير ظاهر اخرج من حالة التصميم بالضغط على أيقونة Exit design Mode قم بتجربة عمل الزرين وينبغي أن تجد أن View تُظهر الرسم بينما Hide تُخفي الرسم تطبيق 4: حاول تنفيذ عملية إظهار وإخفاء الرسم البياني عن طريق صندوق اختيار Check box بدلا من زر الأوامر Command Button تحول إلى حالة التصميم بالنقر على الأيقونة الخاصة بحالة التصميم ثم افتح قائمة أدوات التحكم أضف صندوق اختيار إلى صفحة إكسل قم بتغيير مسمى الصندوق Caption من Checkbox1 إلى View / Hide اضغط مرتين لكتابة الماكرو المصاحب لاختيار وعدم اختيار صندوق الاختيار وهو كالتالي
Private Sub CheckBox1_Click()
m = CheckBox1.Value
If m = True Then
ChartObjects(”Chart 1″).Visible = -1
Else
ChartObjects(”Chart 1″).Visible = 0
End If
End Sub




تم نقل هذه المعلومات من موقع آخر ليستفيد اخوتي في هذا المنتدى الطيب بهذه المعلومات

تقبلوا تحياتي




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

الأخ / ذكوان

جزاك الله خيرا

الموضوع كبير محتاج وقت للقراءة والفهم والتطبيق

لكن احببت ان اشكرك لمجهودك الرائع

وان شاء الله لو فيه استفسارات سوف ارسل لك باذن الله تعالى

وجزاك الله خيرا

:welcomeani: :welcomeani: :welcomeani:

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

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

Important Information