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

بن علية حاجي

الخبراء
  • Posts

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

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

  • Days Won

    49

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

  1. السلام عليكم ورحمة الله أخي الكريم، الإجابة على طلب مثل هذا (شرح المعادلات) تجعلنا نتقاعس ونتكاسل وخاصة إذا كانت المعادلات طويلة وذات وسائط كثيرة... ومرة أخرى سأحاول شرح المعادلات (وكود الطباعة) قدر المستطاع... المعادلة في الخلية C8 (مثلا) هي: =IF(ISERROR(OFFSET(ورقة1!$A$1;MATCH($B8;ورقة1!$A:$A;0)-1;$I$2));"";IF(OFFSET(ورقة1!$A$1;MATCH($B8;ورقة1!$A:$A;0)-1;$I$2)=0;"";OFFSET(ورقة1!$A$1;MATCH($B8;ورقة1!$A:$A;0)-1;$I$2))) وهي دالة شرطية لاستدعاء بيانات خلايا من الورقة1 معينة بتقاطع عمود (رتبة العميل في الخلية I2) مع صف (رقم سطر الكود) وشرح أجزاء المعادلة يكون كما يلي: * الجزء الأول : IF(ISERROR(OFFSET(ورقة1!$A$1;MATCH($B8;ورقة1!$A:$A;0)-1;$I$2));""; الذي يعني أنه في حالة إرجاع عملية البحث قيمة الخطأ (وهذا في حالة عدم وجود الكود من الخلية B8 في العمود A من الورقة 1) فإن المعادلة ترجع فراغا ""... يمكن استبدال هذا الجزء بالجزء: IF(ISERROR(MATCH($B8;ورقة1!$A:$A;0));""; * الجزء الثاني من المعادلة: IF(OFFSET(ورقة1!$A$1;MATCH($B8;ورقة1!$A:$A;0)-1;$I$2)=0;"";OFFSET(ورقة1!$A$1;MATCH($B8;ورقة1!$A:$A;0)-1;$I$2)) وهذا الجزء يشتغل في حالة ما إذا كان شرط الجزء الأول غير متوفر أي في حالة وجود الكود من الخلية B8 في العمود A من الورقة 1، فيقوم بالبحث عن مضمون الخلية من الورقة1 (التي تعينها الدالة OFFSET انطلاقا من الخلية A1 من الورقة 1) التي هي تقاطع السطر (رقم سطر الكود في العمود A من الورقة 1) الذي يعينه الجزء MATCH($B8;ورقة1!$A:$A;0) والعمود (رقم عمود ترتيب العميل) الذي تعطيه الخلية I2 ويكون اختبار لهذه القيمة إذا كانت فارغة فترجع المعادلة فراغا وإذا كانت غير فارغة فترجع المعادلة مضمون الخلية المعينة... أرجو أني قربي شرح المعادلة الموجودة في C8 والتي تم سحبها للأسفل ثم تم نسخها في العمود F أمام الخلايا من العمود E التي تحوي أكوادا... بالنسبة لكود الطباعة فهو كود بسيط جدا وشرحه كما يلي: الكود: Sub Printing() Dim I As Integer For I = 1 To [I1] If I <= [I1] Then [I2] = I Activewindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False End If Next End Sub بفرض I متغيرا طبيعيا يقوم بتغيير I من القيمة 1 (أول عميل) إلى مضمون الخلية I1 (التي كتبت فيها معادلة باستعمال الدالة COUNTA تحصي عدد العملاء)... إذا كانت قيمة I أصغر من أن تساوي مضمون الخلية I1 فيضع هذه القيمة في الخلية I2 التي تعتمد عليها الخلية C5 (اسم العميل) بتغيير اسم العميل حسب ترتيبها وتعطيه المعادلة الموجودة في هذه الخلية بالدالة INDEX والتي هي : =INDEX(ورقة1!$1:$1;0;$I$2+1) وبالتالي تتغير كل البيانات المرحلة في الجدول حسب هذا العميل أي حسب العدد في الخلية I2 ، ثم يقوم الكود بطباعة الورقة (بيانات العميل) على الطابعة ويمر بعدها إلى العميل الموالي ويقوم الكود بالعمليات نفسها وهكذا إلى آخر عميل ويتوقف عمل الكود بعد الانتهاء من أمر طباعة بيانات آخر عميل.... أرجو أني وفقت في شرح المعادلات وعمل كود الطباعة... وأسألك وكل إخوتي وأخواتي بالمنتدى أن تدعو الله لي ولأهلي بالشفاء من كل داء وأن تلحو بالدعاء في كل حين... أخوكم بن علية
  2. السلام عليكم ورحمة الله أخي الكريم، تمت تعديلات على الملف وإضافة معادلات كثيرة وأعمدة إضافية (ملونة بالأخضر) للترحيل غير أنه لا يمكن ترتيب القيم المرحلة حسب المبالغ وإنها حسب ظهورها في الجدول (أي حسب رقم الحساب) ولم أجد بدا من ذلك (وأعتذر لذلك)... أخوك بن علية Book1.rar
  3. السلام عليكم ورحمة الله أخي الكريم، بعض التعديلات على الملف وتصحيح بعض الأخطاء (أرقام أكواد محجوزة بتنسيق نص تم تعديلها - أرقام كود مكررة تم حذفها - أرقام أكواد غير موجودة تم إضافتها باللون الأحمر) مع إضافة المعادلات المناسبة للترحيل والطباعة الكلية للعملاء وفق عددهم (الخلية I1) ورقم ترتيبهم (I2).... أرجو أني وفقت في تقريب الحل... أخوك بن علية مشروع تخرج.rar نسخة لأوفيس 2003 للاستفادة: مشروع تخرج.rar
  4. السلام عليكم ورحمة الله أخي الكريم محمود، والله أتحفتنا بهذه المعادلات الرائعة وقد وقفت منبهرا لهذه المعادلات، وهذا يعني أن لا حدود في الإكسيل للمعادلات والأكواد وما تعلمناه في الإكسيل (وفي غيره) إلا جزء ضئيل والطريق مازال طويلا... المهم أشكرك على تقاسمك لنا هذه الأفكار الجميلة والرائعة... وقد قمت أيضا بتوظيف آخر لهذه المعادلات (تطبيقا على الملف المعدل لأخي الحبيب طارق) بربطها بالتوقيت اللحظي لتوقيت الجهاز بالاستعانة بكود من النت لتغيير الوقت في الخلية AK1 في الملف المرفق... والتوقيت يبدأ بمجرد فتح الملف ولم أضع له ما يوقفه (زر توقيف) حتى أن غلق الملف لا يتم إلا بالضغط على حرف X بأعلى النافذة وليس بالطرق المعتادة لغلق الملفات... أخوكم بن علية من عجائب المعادلات3.rar
  5. السلام عليكم ورحمة الله أخي الكريم عيد مصطفى، تم تعديل الكود حسب المطلوب حيث يقوم الكود بتحديد الورقات (الشيتات) المعنية وتطبيق الشروط عليها ثم معاينتها قبل الطباعة (أو طباعتها) ثم إعادة إظهار الصفوف التي تم إخفاؤها... أرجو أن تروقك هذه التعديلات وتفي بالمطلوب... أخوك بن علية Edit Print (5).rar
  6. السلام عليكم ورحمة الله أخي الكريم، كان من المفروض أن تلقي نظرة على الرابط : http://www.officena.net/ib/index.php?showtopic=45010 ... المهم وضعت لك في الملف المرفق المعادلات اللازمة للمطلوب فقط (كتابة رقم اللجنة أمام كل طالب في ورقة Control حسب عدد الطلبة في كل لجنة)... أخوك بن علية Book.rar
  7. السلام عليكم ورحمة الله أخي الكريم عيد مصطفى، أعرف أني تأخرت عليك بالرد ولكن لظروف خاصة، قمت ببعض التعديلات على الكود السابق الذي (بفضل الله) جعلته يقوم بتحديد كل الأوراق (الشيتات) المراد طبعها (معاينتها قبل الطباعة) بعد توفير الشروط المطلوبة على نطاقات معينة لإخفاء الصفوف (وهذه العملية تبطئ قليلا عمل الكود نظرا لعدد الخلايا في هذه النطاقات)... تم ربط الكود بزر الطباعة الموجود في كل ورقة... أرجو أني فهمت المقصود من المطلوب هذه المرة... أخوك بن علية Edit Print (4).rar
  8. السلام عليكم ورحمة الله أخي الكريم عيد مصطفى، لست أدري إن كنت قد فهمت المطلوب هذه المرة... قمت بإنشاء 3 نطاقات مسماة Plage3، Plage2، Plage1 وهي النطاقات المعنية في الأكواد في الأوراق الثلاثة (يمكنك التأكد من هذه النطاقات في خاصية "التسميات")... وفي الكود (الموحد) تم إضافة شرط بالدالة IF لإنشاء النطاق MyRange بإحدى التسميات السابقة حسب الورقة (الشيت) المختارة وباقي الأوامر بقيت على حالها مع تعديل طفيف في سطر إعادة إظهار الصفوف التي تم إخفاؤها قبل الطباعة (أو المعاينة قبل الطباعة)... وزر الطباعة في كل ورقة أصبح مرفقا بكود واحد فقط... أرجو أني فهمت واستوفيت المطلوب... أخوك بن علية Edit Print (3).rar
  9. السلام عليكم ورحمة الله أخي الكريم، تمت تعديلات أخرى على الورقات حتى تتماشى والمطلوب الجديد (تخصيص عدد الطلبة في اللجان)... ومن بين التعديلات ما يلي : -- في ورقة "البيانات" * تجد خلايا ملونة بالأخضر بها معادلات ضرورية (لا تُحذف ولا تُبدل) وهي تلقائية (حسب التخصيصات) * تجد أيضا خلايا ملونة بالأصفر لتخصيص عدد الطلبة في اللجان وتحجز يدويا (اللجان التي عدد الطلبة فيها 19 طالب تُترك فيها الخلايا -الملونة بالأصفر- فارغة) * تم إضافة تنسيق شرطي في جدول البيانات بتلوين سطر بداية كل لجنة باللون الأزرق... -- في ورقة "اللجان" : تم تعديل المعادلات فيه وتمديد الجدول إلى 24 سطر... إن شاء الله تروقك هذه التعديلات... أخوك بن علية قوائم مناداة.rar
  10. السلام عليكم ورحمة الله أخي الكريم، أنظر إلى الملف المرفق لعل فيه المطلوب! أخوك بن علية 123.rar
  11. السلام عليكم ورحمة الله أخي الكريم، تم حذف القائمة المنسدلة في الخلية B6 واستبدالها بمعادلة متعلقة بالتسمية Names والخلية R1 وإظافة كود لطباعة كل التقارير من 1 إلى قيمة الخلية T1 (عدد الأعضاء)... أرجو أن تروقك هذه التعديلات... أخوك بن علية بيانات الجيم.rar
  12. السلام عليكم ورحمة الله أخي الكريم، بعض التعديلات على شيتات المصنف مع إضافة معادلات تقوم بالمطلوب... تم أيضا إضافة كود خاص بطباعة كل اللجان... إذا كانت هناك ملاحظات على تقسيم اللجان (عدد الطلبة في كل لجنة) فتجدني (أو أحد غيري) إن شاء الله في الخدمة للتعديل على الملف حسب الطلب... أخوك بن علية مناداه فارغ.rar
  13. السلام عليكم ورحمة الله أخي الكريم، تم تلبية طلب واحد "ربط بيانات ورقة 3 مع جدول الورقة 2" بالنسبة للطلبات الأخرى فهي غير مفهومة، الرجاء توضيحها أكثر... أخوك بن علية 123.rar
  14. السلام عليكم ورحمة الله أخي الكريم، عذرا لهذا الخلل غير المقصود والذي سببه النت عندنا، فقد كتبت ردودي على مواضع والنت ينقطع كل دقيقتين... المهم الملف تم إرفاقه مع هذا الرد (رغم أني صححت الرابط في الرد السابق) أرجو أن لا تجد مشكلة في تحميله... ومعذرة مرة أخرى... أخوك بن علية تقرير1.rar
  15. السلام عليكم ورحمة الله أخي الكريم، كان من المفروض أن تقوم بالتعديلات (إضافة الأعمدة) على الملف السابق الذي تم وضع المعادلات فيه ولكنك فتحت ملفا جديدا وحتى صفحاته وتنسيقاته مختلفة لذا قمت بالكثير من التعديلات على ورقة "الكميات" (خاصة) والورقات الأخرى... تم أيضا تعديل طفيف على المعادلات التي تجلب البيانات المطلوبة (لتكون شبه تلقائية عند سحب المعادلات إلى اليسار وإلى الأسفل)... أرجو أن يفي هذا العمل بالمطلوب... ملاحظة: قد وضعت شرحا آخر (الشرح كان في ردين متتابعين) لكتابة المعادلات في ورقتي "التقرير الشهري" و"التقرير السنوي" استكمالا للشرح في موضوع جديد قبل هذا الرد وبالأمس كان موجودا بين الردود ولكن تفاجأت بعدم وجوده، لست أدري إن كان قد حدث خلل في المنتدى بالأمس أم أن أحد الإخوة من الإدارة قام بحذف الرد بالخطأ ظنا منه أن الرد مكرر لتشابهه مع الرد السابق له بالشكل والتنسيق... أخوك بن علية تقرير1.rar
  16. السلام عليكم ورحمة الله أخي الكريم عيد مصطفى، فهمت قصدك جيدا وقد تم الحل في الملف المرفق... أخوك بن علية Edit Print (2).rar
  17. السلام عليكم ورحمة الله أخي الكريم، معذرة للتأخر في الشرح والرد (شرح معادلة ليس بالأمر الهين) ولكن سأحاول تبسيط الشرح قدر المستطاع المعادلة في الخلية C4 في ورقة كل عميل هي: =INDEX($C$7:$C$1000;LARGE(IF(($C$7:$C1000<>"")*($A$7:$A$1000=$A$4);ROW($7:$1000)-6);1)) التي ترجع مضمون خلية من النطاق C7:C1000 (عمود التاريخ) حسب أكبر رقم (أكبر ترتيب) السطر الذي يرجعه الجزء من المعادلة : (LARGE(SI(($C$7:$C1000<>"")*($A$7:$A$1000=$A$4);ROW($7:$1000)-6);1 بتوفر شرطين : الشرط الأول ("" <> C7:C1000) وهذا يعني خلايا النطاق C7:C1000 (عمود التاريخ) غير فارغة والشرط الثاني (A7:A1000=A4) والذي يعني أن تكون قيمة الرصيد من النطاق A7:A1000 (عمود الأرصدة) مساوية لقيمة الرصيد (آخر رصيد) في الخلية A4.... العدد (6 -) المضاف في المعادلة بعد (ROW($7:$1000 لجعل الترتيب (ترتيب الأسطر) يبدأ من 1 لأن النطاق 7:1000 بدأ من 7 العدد 1 في آخر المعادلة لترجع دالة LARGE أكبر القيم... والجزء (LARGE(SI(($C$7:$C1000<>"")*($A$7:$A$1000=$A$4);ROW($7:$1000)-6);1 يمكن استبداله بالجزء ((MAX(SI(($C$7:$C1000<>"")*($A$7:$A$1000=$A$4);ROW($7:$1000)-6 أرجو أني وفقت في الشرح أخوك بن علية
  18. السلام عليكم ورحمة الله أخي الكريم، اعذرني للتأخر بالشرح والرد، سأحاول -حسب المستطاع- شرح كتابة المعادلات في أوراق التقارير الثلاثة (الأسبوعي-الشهري-السنوي) في حالة إضافة أعمدة أخرى للعمليات في كل موقع (عدد الأعمدة ثابت في كل موقع)... * ورقة "التقرير الأسبوعي" (معادلات السطر العاشر) ** حالة عمودين (حفر - تمديد) - في الخلية B10 =OFFSET(الكميات!$C$1;;2*($A10-1)) - في الخلية E10 =OFFSET(الكميات!$C$1;MATCH("الاسبوع "&$G$5;الكميات!$A:$A;0)-1;2*($A10-1)) - في الخلية F10 =OFFSET(الكميات!$C$1;MATCH("الاسبوع "&$G$5;الكميات!$A:$A;0)-1;2*($A10-1)+1) ** حالة أعمدة أكثر (3 أعمدة مثلا) : المعادلات تصبح: - في الخلية B10 =OFFSET(الكميات!$C$1;;3*($A10-1)) - في الخلية E10 =OFFSET(الكميات!$C$1;MATCH("الاسبوع "&$G$5;الكميات!$A:$A;0)-1;3*($A10-1)) - في الخلية F10 =OFFSET(الكميات!$C$1;MATCH("الاسبوع "&$G$5;الكميات!$A:$A;0)-1;3*($A10-1)+1) - وفي الخلية G10 (العمود الثالث) =OFFSET(الكميات!$C$1;MATCH("الاسبوع "&$G$5;الكميات!$A:$A;0)-1;3*($A10-1)+2) لاحظ أن المعادلات في حالة عمودين كان عامل الضرب 2 وفي حالة ثلاثة أعمدة عامل الضرب أصبح 3 مع إضافة معادلة (العمود الثالث G) مثل العمود الذي يسبقه والاختلاف الوحيد بينهما هو 1 + و 2 + *** وفي حالة أربعة (معامل الضرب هو 4) أعمدة تكون المعادلات في الخلايا H10 ، G10 ، F10 ، E10 ، B10 على الترتيب كما يلي : =OFFSET(الكميات!$C$1;;4*($A10-1)) =OFFSET(الكميات!$C$1;MATCH("الاسبوع "&$G$5;الكميات!$A:$A;0)-1;4*($A10-1)) =OFFSET(الكميات!$C$1;MATCH("الاسبوع "&$G$5;الكميات!$A:$A;0)-1;4*($A10-1)+1) =OFFSET(الكميات!$C$1;MATCH("الاسبوع "&$G$5;الكميات!$A:$A;0)-1;4*($A10-1)+2) =OFFSET(الكميات!$C$1;MATCH("الاسبوع "&$G$5;الكميات!$A:$A;0)-1;4*($A10-1)+3) وهكذا.... شرح كتابة المعادلات في الأوراق الأخرى يتبع في رد آخر.... أرجو أني وفقت في الشرح... أخوك بن علية
  19. السلام عليكم ورحمة الله أخي الكريم، تم تعديل في الورقة "1" بإضافة عمود في بداية الجدول وضعت فيه معادلة لتكرار قيم العمود C (سابقا) (ملون بالأخضر) وكود حماية الورقة (لأجل العمود A الذي تركت خلاياه محمية) هو 123... ومعادلة VLOOKUP في الورقة الثانية أضفت لها جزء بالدالة MATCH للقيام بعملية "اختبار وجود / عدم وجود قيمة البحث في العمود A من ورقة البيانات"... أرجو أن يفي التعديل بالمطلوب... وتجد أيضا دوالا أخرى مخصصة (دوال بحث) بديلة عن دالة VLOOKUP من عمل أخينا الحبيب والعزيز "عبد الله باقشير" وتسمح بالبحث عن قيمة في أي عمود من جدول بيانات يمكنك أن ترجع إليها... أخوك بن علية 1.rar
  20. السلام عليكم ورحمة الله أخي الكريم، تم عمل المطلوب باستعمال المعادلات في الملف المرفق... وقد تركت في ورقة "التقرير الأسبوعي" قائمة أرقام الأسابيع لإنشاء قائمة منسدلة غير مكتملة فالرجاء إتمامها إلى آخر أسبوع من السنة... أرجو أن يكون هذا العمل مستوفيا المطلوب... أخوك بن علية تقارير.rar
  21. السلام عليكم ورحمة الله أخي الكريم، إن من شروط الدالة VLOOKUP أن تكون قيمة البحث موجودة في العمود الأول في نطاق البحث.... لذا قمت باستبدال الدالة VLOOKUP بالدالة INDEX مع الدالة MATCH... أرجو أن يكون التعديل موافقا للمطلوب. أخوك بن علية 1.rar
  22. السلام عليكم ورحمة الله أخي الكريم عيد مصطفى، قمت بتعديل على المعادلات حسب المطلوب في النطاق J103:U104 فقط، وإن لاق بك التعديل يبقى لك نسخ المعادلات في النطاقات الأخرى... ومعذرة لعدم الرد قبلا لأني كنت منذ الصباح منشغلا كثيرا... أخوك بن علية If Correction 4.rar
  23. السلام عليكم ورحمة الله أخي الكريم عيد مصطفى، وضعت بالملف المرفق كودا يقوم بإخفاء صفوف الخلايا الفارغة من العمود U في النطاقات التي ذكرتها ثم يقوم بالمعاينة قبل الطباعة (أو يمكن تغيير هذا الأمر بأمر الطباعة غير المفعل في الكود) وبعد المعاينة(أو الطباعة) يعيد إظهار كل الصفةف التي تم إخفاؤها... أرجو أن يكون هذا هو المطلوب أو بعض منه... أخوك بن علية Edit Print.rar
  24. السلام عليكم ورحمة الله أخي الكريم عيد مصطفى، حسب فهمي للمسألة تم تعديل المعادلات في النطاق J5:U6 (سطرين) فقط، أرجو أن يكون فعلا هذا المطلوب وفي هذه الحالة ينبغي تمديدها في النطاقات الأخرى... وإن لم يكن كذلك فأرجو الشرح أكثر حتى يتسنى لنا وضع المعادلات المناسبة للمطلوب... أخوك بن علية If Correction 3.rar
  25. السلام عليكم ورحمة الله أخي الكريم، تم المطلوب في الملف المرفق... أخوك بن علية تسلسل.rar
×
×
  • اضف...

Important Information