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

بن علية حاجي

الخبراء
  • Posts

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

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

  • Days Won

    48

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

  1. السلام عليكم ورحمة الله أخي الكريم، لست أدري إن كان في الملف المرفق ما تريده... هو كود بسيط جدا مرتبط بالزر الذي وضعته يقوم بتغيير قيمة الخلية T1 بالتسلسل والتي هي مرتبطة بمعادلة الخلية B11... أخوك بن علية ورقة.rar
  2. السلام عليكم ورحمة الله أخي الكريم، تم تغيير القائمة المنسدلة الخاصة بالأقسام بالنسمية "الأقسام" بواسطة نطاق ديناميكي (يتغير حسب المدخلات في العمود BD من السطر 23 إلى السطر 52 -الجزء الملون بالأخضر-) يمكنك إضافة أقسام أخرى في هذا الجزء وسيتم بصورة تلقائية إضافة هذه الأقسام في القائمة المنسدلة... تم أيضا تمديد جدولا بيانات الأسدسين إلى 1000... أرجو أن تكون هذه التغييرات مناسبة للمطلوب... أخوك بن علية تحليل نتائج الاختبارات2.rar
  3. السلام عليكم ورحمة الله أخي الكريم، الرجاء إلقاء نظرة على الملف المرفق ربما يكون فيه المطلوب.... أخوك بن علية test_3.rar
  4. السلام عليكم ورحمة الله أخي الكريم، لا يمكنني أن أعرف موطن المشكل ما دام الملف ليس أمامي... وربما يكون من ارتفاع الصفوف (غير كاف لعرض البيانات الأربعة) حاول أن تزيد ارتفاعها لتحتوي أربعة أسطر قبل تنفيذ الكود... أو ربما لم تستوف شروط حجز البيانات... ليس لي فكرة أخرى... أخوك بن علية
  5. السلام عليكم ورحمة الله إخواني الكرام، معذرة ولكن أليس العنوان مخالفا؟؟؟ أخوكم بن علية
  6. السلام عليكم ورحمة الله أخي الكريم الزرقطوني، لست أدري ماذا تقصد بـ "الفصول"، إذا كان المقصود منها "الأقسام" فيمكنك إضافة ما تريد من الأقسام تحت بعض كل قسم على حدى مع تمديد المعادلات في جدولي "الأسدس الأول" و "الأسدس الثاني"... أما جداول الإحصاء المساعدة في ورقة "البيانات" -التي لها علاقة بالقسم المختار في الخلية A17 والأسدس في الخلية A11- لذا ومن الضروري عدم لمسها بأي حال من الأحوال (إلا إذا أردت إضافة إحصاءات أخرى أو التعديل على ما هو موجود في هذه الجداول)... وإذا كان القصد شيئا آخر فأرجو التوضيح... واعلم أخي الكريم أنك لا تزعجني البتة وتجدني في الخدمة بما أستطيع... أخوك بن علية
  7. السلام عليكم ورحمة الله أخي الكريم، إن اختيار القسم في الخلية A17 الغرض منه الحصول على الإحصائيات في الجداول المساعدة ثم في ورقة "النتائج"، أما فيما يخص اختيار القسم في العمود G فهذا يكون مثله مثل البيانات الأخرى أي يجب أن تحجز يدويا إلا أني ربطت خلايا هذا العمود بالقائمة المنسدلة الخاصة بالأقسام لتسهيل حجزها ويجب أن يظهر اسم القسم في كل سطر متسلسلة في نطاق هذا القسم مع كل بياناته مثل ما كان في الملف المرفق حيث وضعت مثالا لقسمين ويمكنك وضع بيانات كل الأقسام في ورقة "البيانات"... أرجو أني فهمت المطلوب واستوفيته... أخوك بن علية
  8. السلام عليكم ورحمة الله أخي الكريم، إن كنت تقصد الترتيب بين الأقسام فهذا غير مهم يمكن أن تبدأ بأي قسم كان من أي مستوى كان... لكن المهم أن تكون بيانات كل قسم تحت بعض (متسلسلة) لا نفرق بينها ببيانات أقسام أخرى حتى تكون خلايا نطاق كل قسم متصلة... أخوك بن علية
  9. السلام عليكم ورحمة الله أخي الكريم، أعتقد أني فهمت المقصود من المطلوب، فقيمتا العمود D هما القيمتان القريبتان من قيمة العمود C : الأولى هي القيمة الأصغر والثانية هي القيمة الكبرى.... أتمتى أني قد فهمت واستوعبت المطلوب... معادلة القيمة الثانية من العمود D هي معادلة صفيف (أي يجب تأكيدها بواسطة CTRL+SHIFT+ENTER)... أخوك بن علية test.rar
  10. السلام عليكم ورحمة الله أخي الكريم، تقول "فالمفروض" وأسأل ما علاقة 50 بـ 90 و 35 بـ 40؟؟؟ أي ما هي علاقة القيمة من العمود C "أساس العملية" مع القيمة الثانية من العمود D؟؟؟ أخوك بن علية
  11. السلام عليكم ورحمة الله أخي الكريم، ألق نظرة على الملف المرفق علك تجد فيه المطلوب.... أخوك بن علية test.rar
  12. السلام عليكم ورحمة الله أخي الكريم، تمت تعديلات على الملف حسب ما اقترحته في ردي السابق قدر المستطاع... يمكنك اختيار الأسدس من الخلية A11 واختيار القسم من الخلية A17 (ملونتين بالأصفر والكتابة بالأحمر) من ورقة البيانات... تم إضافة كود بسيط لإظهار أعمدة الأسدس المختار في الخلية A11 وإخفاء أعمدة الأسدس الآخر... بالنسبة للجدول المساعد في الإحصائيات فقد تم تعديل المعادلات فيه لتغيير النطاقات حسب الأسدس المختار والقسم المختار والمادة بطريقة تلقائية (حذاري من مسح المعادلات في هذه الجداول)... وبعد اختيار الأسدس والقسم من ورقة البيانات يمكنك فتح ورقة "النتائج" وستجد كل البيانات المطلوبة في هذه الورقة حسب الأسدس والقسم المختارين في ورقة البيانات ولا يبقى إلا طباعة هذه النتائج... أرجو أني قربت الفكرة والمطلوب... أخوك بن علية تحليل نتائج الاختبارات1.rar
  13. السلام عليكم ورحمة الله أخي الكريم، لا أعتقد أن لذلك حل، فخاصية "احتواء مناسب" تعتبر أن مضمون كل خلية هي كلمة واحدة (حتى وإن كانت فقرة أو عدة فقرات) فهي تقوم بضغط هذا المضمون لتحتويه الخلية حسب عرضها أو طول المضمون.... والله أعلى وأعلم أخوك بن علية
  14. السلام عليكم ورحمة الله أخي الكريم، أعتقد أنه إذا أردت أن تحتفظ بورقة واحدة للبيانات فيجب تمديدها بإضافة أعمدة للمواد خاصة بالأسدس الثاني وبالنطاقات الديناميكية ننتقل من أسدس إلى آخر... غير أن هذه الورقة "البيانات" ليس لها علاقة بالأقسام ولا بالمستوى مما يدعي تغييرات كثيرة لتتماشى مع المطلوب (هذا حسب رأيي) أما ما يخص النتائج فقد يتم نقل المعلومات فيها بالمعادلات أو بالأكواد... وما يهم الآن هو العمل على ورقة البيانات : إضافة عمود خاص بالأقسام-إضافة الأعمدة الخاصة بالأسدس الثاني-ربط البيانات (الأسدس الأول أو الثاني) بالجداول الإحصائية المساعدة حسب الأقسام وباستعمال النطاقات الديناميكية المناسبة-ربط هذه الجداول بجداول ورقة النتائج... ربما توجد عمليات أخرى غابت عن ذهني) وكل هذا يأخذ وقتا كبيرا... وأطلب منك أن تضيف إلى ملفك في ورقة البيانات عمودا خاصا للأقسام مع بيانات هذه الأقسام (على الأقل قسمين أو ثلاثة للأسدس الأول) كمثال لنا للعمل عليه.... أخوك بن علية
  15. السلام عليكم ورحمة الله أخي الكريم، تم تعديل طفيف على الكود السابق حسب المطلوب (إن كنتُ قد فهمتُه) ولكن يجب أن يبقى شرط حجز البيانات ثابتا (أن تفرق في الخلية الواحدة بين البيانات الأربعة بفراغين على الأقل)... أرجو أن يكون في الملف المرفق ما يروقك ويجيب على المطلوب... أخوك بن علية تنسق الملف1.rar
  16. السلام عليكم ورحمة الله أخي الكريم، إذا كانت الورقة ahmed (بكلمة واحدة) من المصنف نفسه فإن المعادلة تكتب على الشكل: ("INDIRECT("ahmed!$e$"&Q2+1&":$e$81= أخوك بن علية
  17. السلام عليكم ورحمة الله أخي الكريم، أعرف أن الإخوة الأحباء لم يبخلوا بما فضل الله عليهم من علم ومعرفة جازاهم الله خير الجزاء زجعل كل ذلك في ميزان حسناتهم... ولإثراء الموضوع يمكن أيضا استعمال المعادلة التالية في E2 وسحبها للأسفل: =COUNTIF(A:A;"<="&$D2)-COUNTIF(A:A;"<"&$C2) أخوكم بن علية
  18. السلام عليكم ورحمة الله أخي الكريم عباد، الكود الذي اقترحته رائع وجميل جدا وقد كنت أعمل على كود يشبهه كثيرا في الفكرة ولكني لم أكمله... غير أني لاحظت أن الكود يجب تنفيذه مرتين حتى يتم عمله (لملء العمود الرابع) وأعتقد أن السبب هو في ترتيب أوامره (وخاصة فيما يخص المتغير A3) والكود يصبح بعد ترتيب أوامره حسب ما أراه (مجرد رأي) : Public Sub Ali_SumPct() Dim A1, A2, A3 As Variant With Application .ScreenUpdating = False .EnableEvents = False With ورقة1 For r = 2 To .Cells(Rows.Count, 1).End(xlUp).Row A1 = Evaluate("=SUMPRODUCT((تاريخ>=$F$3)*(تاريخ<=$G$3)*(حالة=""صادر"")*(الاسم = " & .Cells(r, 1).Address(False, True) & ")*(عدد))") A2 = Evaluate("=SUMPRODUCT((تاريخ>=$F$3)*(تاريخ<=$G$3)*(حالة=""وارد"")*(الاسم = " & .Cells(r, 1).Address(False, True) & ")*(عدد))") .Cells(r, "B") = A1: .Cells(r, "C") = A2 A3 = Evaluate("= " & .Cells(r, 2) & "-" & .Cells(r, 3) & " ") .Cells(r, "D") = A3 Next End With .EnableEvents = True .ScreenUpdating = True End With End Sub أخوك بن علية
  19. السلام عليكم ورحمة الله أخي الكريم سعيد، لمسة صغيرة جدا على كود الأخ الحبيب عبد الله لتوقيف نسخ المعادلات عند آخر خلية غير فارغة من العمود A ... أرجو أن يروقك هذا التعديل (البسيط جدا) أخوك بن علية تحويل معادلة الى كود.rar
  20. السلام عليكم ورحمة الله أخي الكريم، تم تسمية نطاق البيانات (من العنوان إلى آخر بيانات) بالتسمية Plage باستعمال معادلة بالدالة OFFSET وتم إدراج كود يقوم بتعويض كل 3 فراغات (" ") بفراغين (" ") ثم كل فراغين (" ") بـ (/) ثم يقوم بتحويل كل نص في كل خلية من النطاق بتقسيمه إلى خلايا في الأعمدة المجاورة (4 أعمدة بحساب العمود الأول) حسب الرمز /... الشرط الوحيد أن تفرق بين البيانات (الاسم-العمر-رقم البطاقة-العنوان) بعدة فراغات (على الأقل 3 فراغات -أو 2 فراغات-) أو بالرمز / (وهذا شرط أساسي لعمل الكود).... وأضيفت أيضا بعض التنسيقات التحسينية للأعمدة الأربعة بعد التقسيم .. الكل تجده في الملف المرفق... أرجو أن يكون هذا العمل مستوفيا المطلوب... أخوك بن علية تنسق الملف1.rar
  21. السلام عليكم ورحمة الله أخي الكريم، بهذه المشاركة لم أضف شيئا جديدا وإنما هو حل دمجت فيه حلي أخوايا الحبيبين محمود و رجب جازاهما الله عنا ألف خير... أخوك بن علية مبيعات يوميه2.rar
  22. السلام عليكم ورحمة الله أخي الكريم، لقد تم تعديل المعادلات اللازمة لترحيل (استدعاء) البيانات، والخطأ كان أولا في أنه تم نسخها جملة واحدة ولصقها في ملفك وتركت ارتباطها بالملف الذي نسختها منه وثانيا باعتبار أن المعادلات مرتبطة بخلايا (خلية رقم رتبة العميل-خلية الكود) ولم تقم بتعديل هذه الارتباطات وكان أيضا خلل في تسمية الورقة الأولى في الملف الذي نسخت منه المعادلات تسميتها "ورقة 1" وفي ملفك الأخير تسميتها "ورقه 1" وكل هذه الأمور تجعل المعادلات لا تأتي بثمارها... المهم أنه تم التصحيح والتعديل حسب المطلوب (على ما أعتقد)... تم إضافة كود الطباعة للملف (الذي أصبح من نوع xlmx.) مع تصحيحه حسب الخلية S6 التي تحوي "عدد العملاء". وتم أيضا تحجيم ورقة 2 للبيانات لتحتويها ورقة بحجم A4 حتى تكون لكل عميل ورقة واحدة تحوي جميع بياناته المحولة... وملاحظة أخرى : تبقي أرقام الأكواد التالية : 10801109 ، 10801113 ، 10801114 ، 11001064 موجودة في الورقة 1 وبها بيانات لبعض العملاء ولكنها غير موجودة في الورقة 2 أين تُرحل هذه البيانات... أخوك بن علية ملف مرفق به ملفين أحدهما لنسخة 2007 (أو أعلى) وآخر نسخة 2003 : مشروع تخرج أخير.rar
  23. السلام عليكم ورحمة الله أخي الكريم، يمكن أن تجد للمسألة أكثر من حل، منها استعمال الدالة COUNTIF (كما اقترح أخي العزيز هاني) أو الدالة SUMPRODUCT أو غيرها... وكمثال لاستعمال الدالة COUNTIF أقترح عليك المعادلة التالية بوسائط : =COUNTIF(RANGE;">=MIN")-COUNTIF(RANGE;"<MAX") حيث: RANGE : يمثل نطاق العلامات MIN : أصغر قيمة للمعدل MAX : أكبر قيمة للمعدل مثال : لو فرضنا أن نطاق العلامات هو A1:A100 فإن : 1. عدد درجات التلاميذ المحصورة بين 0 و 10 لا يساوي 10 يعطى بالمعادلة : =COUNTIF(A1:A100;">=0")-COUNTIF(A1:A100;"<10") أو بالمعادلة : =COUNTIF(A1:A100;"<10") 2. عدد درجات التلاميذ المحصورة بين 10 و 20 يعطي بالمعادلة : =COUNTIF(A1:A100;">=10")-COUNTIF(A1:A100;"<20") ويمكن إضافة الرمز = أمام العدد 20 لحساب قيمة المعدل 20 أو بالمعادلة : =COUNTIF(A1:A100;">=10") والله أعلم
  24. السلام عليكم ورحمة الله أخي الكريم، الإجابة على طلب مثل هذا (شرح المعادلات) تجعلنا نتقاعس ونتكاسل وخاصة إذا كانت المعادلات طويلة وذات وسائط كثيرة... ومرة أخرى سأحاول شرح المعادلات (وكود الطباعة) قدر المستطاع... المعادلة في الخلية 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 ، ثم يقوم الكود بطباعة الورقة (بيانات العميل) على الطابعة ويمر بعدها إلى العميل الموالي ويقوم الكود بالعمليات نفسها وهكذا إلى آخر عميل ويتوقف عمل الكود بعد الانتهاء من أمر طباعة بيانات آخر عميل.... أرجو أني وفقت في شرح المعادلات وعمل كود الطباعة... وأسألك وكل إخوتي وأخواتي بالمنتدى أن تدعو الله لي ولأهلي بالشفاء من كل داء وأن تلحو بالدعاء في كل حين... أخوكم بن علية
  25. السلام عليكم ورحمة الله أخي الكريم، تمت تعديلات على الملف وإضافة معادلات كثيرة وأعمدة إضافية (ملونة بالأخضر) للترحيل غير أنه لا يمكن ترتيب القيم المرحلة حسب المبالغ وإنها حسب ظهورها في الجدول (أي حسب رقم الحساب) ولم أجد بدا من ذلك (وأعتذر لذلك)... أخوك بن علية Book1.rar
×
×
  • اضف...

Important Information