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

الزباري

الخبراء
  • Posts

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

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

  • Days Won

    11

كل منشورات العضو الزباري

  1. منور تواجدك يا أ.سعد عابد شاكرين لك أ.سليم حاصبيا، وبصراحة you are lovely vba ولتحقيق مزيد من الديناميكية إليك هذا الكود: Dim i As Date Dim j As Date Range("a1").Select ActiveCell.Offset(1, 0).Select Do Until ActiveCell.Value = "" i = ActiveCell.Offset(0, 0).Value j = ActiveCell.Offset(1, 0).Value If Month(i) = Month(j) - 1 Then Range(ActiveCell, ActiveCell.End(xlToRight)).Borders(xlEdgeBottom).Weight = xlThin End If ActiveCell.Offset(1, 0).Select Loop ActiveCell.Offset(-1, 0).Select Range(ActiveCell, ActiveCell.End(xlToRight)).Borders(xlEdgeBottom).Weight = xlThin ActiveCell.Offset(1, 0).Select المرفق: line end month loop.rar إلى هنا ينتهي الفصل قبل الأخير، ونراكم في الفصل الأخير غداً بإذن الله تعالى
  2. الإجابة في هذا الكود: Dim i As Date Range("a1").Select ActiveCell.Offset(1, 0).Select Do Until ActiveCell.Value = "" For j = 1 To 12 Step 2 i = ActiveCell.Offset(0, 0).Value If Month(i) = j Then Range(ActiveCell, ActiveCell.End(xlToRight)).Interior.ColorIndex = 20 End If Next j ActiveCell.Offset(1, 0).Select Loop المرفق: color odd month loop.rar السؤال التالي: على نفس المثال السابق كيف أعدل الكود ليرسم خط نهاية كل شهر كالتالي:
  3. شكراً على المرفق، التنسيق الشرطي خارج موضوعنا ، نريد أن نتعامل مع دالة Loop، تفضل المرفق: dt.rar وتقبل تحياتي القلبية
  4. سؤال التحدي لهذا اليوم: ما هو الكود الذي يظلل الصفوف بحسب الأشهر الفردية بمعنى يظلل شهر ويترك شهر، كما في المثال التالي:
  5. بصراحة أشكركم على التفاعل البناء، وكنت أنوي أن أُنهي هذه الحلقة، لكني سأسترسل في أمثلة في غاية الأهمية، فلو لاحظتم بأن دالة Loop تختصر الكودات الكثيرة مقارنة بغيرها، وفي الحقيقة أنا لست خبيراً بها، ولكنني بحثت عنها وتعمقت في فهمها، وجمعت خلاصة ما تعلمته في هذا المنتدى من خلال أمثلة واقعية تكون بمثابة مرجع لأعمالكم، نفعني الله وإياكم لكل خير. ترقبوا سؤالنا التالي
  6. الهدف من هذا المثال توضيح بأن الكود التالي يحقق نفس النتيجة: Dim i As Integer For i = 10 To 1 Step -1 x = 11 Cells(i, 1) = x - i Next i حيث أنه لما قلبنا الحلقة واستخدما step-1 لم تقلب النتيجة ، ولكنها بدأت من الصف الأخير إلى الأول
  7. صباح الخير أ.ياسر الكود تبعك خلاها تمشي عدل في جزئية بسيطة ويكون الكود صحيح وتمشي بالمقلوب وتقبل تحياتي
  8. الأخ/ توكل المحترم أشكر اهتمامك في الموضوع وعاوزين منك انه تروينا من الكراسة العجيبة الكود الذي يرتب الأرقم من 1 إلى 10 ولكن هذه المرة بشكل تنازلي كالشكل التالي:
  9. هههههه.. هذه بتلك وكل حل أفضل من الثاني على العموم انتهينا من هذا الفصل وترقبوا الفصل الأخير والذي يحتوي على بعض الألغاز السهلة للدالة وآلية تكوينها بصورة مبسطة. وتقبلوا تحياتي
  10. اسمحلي بهذه الإجابة Dim i As Integer Dim j As Integer j = 0 Do j = j + 1 Loop Until Cells(j, 2).Value = "" For i = j - 2 To 1 Step -1 If Cells(i + 1, 1) = "" Then Range(Cells(i, 1), Cells(i + 1, 1)).Merge Next i طبعاً ينقصها التنسيق..
  11. سؤالنا التالي: سؤال تحدي من أستاذنا سليم حاصبيا.. وبها فكرتين، الأولى العد التنازلي، والثانية الدمج.. بانتظار الإجابة
  12. الإجابة في هذا الكود: Cells.Find("name").Select ActiveCell.Offset(1, 0).Select Do Until ActiveCell.Value = "" If ActiveCell.Offset(0, 1).Value = "student" Then Range(ActiveCell, ActiveCell.End(xlToRight)).Interior.ColorIndex = 20 End If ActiveCell.Offset(1, 0).Select Loop لاحظ أننا استفدنا من عناوين الجدول للتعرف عليه أعتقد بأن الدالة find تبحث على الإسم بجميع صيغه. وتقبل تحياتي
  13. سأزيد المسألة تعقيداً.. انتظر السؤال التالي. لو كان للجدول عنوان ، ويوجد فراغ بينه وبين الجدول، فكيف سنطبق الكود؟ (شاهد الجدول التالي)
  14. حيث أن الكود السابق هو: وكل ما يمكنك التفكير به هو تغيير الكود بداخل المستطيل الأحمر
  15. سؤالنا: ماذا لو غيرنا مكان الجدول، ولم نكن نعرف مكانه بالضبط ، كيف يمكننا تطبيق الكود السابق عليه، كالجدول التالي مثلاً: (زادت المسائل تعقيداً)
  16. السادة الخبراء.. بوركت جهودكم كلها، مهما تعددت الطرق فالنتيجة واحدة وكل الطرق تؤدي إلى روما، لا نشكك في قدراتكم ولا نقلل من شأنكم، بل منكم استقينا هذا العلم، وحتى لا نشتت الفكرة فتم توجيه العمل ليخدم الموضوع بعيداً كل البعد عن كل التفرعات التي تشتت المستفيد، فلو لاحظنا أننا نتعامل مع نفس الكود ولكن بإضافة بسيطة لا تتعدى السطر أو السطرين، حتى تكون سهلة وغير معقدة للقارئ، وثقوا يقينا أنني استفدت من كوداتكم وسأتطرق إلى بعض حيل الكود لاحقا. وتقبلوا تحياتي. ترقبوا سؤالنا التالي بعد قليل.. أعتقد أنه علينا أن نتعامل مع الصف الأول (رؤوس الأعمدة) في تحديد عدد الأعمدة..
  17. الإجابة في هذا الكود: Range("a1").Select ActiveCell.Offset(1, 0).Select Do Until ActiveCell.Value = "" If ActiveCell.Offset(0, 1).Value = "student" Then Range(ActiveCell, ActiveCell.End(xlToRight)).Interior.ColorIndex = 20 End If ActiveCell.Offset(1, 0).Select Loop المرفق: loop_shaddow.rar
  18. جميل ولكنك لم تستفد من الدالة loop للبحث عن نهاية العمود، وهذا هو هدفنا.
  19. الأخ/ سليم حاصبيا المحترم والأخ/أبو حنــــين المحترم يشرفني مروركم، ومشاركتكم، فأنتم سباقون في هذا المجال. اسمحولي أن لا أعتبر إجابتكم صحيحة بالرغم من أنها صحيحة، لأنها لم تحقق ديناميكية الإختيار، حيث قمتم بتحديد 3 أعمدة لتطبيق الكود، فلو قمنا بإنشاء جدول يزيد عن 3 أعمدة فإن الكود يعتبر ناقص. تقبلوا تحياتي
  20. سؤالنا الأخير لهذا اليوم: في المثال السابق ، كيف أجبر الكود بأن يظلل الأسطر التي تحتوي على نوع student كالتالي:
  21. الإجابة في هذا الكود: Range("a1").Select Do Until ActiveCell.Value = "" Range(ActiveCell, ActiveCell.End(xlToRight)).Interior.ColorIndex = 20 ActiveCell.Offset(1, 0).Select Loop الشرح: أولاً: اخترنا الخلية a1 ثانياً: كتبنا حلقة تكرارية تبحث عن الخلايا الفارغة ثالثا: ظللنا الخلايا على يمين a1 إلى أن يجد خلية فارغة (وهذا يمثل عدد الأعمدة) رابعا: نزلنا إلى b1 وطبقنا الفقرة السابقة وهكذا إلى أن نصل إلى آخر صف.
×
×
  • اضف...

Important Information