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

AbuuAhmed

الخبراء
  • Posts

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

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

  • Days Won

    17

كل منشورات العضو AbuuAhmed

  1. دالة أخيرة في حال أن السائل لا يريد جبر النصف إلى واحد، وهي تعتمد على دالة الإكسل: Function vbCEILING(ByVal Arg1 As Double, ByVal Arg2 As Double) As Double 'AbuuAhmed Arg2 = Abs(Arg2) * Sgn(Arg1) 'اختياري vbCEILING = WorksheetFunction.Ceiling(Arg1, Arg2) End Function
  2. اختارها السائل ناسبت السائل استحسنها السائل راقت للسائل أو اقتراح أبو خليل اعتمدها السائل
  3. ألم يطلب السائل أن يجبر النصف إلى واحد صحيح؟ أين تحقق هذا في الاختيار والثاني!! وبدل أن تناقش الأمر بشكل علمي تكلمني عن متلازمة أفضل إجابة!! وعن التوسع!! بدون التوسع لم يفي أحدكم بطلبه والرجل نفسه ما يدري وين الإجابة المناسبة واعتمد على القرعة!.
  4. أشكركم أستاد @Foksh على اهتمامكم، حاول تعدل على ملف الإكسل بإزالة دالتك القديم واستبدالها بالحديثة واطلعنا على المقارنة. أنا عملت دالة vba أخرى باستخدام دوال الإكسل ولو كنت أعرف عنها قبل دوالي الأربع للأكسس لما أجهدت نفسي في تصميمها.
  5. يا لحساسية هذه المواضيع والتي أحاول أن أتجنب الظهور فيها، قبل أن أشارك راسلت السائل وقدمت له دالتي وسمحت له بنشرها دون ذكر اسمي، ولكن في الأخير حسمت قراري بالمشاركة. أكثر الأخطاء حصلت بسببين: الأول: أن أكثركم ذهب لمعالجة الكسر إذا كان أصغر من نصف أو (أكبر أو يساوي نصف) ولكن غفل عن الكسر إذا كان صفرا والذي لا يحتاج إلى معالجة. الآخر: عدم اختبار دوالكم مع الأرقام السالبة، وهذه تحتاج إلى مزيد من العناية والحرص ومعرفة تامة بالتعامل مع دالتي int و fix أو trunc في لغات أخرى. عموما مهما تعملق المبرمج فلن ينجح دائما من صنع دوال الأرقام والتاريخ من أول محاولة وبدون تجارب ومقارنات عدة. لا تغلقون الموضوع قبل إزالة أفضل إجابة واتركوها للمختصين في الرياضيات والهندسة والمحاسبة.
  6. لقد كتبت في مشاركتي السابقة أنها ستكون الأخيرة في هذا الموضوع، ولكن، بما أن هذا الموقع علمي وتعليمي، فلا بد أن يكون اختيار أفضل حل علميا وخصوصا أن الموضوع له علاقة بالرياضيات والحكم على الحلول من نتائجها. لا أعرف من اختار أفضل إجابة فإذا كان هو السائل فأنصحة بأن هذه الأمور العلمية غير خاضعة للاستحسان والمزاج. الأكواد منشورة والنتائج أيضا ولا يوجد مجال للمجاملات، تستطيع الامتناع عن اختيار أفضل إجابة وهو غير إجباري أفضل من هذا الاختيار غير الصائب وغير الموفق. أقل متعلم درس الرياضيات يعرف أن الاختيار خاطئ.
  7. مشاركتي الأخيرة في هذا الموضوع ملخص مقارنة لجميع المشاركات في ملف إكسل وصورة. الدالة المذكورة ومثيلاتها الثلاث صممت للأكسس مع تطابق تام مع دوال الإكسل بقدر الاستطاعة، وملف الإكسل ما هو إلا وسيلة للمقارنة فقط. موفقين جميعا، أنا لم أغادر أوفيسنا، ومتواجد في منتدى الإكسل لمن يريد متابعتي. CustomCeiling_01.xlsm
  8. كنت أبحث عن موضوع سابق لي لعمل بعض الدوال شبيهة للإكسل ووجدتها بعد وقت طويل. استخدمت أحد الملفات وزدت عليه دالتك، أرجو الاطلاع. CeilingFunction4Access_04.xlsm
  9. يا هلا بيك وشكرا لك. وجدت في جهازي دالة بنفس اسم دالة الإكسل وأداؤها أفضل من دالة الإكسل حيث في الأرقام السالبة لا يحتاج أن يكون الكسر (Factor) سالب لتعطي نتائج صحيحة. الدالة ليست من عملي، وزدت بداية اسمها حرفين vb لتمييزها عن دالة الإكسل. Public Function vbCeiling(ByVal X As Double, Optional ByVal Factor As Double = 1) As Double ' X is the value you want to round ' is the multiple to which you want to round vbCeiling = (Int(X / Factor) - (X / Factor - Int(X / Factor) > 0)) * Factor End Function لهذا الموضوع تكون قيم Factor نصف أي 0.5 جربوها.
  10. عملت دالتين أحدهما مختصرة ولكنها فشلت في تقريب النصف، لذا استبعدتها. الدالة الأطول والأدق: Function myRound(ByVal Expression As Double) As Double Dim SgnVal As Integer Dim frac As Double SgnVal = Sgn(Expression) Expression = Abs(Expression) frac = Expression - Fix(Expression) If frac >= 0.5 Then frac = 1 If frac > 0 And frac < 0.5 Then frac = 0.5 myRound = (Fix(Expression) + frac) * SgnVal End Function
  11. تعديلي كان في العمود (J) فقط.
  12. المرفق حسب فهمي لمطلبك: DC_02.xlsx
  13. أعتذر عن التكملة، لقد بذلت جهدا في الصفحة وبعد أن انتهيت اكتشفت أن هناك نموذج مرتبط بها. اسمح لي لم يكن الأمر واضح لي منذ البداية موفق أخي.
  14. هناك هفوة، لتصحيحها بدلوا: For row = 2 To lRow Cells(row, 3) = (row - 2) Mod 5 + 1 Next row إلى: For row = 2 To lRow Cells(row, 3) = (row - 2) Mod Classes + 1 Next row
  15. معادلة معرفة المتبقي من الأيام: تاريخ انتهاء المستنيد - Today()
  16. اطلع على المرفق التالي فبه احتمالين ربما الآخر يلامس مطلبك. ترحيل_04.xlsx
  17. لا أفهم الحاجة لموضوع الثلاثين يوم هذه محاولة بدون "العبث" بنتائج التاريخ ترحيل_03.xlsx
  18. لا تحكموا على ما أقصده من العنوان، فالمعنى المقصود في نص الموضوع ضمنا. فالتلفزيون مثلا اختراع مذهل ولكن ليس هنا في مواقع البرمجه مكانه. لن ترى تاجر موكيت يفتح نشاطا لغسيل الموكيت والفهم عليكم. فالذكاء الاصطناعي مهم جدا ويحتاج إلى مواقع متخصصة فيه وليس هنا مكانه أيضا. نحن نتكلم العربية يا سادة.
  19. نصيحة لوجه الله لا تشجعون على استعمال هذه المواقع وخصوصا المهتمين بالبرمجة، هذه ستعطل عقولكم عن التفكير والإبداع واحتراف كتابة الأكواد/الشفرات. يمكن اللجوء لهذه المواقع عند فشل صناع الشفرات لحل مشكلة ما، علما أن ما تقدمه هذه المواقع ما هو إلا تجميع مقنن لعمل مبرمجين آخرين. أتوقع لا سمح الله بعد عشر سنوات من الآن لن تجدوا من يجيد كتابة الأكواد وسترون مبرمجين زائفين يمكن بالكثير نطلق عليهم معدو برامج، وربما ستغلق مواقع البرمجة لعدم جدواها العلمي. موفقين.
  20. هدية مني لكم هذا كود يختصر الوقت لمستخدمي النافذة الفورية حيث يمسح كامل النصوص/المخرجات السابقة قبل أي إرسال نصوص أو مخرجات جديدة جربوه وزودونا بأي مشاكل تواجهونها للتعديل عليه. Sub DebugClear() 'AbuuAhmed 2024/11/01 Dim WshShell As Object Set WshShell = CreateObject("WScript.Shell") With WshShell .SendKeys "^g", True .SendKeys "^a", True .SendKeys "{DEL}", True End With Set WshShell = Nothing End Sub
      • 1
      • Like
  21. أكواد الترتيب هي ناتج عملية تسجيل للماكرو لم أنتبه أنه يحدد آخر سطر مع أن في التسجيل كنت أختار كامل العمود. وقد تم التعديل على الكود ليتعامل مع آخر سطر بالزيادة أو النقصان. توزيع الطلاب_04.xlsm
  22. مساهمة ثالثة مني إصافة إلى المساهمتين السابقتين لزميلاي. توزيع الطلاب_03.xlsm
  23. جرب محاولتي الأولى AmrVacations_01.xlsx
  24. إضافة فكرة أخر للتقييم Zone-02-1copy_02.xlsm
×
×
  • اضف...

Important Information