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

بن علية حاجي

الخبراء
  • Posts

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

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

  • Days Won

    46

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

  1. السلام عليكم ورحمة الله أخي الكريم إذا كان الطلب الأخير يخص تلوين تاريخ آخر درجة مستحقة لكل موظف بلون آخر فيمكنك إلقاء نظرة على الملف المرفق وفيه حلان أحدهما في الورقة الأولى "تلوين تاريخ آخر درجة مستحقة مع العمود الإضافي لرقم هذه الدرجة" وفي الورقة الثانية "تلوين تاريخ آخر درجة مستحقة دون العمود الإضافي"... إن شاء الله يكون هذه المطلوب... أخوك بن علية استحقاق الدرجات4.rar
  2. السلام عليكم ورحمة الله أخي الكريم، أقدم لك حلين في الملف المرفق (الصيغ نفسها ولكن الدوال مختلفة)... أخوكم بن علية Classeur1.rar
  3. السلام عليكم ورحمة الله أخي الكريم بالنسبة للكود الدي وضعه أخي العزيز mas123 (والذي اشتقنا له كثيرا) يمكن تعديله بعد إذن الأستاذ بتغيير الكلمة NULL بالقيمة 0... أخوك بن علية
  4. السلام عليكم ورحمة الله أخي الكريم، لم أفهم ما كنت تريده في الأول، بالنسبة للمعادلة التي وضعتَها في ردك السابق =DAY(DATE(Year;Month+1;1)-1) يمكن تبسيطها على الشكل : =DAY(DATE(Year;Month+1;0) أما الكود فقد تم تعديله بالنسبة لعدد أيام شهر فبراير حسب السنوات ويكون بالشكل : Function MonthNumbers(Optional MIndex) Dim AllNumbers As Variant xx = Day(DateValue("01/03/" & Year(Date)) - 1) AllNumbers = Array(31, xx, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) If IsMissing(MIndex) Then MonthNumbers = AllNumbers Else Select Case MIndex Case Is >= 1 MonthVal = ((MIndex - 1) Mod 12) MonthNumbers = AllNumbers(MonthVal) Case Is <= 0 ' Vertical array MonthNumbers = Application.Transpose(AllNumbers) End Select End If End Function حدث خلل في الرد ولست أدري ما السبب وقد تم تعديله... والله أعلم عدد أيام الشهر.rar
  5. السلام عليكم ورحمة الله أخي الكريم، لا يمكن تلوين خلية الدرجة المستحقة لكل عامل لسبب أنه لا يمكن اشتراكها في سطر واحد... والفكرة التي وجدتها هي إضافة عمود جديد "الدرجة المستحقة الحالية" باستعمال الدالة MATCH تم إدراج رقم الدرجة المستحقة الحالية لكل عامل... أرجو أن تعجبك الفكرة... أخوك بن علية الدرجة المستحقة 3.rar
  6. السلام عليكم ورحمة الله أخي الكريم، لحساب عدد أيام شهر معين في سنة معينة يمكن استعمال المعادلة التالية: =DATE(C1;C2+1;0)-DATE(C1;C2;0) حيث الخلية C1 تحوي السنة (مثال 2011) والخلية C2 تحوي رقم الشهر (مثال 8) أخوك بن علية
  7. السلام عليكم ورحمة الله أخي الكريم والحبيب طارق، الحمد لله أحوالنا جيدة نسأل الله أن يديمها علينا وعليكم وعلى سائر الأمة الإسلامية... ثم إن القاعدة "إذا حضر الماء بطل التيمم" صحيحة جدا في هذه الحالة لقد كنت أنا التيمم وكنت أنت الماء... كيف لنا أن نصل إلى مستواكم بارك الله فيكم وجزاكم الله عنا ألف خير وحفظكم من كل سوء... أخي الكريم، لم أفهم عليك طلبك هذا ألا يصلح ما وضعه أخي الحبيب طارق في رده... ولو كنت تريد تلوين الدرجات التي بلغ تاريخها إتاريخ اليوم (التاريخ الحالي) بلون والتي لم يبلغ تاريخها تاريخ اليوم بلون آخر فلك الملف المرفق التالي... أخوكم بن علية استحقاق الدرجات2.rar
  8. السلام عليكم ورحمة الله أخي الكريم، هذا حل باستعمال الدالة SUMPRODUCT في الملف المرفق... وأنوه أنه يجب أن تكون الأسماء والتسميات متطابقة.... أخوك بن علية 1.rar
  9. السلام عليكم ورحمة الله أخي الكريم، هذا حل باستعمال الدالة DATE في الملف المرفق... أخوك بن علية استحقاق الدرجات.rar
  10. السلام عليكم ورحمة الله أخي الكريم، لقد تم تصحيح الخطأ الذي لم يكن في المعادلة (وقد تم تعديلها لإمكانية سحبها أفقيا وعموديا) إنما كان في تنسيق "نص" لقيم النطاق D4:D20000 من الورقة Sheet1 والذي تم تغييره إلى تنسيق قياسي مع حجز قيم هذا النطاق من جديد (إذا كانت هذه القيم كثيرة ويتعذر حجزها من جديد فتوجد طرق أخرى لتصحيح الخلل)... أخوك بن علية Reservation 2.rar
  11. السلام عليكم ورحمة الله إخواني الكرام، لما رأيت مشاركات أخي الحبيب خبور حفظه الله من كل سوء سعدت كثيرا وسيتم حل المسألة بإذن الله... والكود (ويبقى ثقيلا في التنفيذ) الذي كنت قد حضرته في هذا الشأن يشبه كثيرا كود أخي خبور ... Sub hben() Application.ScreenUpdating = False For J = 3 To 28 For I = 4 To 160 If J Mod 2 = 1 Then Cells(I, J) = Evaluate("SumProduct(( Name = B" & I & ")*(Month =" & Cells(1, J) & ")* Madine)") Else Cells(I, J) = Evaluate("SumProduct(( Name = B" & I & ")*(Month =" & Cells(1, J) & ")* Daine)") End If Next I Next J Application.ScreenUpdating = True End Sub وأسألك أخي خبور عن أمر فكرت فيه مليا (لمعرفتك أكثر بالأكواد) : هل يمكن إنشاء جدول (مصفوفة) عن طريق VBA نخزن فيها نتائج المعادلات ثم بعد الانتهاء منها نقوم بلصقها في النطاق المطلوب من الورقة؟؟؟ أخوكم بن علية
  12. السلام عليكم ورحمة الله أخي الكريم مصطفى، في الحقيقة لم أتوقف عن التفكير في مسألتك وقد قمت بتحضير كود يقوم بالتعويض الذي طلبته لكن للأسف بقي تنفيذ هذا الكود ثقيلا... ولا زلت أفكر وأبحث عن الحل المناسب والسريع إن لم يجد أحد فطاحلة الأكواد حلا لها قبل هذا... وآسف جدا لعدم التوصل للحل... أخوك بن علية
  13. السلام عليكم ورحمة الله أخي الكريم هذه معادلات أخرى لتنويع الحلول... للأحاد: =INT(MOD(A3/1;10)) للعشرات: =INT(MOD(A3/10;10)) للمئات: =INT(MOD(A3/100;10)) للآلاف: =INT(MOD(A3/1000;10)) وهكذا... أخوكم بن علية
  14. السلام عليكم ورحمة الله أخي الكريم أعتقد أن الخلل في المعادلة هو أنه تم إدخال القيم (وخاصة 06:00 و 08:30) على شكل نص باستعمال "" ومعادلة الجمع لا تعتبر النص... لذا أقترح عليك ضرب المعادلة في 1 أي إضافة 1* إلى المعادلة فتصبح المعادلة في الخلية J3: =IF(WEEKDAY(B3;16)=7;0;IF(WEEKDAY(B3;16)=6;"06:00";"08:30"))*1 =1*IF(WEEKDAY(B3;16)=7;0;IF(WEEKDAY(B3;16)=6;"06:00";"08:30")) مع تطبيق تنسيق الوقت hh:mm على هذه الخلايا... ولست أدري كيف تعمل معك الدالة WEEKDAY بالمدخل 16 لأنها لا تقبل إلا 1 (أو فراغا) أو 2 أو 3؟ أخوك بن علية
  15. السلام عليكم ورحمة الله أخي الكريم، هذا حل أول باستعمال الدالة SUMPRODUCT (إن كنت قد فهمت المطلوب).... أخوك بن علية متابعة الأقساط.rar
  16. السلام عليكم ورحمة الله أخي الكريم، إضافة إلى ما وضعه أخي الحبيب أبو أحمد جزاه الله عنا خير الجزاء أقترح أيضا المعادلات التالية بفرض أن العددين موجودين في الخليتين A1 و B1: المعادلة الأولى : =Max(A1:B)-MIN(A1:B1)+1 المعادلة الثانية : =ABS(A1-B1)+1 أو ببساطة (المعادلة الثالثة): =أكبر عدد - أصغر عدد + 1 وفي مثالنا : =155 - 150 + 1 والله أعلم
  17. السلام عليكم ورحمة الله أخي الكريم، إن الرمز "'" في المعادلة هو عبارة عن إضافة العلامة ' (نصية أي بين " ") والعلامة ' يجب وضعها في المعادلات بالنسبة لأسماء الشيتات المركبة من كلمتين أو أكثر (واحدة أمام اسم الشيت وأخرى في نهايته قبل علامة ! ) إذا كان يفصل بين هذه الكلمات علامة من العلامات النصية أو فراغات (عدا العلامة _ ) وبالنسبة للملف الذي يخصك فأسماء الشيتات المستعملة تحوي العلامة - (ناقص) ولذا تجدني وضعت في المعادلة (مثلا) "'"&C$2&"'!$C:$C" الذي تعني : 'Jan-2011'!$C:$C إذا كانت الخلية C2 تحوي الكلمة Jan-2011 الذي هو اسم شيت (مركب) من الشيتات في الملف... والله أعلم
  18. السلام عليكم ورحمة الله أخي الكريم، إن الرمز "'" في المعادلة هو عبارة عن إضافة العلامة ' (نصية أي بين " ") والعلامة ' يجب وضعها في المعادلات بالنسبة لأسماء الشيتات المركبة من كلمتين أو أكثر (واحدة أمام اسم الشيت وأخرى في نهايته قبل علامة ! )ويفصل بين هذه الكلمات علامة من العلامات النصية أو فراغات (عدا العلامة _ ) وبالنسبة للملف الذي يخصك فأسماء الشيتات المستعملة تحوي العلامة - (ناقص) ولذا تجدني وضعت في المعادلة (مثلا) "'"&C$2&"'!$C:$C" الذي تعني : 'Jan-2011'!$C:$C إذا كانت الخلية C2 تحوي الكلمة Jan-2011 الذي اسم شيت (مركب) من الشيتات في الملف... والله أعلم
  19. السلام عليكم ورحمة الله أخي الكريم، الملف بالداخل ما فيه مطلوب.... بن علية
  20. السلام عليكم ورحمة الله أخي الكريم، إذا كنت تريد أن تطبق التنسيق العام على الخلية التي تحوي معادلة تحويل الدقائق إلى ساعات فأقترح عليك استعمال المعادلة التالية: =(INT(A2/60)&","&MOD(A2;60))*1 أخوكم بن علية
  21. السلام عليكم ورحمة الله أخي الكريم، هذا حل آخر باستعمال الدالة SUMPRODUCT في الملف المرفق مع بعض الإضافات (إضافة سطر بالأعلى لترقيم الأشهر، إضفاة بعض التسميات لنطاقات ضرورية....) أخوكم بن علية Statement of Account (21.12.11).rar
  22. السلام عليكم ورحمة الله أخي الكريم، محاولة باستعمال الدالة DATEDIF في الملف المرفق... أخوكم بن علية استمارة 12د.rar
  23. السلام عليكم ورحمة الله أخي الكريم يمكن أيضا استعمال المعادلة التالية: =TEXT(INT(A2/60)&":"&MOD(A2;60);"hh:mm") أخوك بن علية
  24. السلام عليكم ورحمة الله أخي الكريم، يمكن استعمال المعادلة التالية: =TIME(INT(A2/60);(A2/60-INT(A2/60))*60;0) بفرض أن الخلية A2 تحوي القيمة 290 مع استعمال تنسيق الوقت hh:mm على الخلية التي وُضعت فيها المعادلة... والمعادلة تعطي النتيجة 04:50 يجب مراعاة الفاصلة والفاصلة المنقوطة في المعادلة حسب الجهاز... والله أعلم
  25. السلام عليكم ورحمة الله أخي الكريم، تم التعديل على عناوين الجداول لمطابقتها مع أسماء الشيتات وإدخال دالة INDIRECT على المعادلات حسب هذه التعديلات... إن شاء الله يكون في الملف المرفق ما يفي المطلوب ..... أخوك بن علية Indirect_ifs.rar
×
×
  • اضف...

Important Information