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

AbuuAhmed

الخبراء
  • Posts

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

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

  • Days Won

    16

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

  1. أخي تدخلي لحل مشكلة البطء ولم أتدخل في العمليات الحسابية. الحل الأخير لا يمكن مقارنته بما سبق ، فحلي كان لمشكلة تقنية تحتاج إلى انتباه وقد وجهت لكم نصيحة في مشاركة سابقة لي ولم تلتفتوا إليها وكان بها نصف الحل. المشكلة كانت اختياركم للحدث الخطأ والآخر هي مشكلة تكرار الحدث مع كل عملية تحديث للخلايا وقد تم تغيير الحدث وتم تعطيل الحدث أثناء العمليات الحسابية. أما شفرات الحسابات فهي شفرات احترافية لا شك وخصوصا تصميم حلقات التكرار ومع ذلك اختصار الشفرة وجمالها لا تصلح المشكلة فعدد العمليات هي نفسها سواءً كانت الشفرة بألف سطر أو بعشرة مع الحلقات. وأنا بالتأكيد مع الحلقات الذكية والتنظيم الجميل لها. على محترفي الإكسل والشفرات النظر للأمثلة ومقارنة أدائها واخبارنا بالتقييم الصحيح ، وشكرا للجميع. ملاحظات : - حل تكرار الحدث تمكنت من التغلب عليه في موضوع آخر "بالتحايل" ولكن في هذا الموضوع تم حله بالشكل البرمجي الصحيح بعد عمليات بحث مكثفة. - سامحني لا أتمكن من المتابعة لمشكلة العمليات الحسابية ونتائجها ، موفقين دائما.
  2. أخطأت في رابط المثال الذي يضم 3 طرق حساب الترقيات
  3. أخبرتكم أن النسخة السابقة هي الأخيرة ولكن سيطرت علي فكرة في الوصول إلى تاريخ أم القرى بدون فرق ، وقد نجحت الفكرة والحمد لله. سأطبقها إن شاء على مثال للأكسس الحقوق الفكرية محفوظة 🙂 كشف انتهاء هويات الموظفين_05.xlsm
  4. معادلة أخرى موعد الرواتب_02.xlsx
  5. السلام عليكم ..هل يمكن استخدام التقويم ومن منكم له تجارب سابقة يفيدنا ويكفينا عبئ البحث؟ وشكرا لكم.
  6. جرب الآن وارجع لنا بالنتيجة ..مع ملاحظة أني لعبت في البيانات نمودج_02.xlsb
  7. @محمد ابومروان 🙂 ظلمت الإكسل ، مع أني محترف كتابة شفرات ولكن لا أنصحك باللجوء إلى الفيجول إلا إذا عجز الإكسل عن الحل. موفقين. وهذا إذا أردته للنموذج Private Sub TextBox2_Change() Dim cd As String cd = Me.ActiveControl If Len(cd) <> 14 Then Exit Sub Me.TextBox3 = DateSerial(1700 + Left(cd, 1) * 100 + Mid(cd, 2, 2), Mid(cd, 4, 2), Mid(cd, 6, 2)) End Sub
  8. علاج مؤقت ، وقد يكون له آثار جانبية عطلت عبارة if في دالة UmCDate والمشكلة بسبب أن الشفرة اعتبرت أن التاريخ على ما أعتقد ميلادي ويوم 30 أكبر من مدة شهر فبراير.
  9. جرب الآن Book12_03.xlsm
  10. أحتاج رقم قومي بعد عام 1999 Book12_02.xlsm
  11. التقويم المطلوب هجري النظام أم أم القرى؟
  12. جرب وخبرنا list_03.xlsx
  13. يمكنت تبديل "" إلى صفر من خلال المعادلة Copy of Book1_02.xlsx
  14. لا أنصح باللجوء إلى الفيجوال إلا في حالة استعصاء عمل المعادلات المعقدة في الإكسل. بدل الحدث من SelectionChange إلى حدث Change وجرب.
  15. عملك سليم ويمكنك الحصول على مطلبك من نفس الاستعلام أو بعمل استعلام ثاني مصدره الاستعلام الأول. تعديلي في الاستعلام الأول Uni_02.rar
  16. أضفت لك أكواد تقويم أم القرى من موقع أبو هادي مع تصرف بسيط مني في دالة UmDateDiff. حساب الترقيات.xlsm
  17. بالنسبة لي أنا أستخدم نسخة أكسس بإصدار قديم ، فلا يمكنني فتح المرفق. لا أعلم من أي إصدار تم إضافة هذا الحقل إلى الجداول ، ولا أعلم فائدته حقيقة. إذا أردت أن تخضع معادلاتك للفحص والاختبار فيمكنك كتابة المعادلات ووظيفتها ، أما إذا أردت فقط تقييمها فالبركة بالشباب اللي يستخدمون نسخ حديثة.
  18. لا يمكن أن نصل إلى تحويل للتاريخ بمعادلة من سطر واحد وباستخدام المتوسطات. ما عملته أنا فقط للحصول على السنة الهجرية ليس إلا ، فلا يذهب تعبكم سدى ، فالتقاويم لها قوانين وتفاصيل كثيرة مثل مدد الشهور ونطام الدورات والكبس. هذه دالة فحصي للمعادلة لمن يريد أن يكثر من الاختبارات واللعب على قيمة الضبط: Sub HijriYearTest() Dim Hyy As Long Dim Days As Long Dim Greg As Long Dim Hijri1 As Long Dim Hijri2 As Double For Hyy = 1 To 9666 Greg = Hijri2Greg(Hyy, 1, 1) For Days = Greg - 1 To Greg Hijri1 = Left(Greg2Hijri(CDate(Days)), 4) 'Hijri2 = (Days + 466580.47) / 354.366666666667 + 1 Hijri2 = (Days + 466581 - 0.53) / (10631 / 30) + 1 If Hijri1 <> Fix(Hijri2) Then Debug.Print CDate(Days), Hijri1, Hijri2 End If Next Days Next Hyy Debug.Print "Done" End Sub
  19. (Date + 466581 - 0.53) / (10631 / 30) + 1 Date يمثل التاريخ الميلادي للأكسس والإكسل و الـ vba 466581 هو الرقم التسلسلي لبداية التقويم الميلادي في 18/07/0622 زائدا واحد حتى تكون النتيجة المطلوبة تساوي يوم واحد. طبعا الرقم التسلسلي يساوي 466580- نصفره ونضيف عليه يوم واحد وهو قيمة بداية التقويم الهجري (أول يوم). (10631 / 30) هو طول السنة الهجرية بالأيام وناتجها 354.367 ولكني فضلت استخدم عملية التقسيم حتى أحصل على كسر مفتوح لمزيد من الدقة. 0.53 هو لعملية ضبط adjustment حصلت عليه بعد عدة تجارب/اختبارات وتظهر حاجته غالبا في آخر يوم في السنة وأحيانا في أول يوم أيضا. 1 هو للسنة الناقصة (غير المكتملة)
  20. تم اختبار المعادلة لمدة 9566 سنة هجرية بدون أي إخفاق. ملاحظة: هذه المعادلة تعمل فقط مع الـ vba و الإكسل
  21. حياك الله أخي ، رددت عليك بهذه المشاركة
  22. مع الإعتذار ، لو يقبل من الأخ @rockjone33 أن يفرد موضوع خاص بكل ما طوره للشجرة وفصله عن هذا الموضوع المنتهي أصلا. وسوف يكون تطويراتك أكثر بروزا ومتابعة وخصوصا إذا احتوى على عنوان واضح لجهدك الممتاز. تحياتي لك واسمح لي على لقافتي.
×
×
  • اضف...

Important Information