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

omar elhosseini

المشرفين السابقين
  • Posts

    1950
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    4

كل منشورات العضو omar elhosseini

  1. الاخ منسق للحصول على رقم نسخة الاكسيل وايضا نظام تشغيل الجهاز الحالى استخدم الكود التالى Sub TestMe() MsgBox "Microsoft Excel version " & _ Application.Version & Chr(10) & Chr(10) & "My System " & _ Application.OperatingSystem End Sub
  2. الاخ awadid لقد قمت بالرد وارسال الملف سابقا الى بريدك وكان يعمل اخى شاهد المرفق اخى حاول قراءة المشاركة رقم 1 فى الصفحة رقم 1 او قراءة الشرح بالملف المرفق بها ستجد ان ينص على ان المدخل الاول هو :: المدخل الاول :: هو قيمة البحث اى القيمة التي سيتم البحث عنها في العمود الأول من الجدول او الجداول و يمكن أن تكون قيمة البحث عبارة قيمة أو مرجع أو سلسلة نصية _________...rar
  3. الاخوة الاخ خبيب الريم الاخ قصي شكرا لكم الاخ ابو اسامة العينبوسي الاخ justice جزاكم الله كل خير
  4. الاخ هاني بن محمود اولا شكرك لك اخى اخى انا فعلا اعمل على هذا البرنامج للرد على موضوع بعد ان ادرجت موضوعك منذ ثلاثة ايام وفعلا اخى تصميم الشهادة وجدول البيانات من عملك انت ولكنى لست فى حاجة الى تصميمك لعمل مثل هذا البرنامج انظر الى توقيعى ترى ثلاثة برامج للشهادات تم انتاجها فى توقيت لم يكن احد صمم برامج كامله لذلك فلماذا اعمل البرنامج على تصميمك وانا لست فى حاجة اليه الا اذا كنت اقوم بالرد على موضعك ولكنى فضلت وضع الرد فى موضوع منفصل ولم اضع رابطة فى موضوعك سهوا كما تعودت على ذلك دائما الاكواد التى تتحدث عنها كأنها برنامج كامل هو مودبول رقم 1 هو كود وحيد لاستاذنا الفاضل ابو هادى مبتكر سلسلة التفقيطات الكاملة وقد قمت سابقا بتجميع هذه السلسلة فى موضوع واحد تكريما له وليستفيد منها الجميع وهى مجمعة على الرابط التالى :: دوال التفقيط, تفقيط ( العملات - الارقام - الترتيب - الدرجات ) فكيف اخى ( قمت بتجميعها وتصميمها الي ان ظهرت بالشكل التي هي علية ) اما معادلاتك اخى فهل ترى فى توقيعى اسفل هذه المشاركة انى فى حاجة اليها وفعلا هذا هو ما فعلته بعمل هذا البرنامج لمساعدتك فى موضوعك علي العموم انا اردت ان اوضح فقط ...... وارجو الاطلاع على البرامج الموجودة فى التوقيع لترى الكثير مما ينفى ما اشرت اليه .... سامحك الله اخى
  5. بسم الله الرحمن الرحيم والصلاة والسلام على اشرف المرسلين نبينا محمد صلى الله عليه وسلم طباعة الشهادات المدرسية ( النسخة الاولى ) تميز الدرجات دون الحد الادنى إما بالتظليل أو بالدوائر الحمراء مميزات البرنامج :: اولا :: تميز الدرجات دون الحد الادنى إما بالتظليل أو بالدوائر الحمراء ثانيا :: عرض أو طباعة شهادة واحدة ثالثا :: عرض أو طباعة كل الشهادات بأمر واحد وليس عدة أوامر سواء للعرض أو الطباعة رابعا :: امكانية اختيار ارقام الشهادات من رقم محدد الى رقم محدد للعرض او الطباعة خامسا :: امكانية اختيار اى ارقام متفرقة من الشهادات للعرض او الطباعة سادسا :: عرض Progress Bar بار افقى لبيان رقم ونسبة مئوية للشهادات اثناء انتاجها ملحوظة_1 :: كود عمل الدوائر الحمراء :: كود مبتكر لا يسبب مشكل سهل الاستخدام يمكن استخدامة منفصلا عن هذا البرنامج ملحوظة_2 :: كود ال Progress Bar بار نسبة التقدم :: كود ايضا مبتكر بسيط ولا يحتاج الى استخدام اكتف اكس او مكتبات الاكسيل يمكن استخدامة منفصلا عن هذا البرنامج الملف بالمرفقات _____________________________.rar طباعة الشهادات المدرسية ( النسخة الثانية ) تميز الدرجات دون الحد الادنى إما بالتظليل أو بالدوائر الحمراء التعديلات التى تمت على النسخة الثانية تصحيح الاخطاْ التى تم اكتشافها انتاج الشهادات فى ورقة منفصلة يمكنك من وضعها فى ملف منفصل تعديل مدى الدوائر الحمراء او التظليل ليعملا مع اى عدد للطلاب اتوماتيكيا بدون تحديد تسريع زمن انتاج الشهادت اضافة تشك بوكس للأختيار بين :: وضع علامة صح له يتم الاحتفاظ بالشهادات المنتجة بدون حذفها عند غلق الملف عدم وضع علامة صح له يتم الغاء الشهادات المنتجة عند غلق الملف للحفاظ على مساحة للملف من الزيادة ______________________________2.rar
  6. الاخ forcast اخى تأثيرات التعديلات الغير مباشرة على حد علمى هى ثلاثة مستويات المستوى الاول :: وهو ما يعرفة جميعنا هو التعديل غير المباشر كما يتم فى موضوعات المنتدى عن العمليات التراكمية وهو مستوى شائع ويسهل التعامل معه لمن يملك المعرفة بذلك المستوى الثانى :: وهو التعديلات الغير مباشر المخفية وتعمل فى خلفية الجهاز المستوى الثانى :: وهو حالة خاصة من النوع الثانى وهو التعديلات بواسطة ارتباط خارجى ولا يقدر على القدرة الا الله سبحانة وتعالى وفوق كل ذى علم عليم يوجد فى اسفل توقيعى بعض الملاحظات التى لا ينتبه لها الكثيرين اقرئها بعناية ومن ضمن ما بها من تعليمات :: لا تضع مثال لعرض مشكلة ما بل ضع الملف الاصلى بسبب اختلاف الكثير من الاوضاع بين المثال والملف الاصلى لا يمكن معرفتها الا من خلال الملف الاصلى وعندما بدأ بحل مشكلتك كان على الامثلة التى بالمشاركة الاصليه لك قبل ان تضع الملف الاخير المتحوى على ارتباطات التحديث والامثله خاصتك تخضع لمعاملات المستوى الثانى ولذلك لم يصل الموضوع الى حل على هذه الامثلة قبل مشاركتى لان الحلول التى اقترها الاخوة تخضع للمستوى الاول كما اقرحت ارجاع قيمة الخلية الى L2 فهذا الاقتراح يقع تحت بند المستوى الاول وهو الاسهل ثم عندما وضعت ملفك الكامل الحقت به الحل لتعديل الاعمدة المتعامل مها فقط رغم ثقتى من عدم تفاعله مع تحديثات النت فملفك الاخير يخضع للمستوى الثالث وكان الحل خاصتى مبنى على المستوى الثانى كما فى المثال المرفق فى هذه المشاركة الذى يوضح المستوى الثانى ملحوظة : هو اول مثال فى المنتدى على هذا المستوى الثانى فكل موضوعات المنتدى التى تدور فى فللك هذا الوضع هى من المستوى الاول ولم يسبق لاحد ان حل مشكلة المستوى الثالث بدون البرامج المساعدة مثل مباشر برو واخوتة ولكن احد الاصدقاء حل مشكلة المستوى الثالث بدون البرامج المساعدة وكان هو الحل الوحيد الذى رأيتة خلال رحلتى مع الاكسيل فأذا تم اتصال بينى وبينه قد تحظى ببعض المساعدة ولكن ليس على وعد منى مثال المستوى الثانى بالمرفقات Omar_____Timer.rar
  7. طال غيابك اخى خبور حمدا لله على عودتك نورت المنتدى
  8. تم فصل هذه المشاركة من احدى الموضوعات
  9. الاخ aah_aah2008 فعلا اخى يقوم البرنامج بعمل معادلات ل 1500 خلية وسيتم تعديلة قريبا بإذن الله
  10. اخى لقد جربت البرنامج على جهاز غير جهازى هو يعمل ارجو تحميل الاداة التالية وتنفيذاها لضبط اعدادات الاكسيل :: استرجاع اعدادات الاكسل الاصلية ربما يكون هناك بعض التغيرات فى اعدادات الاكسيل على جهازك
  11. الاخ aah_aah2008 ارجو تحديد رقم نسخة الاكسيل هل هى 11 ام 12 البرنامج مختبر على اكسيل 11 ويعمل بدون مشاكل وارجو ذكر المسار الكامل للملف مع اسمة على سبيل المثال D:\Documents and Settings\omar_1\Desktop\fileename.xls
  12. شاهد المرفق اخى ارجو عدم توجية الموضوع الى الاسم الشخصى Omar_2.rar
  13. الاخ aah_aah2008 الملف المرفق سابقا ليس به الكود الى ينشئ هذة المعادلات فهذا الملف نيتيجة استخدام برنامج يقوم بتحويل الصيغ الى معادلات وهو احد محاولاتى الفاشلة منذ اكثر من عام ولم يلقى نجاحا وليس بسبب عيب بالبرنامج !!! انظر حولك فستجد البرنامج
  14. رائع اخى مصطفى كمال الاخ amjad شاهد المرفق Omar_Test.rar
  15. الاخ aah_aah2008 اسعدنى جديثك فهو رغبة صادقة قى مساعدة الاخرين و فى نفس الوقت رغبتك واضحة وصريحة فى التعلم وهو الاهم وهذا يفتقر اليه الكثيرين تحت اسباب كثبر ولا يستطيعوا الاعلان او حتى السؤال عما لا يفهمون من امور وهذا الوضوح فى الرغبة الصادقة هو عماد النجاح فى التعلم من الاخرين ولا حرج فى ان نتعلم من بعضنا فسنظل نتعلم حتى لقاء وجة الكريم اما بخصوص الملف فلا تحتاج الى انتاج المعادلات بنفسك فالبرنامج يقوم بإنتاج هذا الكم الهائل من المعادلات اتوماتيكا فى ثوان وقد تم صنع معادلات الملف المرفق سابقا عن طريق هذا البرنامج ولم اكتب المعادلات بنفسى يدويا
  16. مساء الخيرات اخى ابو اسامة الاخ aah_aah2008 جهد مشكور اخى ويمكنك الاستفادة من الكود المختصر التالى Sub Test_1() ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants).ClearContents End Sub ما رأيك فى اسلوب الحماية بدون حماية للمعادلات والعناوين ورؤوس الاعمدة المستخدم فى الملف المرفق امسح المعادلات او العناوين او رؤوس الاعمدة او الورقة بالكامل ونرحب بإى افكار للتطوير Test_.rar
  17. الاخ mfawaz طبعا حل اخوانا كريم صيحيح 100 % ولكن بفضل استخدام الدوال المتخصصة فى مجال الاحصاء :: وهنا يمكنك اختيار احد وضعين متخصصين فى هذا المجال الوضع الاول :: وهو استخدام الدالة FREQUENCY وهى متوفرة فى الاكسيل بدوان اضافة الوظيفة Analysis ToolPak ولكن يجب ادخال صيغة الدالة FREQUENCY كصيغة صفيف اى بعد ادراج الصيغة فى عمود التكرار قم بتحديد نطاق التكرار ثم ضغط مفتاح F2 وبعد ذلك اضغط المفاتيح التالية معا CTRL+SHIFT+ENTER فتحصل على تكرارت الإخوة وفى المرفقات مثال لذلك و هى البيانات ذات الحدود الحمراء الوضع الثانى :: وهو استخدام الدالة Histogram ويجب تركيب الوظيفة الاضافية Analysis ToolPak بعد تركيب الوظيفة :: Analysis ToolPak من قائمة ادوات اختار :: Data Analysis ثم اختار :: Histogram ثم ادخل نطاق البيانات ونطاق البنات او الاخوة مع ملاحظة :: ادا ادخلت عناوين الاعمدة فى النطاقات يجب تفعيل اختيار Labels فى الدالة وبعد ذلك اضغط مفتاح الادخال ستجد الدالة انشأت ورقة جديدة بها المخرجات او فى نفس ورقة البيانات حسب اختيارك كالبيانات فى الصور البسيطة منها وهى ذات الاطار الازرق فى المرفقات ويمكن ان تشمل المخرجات على الرسم البيانى للتكرارات اذا فعلت الاختيار ويمكن ايضا ان تشمل على النسب المئوية او الترتيب حسب التكرارات والملف المرفق يحتوى ايضا على ثلاثة ورقات مسلسلة بأسم Histogram_1 و2 و2 بها بعض اشكال المخرجات التى يمكنك الحصول عليها بإستخدام الدالة Histogram شاهد المرفقات FREQUENCY_Histogram.rar
  18. الاخ hadoosh حدد المدى او الاماكن التى تريد ادرج ال Check Boxes ويجب ان يكون عرض العمود المراد ادراج ال Check Boxes مطابقا لما تريد وايضا حدد عمود الارتباط بال Check Boxes فقد يستطيع احد الاخو المساعدة
  19. جهد مشكور اخى إكسيلجي الاخ ashraff101 شاهد المرفق ملحوظة :: يمكن الاستغناء عن اللون الاصفر اذا اردت ذلك Omar_1.rar
  20. جهد مشكور من الاخوة شاهد المرفق اخى Omar_0.rar
  21. جهد مشكور من الاخوة شاهد المرفق اخى وايضا شاهد الكود Omar_1.rar
  22. اضغط على العنوان التالى لترى شرح السؤال السابق شرح الخاصية Offset
  23. بسم الله الرحمن الرحيم والصلاة والسلام على اشرف المرسلين نبينا محمد صلى الله عليه وسلم شرح الخاصية Offset بسؤال من اخونا justice وهذا رابط سؤال اخونا justice لمن اراد الاستفسار عن بعض النقاط او التعليق على هذه المشاركة التى تخص الموضوع المشار اليه سؤال فى VBA, دالة Offset توضيح :: بالنسبة الى لفظى واتجاة ( اليمين واليسار ) اللذان سيتم استخدامهما فى الشرح هنا هما اتجاهان بالنسبة الى الاوفيس العربى ويكون العمود الاول A جهة اليمين وليس اليسار اما من يعمل على نسخ غير النسخة العربية سيكون لفظى واتجاة ( اليمين واليسار ) معكوسين بالنسبة له بعيدا عن خاصية Offset نحكى معا قبل الشرح :: بفرض انك تجلس فى منزلك ثم احتجت الى بعض الاغراض من سوبر ماركت علاء الدين فقلت لابنك احمد اذهب الى سوبر ماركت علاء الدين واحضر لنا هذه الاغراض فقال لك لا اعرف سوبر ماركت علاء الدين فقلت له هل تعرف منزل صديقى ابو محمد فقال نعم فقلت عند منزل صديقى ابو محمد اذهب شارعين الى الامام ثم ثلاثة شوارع الى اليسار ستجد سوبر ماركت علاء الدين ماذا فعل ابو احمد ليحدد لأحمد مكان السوبر ماركت لأبنة احمد :: اولا :: مكان البداية :: حدد له مكان البداية التى يبدأ منها وهى منزل صديقة ابو محمد ثانيا :: الاتجاه من مكان البدايه الى مكان السوبر ماركت :: لفد قال أبو احمد لأحمد من مكان البديه اتجه شارعين الى الامام ثم ثلاثة شوارع الى اليسار لتصل الى الهدف المراد وهو السوبر ماركت اذن ماذا فعل ابو احمد ليصف لأحمد كيفية الوصول الى الهدف :: لقد حدد له مكان البداية ثم حدد له الاتجاه بمعرفة ( الى الامام ) وايضا ( الى اليسار ) اى تم الوصول الى الهدف عن طريق نقطة البداية والانحراف عنها بمعرفة الاتجاهين االرئيسيين وهما ( الى الامام " الى اعلى " او الى الاسفل ) و ( الى اليسار او الى اليمين ) هذا هو ما يفعله التعبير Offset بالتمام اذن ال Offset نحدد لها مكان البداية ثم نحدد لها قيم الانحراف عن مكان البداية بمعرفة الاتجاهين الرئسيين لنصل الى الهدف لنرى هذا التوضيح ليكون اقرب الى الحقيقة بعض الشئ ماذا يحدث اذا قلت لك اخى العزيز ان تفعل الاتى : افتح ملف اكسيل :: اولا :: ابدأ بالوقف فى الخلية A1 ثانيا :: اتجه الى اسفل عدد 2 صف ثالثا :: اتجه الى اليسار عدد 2 عمود رابعا :: اين تقف الان تعالى معى لنرى ماذا فعلت خطوة خطوة بالترتيب السابق ل 4 خطوات فى اولا :: مكان البداية او نقطة الانطلاق :: ستقف فى الخلية A1 وفى ثانيا :: الانحراف او الاتجاه الاول ( وهو عدد من الصفوف ) :: التى تقول ( اتجه الى اسقل عدد 2 صف ) ستتحرك اولا صف واحد الى اسفل لتصبح فى الخلية A2 وثم تتحرك للمرة الثانية صف واحد ايضا لأسفل لتصبح فى الخلية A3 ( هذا هو اول اتجاه ) وفى ثالثا :: الانحراف الثانى ( و هو عدد من الاعمدة اما جهة اليسار او جهة اليمين ) :: لا تنسى اننا وصلنا الى الخلية A3 وسننفذ البند الثالث الذى يقول ( اتجه الى اليسار عدد 2 عمود ) اذن سنتحرك الى جهة اليسار عمود واحد لنصبح فى الخلية B3 ثم نتحرك مرة ثانية الى جهة اليسار عمود واحد لنصبح فى الخلية C3 اما فى رابعا : نرى اين نحن :: فلن نفعل شئ سوى النظر حولنا لنرى اين نحن الان . سنجد اننا نقف فى الخلية C3 هذا ما تقوم به خاصية Offset :: تعطينا مدى يبعد عن مدى محدد بعدد من الصفوف والاعمدة اى تستخدم لتشير الى خلية او مدى بالنسبة الى خلية اخرى او مدى اخر اى ان الخلية او المدى المشار اليه يبعد عن الخلية الاخرى او المدى الاخر بعدد من الصفوف والاعمدة اى انها تعدل المدى الى مدى اخر بعمل ازاحة عنه بعدد من الصفوف والاعمدة اى انها تحدد لنا مدى جديد بدلا من المدى الاصلى اذن نستطيع بأنفسنا بناء صيغة الخاصية Offset لتكون على الشكل التالى :: Offset(rowOffset:=2, columnOffset:=2) وهذه الصيغة مقبولة فى الاكسيل اذن تعالى معى لنحول الاربع بنود السابقة الى لغة الفجوال بيسك Range("A1").Offset(2, 2).Select اولا :: الامر :: Range("A1") هذا هو مكان البداية او الانطلاق هذا هو المكان الذى سيتم التحرك منه للوصل الى الهدف ثانيا :: الامر :: Offset(2, 2) هذا هو وصف الطريق الى الهدف انطلاقا من مكان البداية ( A1 ) اى انه الخريطة التى من خلالها سنصل الى الهدف ماذا تقول هذه الخريطة : هى تقول كلمتان سحريتان للوصول الى الهدف هم :: اتجه الى اسقل عدد 2 صف اتجه الى اليسار عدد 2 عمود الكلمة السحرية الاولى :: ( اتجه الى اسفل عدد 2 صف ) :: هى الرقم الاول بعد ( Offset ) فى الامر اذن الرقم الاول بعد ( Offset ) هو عدد الصفوف التى سنعبرها الى اسفل ولكن عند التنقل بين الصفوف يمكن ان تكون حركتنا خلالها اما الى اسفل او الى اعلى اذن كيف نعرف هل سنتحرك الى اسفل ام الى اعلى اذا كان الرقم الاول بعد ( Offset ) موجب تكون الحركة الى اسفل اما اذا كان الرقم الاول بعد ( Offset ) سالب تكون الحركة الى اعلى اذن نقوم بتنفيذ هذا الرقم الاول بعد ( Offset ) وهو موجب 2 بعد ان عرفنا الفرق بين اعلى واسفل سيكون تحركنا هو موجب 2 اى الى اسفل 2 خلية احنا بدأنا من الخلية ( A1 ) ونود النزول الى اسفل 2 خلية اذن الجزء الاول من الامر ( Offset ) هو من نقطة البداية ( A1 ) تحركنا صفين الى اسفل فأصبحنا فى الخلية ( A3 ) الكلمة السحرية الثانية :: ( اتجه الى اليسار عدد 2 عمود ) :: هى الرقم الثانى بعد ( Offset ) فى الامر اذن الرقم الثانى بعد ( Offset ) هو عدد الاعمدة التى سنعبرها الى الى اليسار ولكن عند الانتقال بين الاعمدة يمكن ان تكون حركتنا خلالها اما الى اليسار او الى اليمين اذن كيف نعرف هل سنتحرك الى اليسار او الى اليمين اذا كان الرقم الثانى بعد ( Offset ) موجب تكون الحركة الى اليسار اما اذا كان الرقم الثانى بعد ( Offset ) سالب تكون الحركة الى اليمين اى بعد الحركة الاولى التى اشارت الى الخلية ( A3 ) سنشير الى عمودين جهة اليسار اى نشير الان الى الخلية ( C3 ) اذن هذا الجزء من سطر الاوامر الذى نفذناه وهو Range("A1").Offset(2, 2) ماذا يقول بعد ان استوعبنا اتجاهات الحركة الخاصة ب ( Offset ) يقول :: بالانتساب الى الخلية ( A1 ) نحن نشير الى الاتجاه صفين الى اسفل وعمودين الى اليسار يعنى اننا اشرنا الى الموقع الجديد وهو الخلية ( C3 ) يعنى مهمة الصيغة ( Offset ) هى الاشارة الى موقع جديد بالنسبة الى موقع البداية بمعلومية عدد الصفوف و الاعمدة يعنى هى لا تقوم بفعل اى شئ سوى الاشارة الى موقع جديد ثالثا :: الامر ( Select ) :: هو الامر التنفيذى فى سطر الاوامر Range("A1").Offset(2, 2).Select هو اخر امر فى الجملة اى هو الفعل الذى سيتم تنفيذة بعد عملية الوصف او الازاحة اى بعد ان تم الاشارة الى موقع جديد وهو الخلية ( C3 ) قم بأختيارة او الوقف فية اذن خلاصة الامر Offset :: بمعلومية خلية البداية يشير الى خلية جديد تبعد عن خلية البداية بعدد من الصفوف والاعمدة فأذا كان عددها الاول موجب كان الاتجاة عدد من الصفوف الى اسقل فأذا كان عددها الاول سالب كان الاتجاة عدد من الصفوف الى اعلى و اذا كان عددها الثانى موجب كان الاتجاة عدد من الاعمدة الى اليسار و اذا كان عددها الثانى سالب كان الاتجاة عدد من الاعمدة الى اليمين :: :: الى من يختلط عليه اتجاة الحركة بين السلب والموجب ولماذا لم يكن العكس الموجب بدلا من السالب والسالب بدلا من الموجب بالنسبة الى اتجاهات الحركة هذا التوضيح عام بمعنى انه ينطبق على نسخ الاكسيل العربية او غير العربية :: تبدأ ارقام الصفوف بالارقام : 1 - 2 - 3 :: سواء فى نسخ الاوفيس العربية والاجنبية اذن اتجاه ترقيم الصفوف هو الموجب دائما فى اى لغة ويبدأ ترقيم الاعمدة :: C - B - A : اذن اتجاه ترقيم الاعمدة هو الموجب دائما فى اى لغة هذا حتى لا يختلط الامر علينا بخصوص اتجاه السالب والموجب :: :: المثال_1 :: Sub Ex_1() Range("F5").Offset(1, -2).Select End Sub فى سطر الاوامر التالى :: Range("F5").Offset(1, -2).Select يشير الى الخلية جديدة بمعلوية الخلية ( F5 ) وتبعد عنها صف واحد الى اسفل وعمودين الى جهة اليمين اى الخلية ( D6 ) ويختارها اى يذهب اليها المثال_2 :: Sub Ex_2() Range("G10").Offset(-3, -5) = "Officena" End Sub يشير الى لخلية جديدة بمعلوية الخلية ( G10 ) وتبعد عنها ثلاثة صفوف الى اعلى وخمسة اعمدة الى جهة اليمين اى الخلية ( B7 ) ويكتب فيها ( Officena ) المثال_3 :: نتذكر احد الامثلة فى شرح الحلقات التكرارية For...Next وكان كالتالى :: Sub Ex_3() For x = 1 To 3 Range("F" & x) = x Next x End Sub وكان يكتب فى المدى F1:F3 الارقام من 1 إلى 3 سنضيف سطر واحد الى هذا المثال نريد منه انه عندما يكتب فى الخلية F1 يكتب معرفة هذه الخلية كلمة "Officena" فى الخلية G1 وهكذا مع F2 و F3 طبعا بإستخدام دالتنا Offset ستكون المخرجات على الشكل التالى الخلية F1 طبعا ستكون = 1 والخلية G1 ستكون = "Officena" الخلية F2 طبعا ستكون = 2 والخلية G2 ستكون = "Officena" الخلية F3 طبعا ستكون = 3 والخلية G3 ستكون = "Officena" لتحقيق ذلك سنضيف سطر واحد الى المثال السابق قبل Next x وهو :: Range("F" & x).Offset(0, 1) = "Officena" ليكون المثال على المنوال التالى :: Sub Ex_3() For x = 1 To 3 Range("F" & x) = x Range("F" & x).Offset(0, 1) = "Officena" Next x End Sub فى البداية سيكت الرقم 1 فى الخلية F1 بالسطر التالى Range("F" & x) = x ثم هذا السطر المضاف ماذا يقول :: Range("F" & x).Offset(0, 1) = "Officena" بالاشارة الى الخلية نفسها التى كتبت الرقم 1 فى الخلية F1 وهى :: Range("F" & x) اعمل لها ازاحة او انحراف عنها عمود واحد جهة اليسار اى الخلية المجاورة لها جهة اليسار اى :: Range("F" & x).Offset(0, 1) وضع فيها القيمة Officena اى :: Range("F" & x).Offset(0, 1) = "Officena" اى ضع فى الخلية G1 كلمة Offset وهكذا حتى يكمل الدورات الثلاثة لنتقدم خطوة مع خاصية Offset هل تعمل هذه الخصية مع خلية مفردة فقط لا طبعا فالخلية المفردة تعتبر مدى او نطاق مكون من خلية واحدة و الخاصية Offset تتعامل فى الاصل مع المدى سواء كان خلية واحدة او مدى مركب من عدة اعمدة وصفوف اى ( جدول بيانات ) لنرى هذا المثال البسيط الذى نود فيه ان نقوم بالاتى :: نريد ان نكتب كلمة Officena فى المدى A1:B10 وهو مكون من عشرة صفوف وهم من الصف 1 - 10 وعمودين اثنين هما العمود A والعمود B بمعنى انه مدى مكون من عشرون خلية اى عبارة عن جدوال من عشرة صفوف وعمودين ليس من المعقول ان نستخدم For...Next لعمل ذلك عن طريق حلقتين تكراريتين لنرى المثال وهو تمهيد فقط للمثال الخامس المثال_4 :: Sub Ex_4() Range("A1:B10") = "Officena" End Sub يقوم هذا المثال بتعبئة المدى A1:B10 بكلمة Officena دفعة واحدة انسخ المثال الى ملف لتجربتة عظيم حتى الان و واضح المثال_5 :: ولكن ماذا اذا اردنا ان نعمل ازاحة لهذا المدى A1:B10 بمقدار عمود واحد عن موقعة الاصلى ( A1:B10 ) بمعنى بدلا من ان يقوم بتعبئة المدى A1:B10 بكلمة Officena يقوم يتعبئة المدى B1:C10 بكلمة Officena Sub Ex_5() Range("A1:B10").Offset(0, 1) = "Officena" End Sub نرى فى هذا الكود اننا تعاملنا مع هذا المدى كما تعاملنا مع مدى مكون من خلية مفردة نعم فالخاصية Offset مرنة ويمكنها التعامل مع الاوضاع التالية :: مدى مكون من خلية واحدة مدى مكون من مجموهة صفوف واعمدة اى جدول مدى مكون من عدة امدية او نطاقات مجمعة تشمل اى عدد من النوعين السابقين ولنرى مثال لذلك وعليك ان تقوم بالتجربة وتعديل المدى الى اى من الحالات الثلاثة السابقة المثال_6 :: Sub Ex_6() Range("A1:B10,F1:G10").Offset(0, 1) = "Officena" End Sub يحتوى هذا المثال على نطاقين عبارة عن جدولين هما النطاقين :: A1:B1 F1:G10 وسوف يقوم الكود بتعبئة نطاقين جديدين بمعرفة النطاقات السابقه بكلمة Officena على ان تكون النطاقات الجديدة لها ازاحه او انحراف عن النطاقات الاصلية بمقدار عمود واحد Range("A1:B10,F1:G10").Offset(0, 1) وهذه النطاقات بعد الازاحة ستكون B1:C1 بدلا من A1:B1 G1:H10 بدلا من F1:G10 وعليك تطبيق هذا المثال عمليا لترى وتستوعب طريقة عمل الخاصية Offset وايضا لتعرف هل استوعبت هذا الشرح ام هو غير مجدى والى لقاء قريب بإذن الله بصالح دعائكم
  24. مجهود مشكور من الاخوة حل اخونا نزار سليمان صحيح الا فى حالة اذا كانت قيمة الخلية الزرقاء مثلا تساوى 33.09 فيكون ناتج الصيغة هو 33 وهو لا يحقق الشرط المطلوب ولكن يمكن استخدام دالة ROUNDUP المرفق باستخدام دالة ROUNDUP التى تحقق الشرط المطلوب مباشرة __________________.rar
×
×
  • اضف...

Important Information