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

AbuuAhmed

الخبراء
  • Posts

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

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

  • Days Won

    17

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

  1. استفسار: هل أحداثيات مساحية تعني أحداث مواقع جغرافية؟ وإذا كان الجواب بنعم هل هذه الأرقام عبارة عن درجات قوسية؟ أقصد درجة ودقيقة وثانية.
  2. - الإجازة السنوية هي عدد الأيام للإجازات المستحقة بعد انقضاء سنة (عمل) كاملة ولا يشترط أن تكون من بداية سنة تقويمية. - قد تمر أكثر من سنة عمل والموظف لا يتحصل على زيادة في الراتب أو في أيام الإجازة أو قد يحصل عليها بعد شهور قليلة. - يفترض أن الزيادات لا تحصل وسط شهر تقويمي ولا وسط إجازة مستخدمة. - عند وعد الموظف المستخدم لإجازته بزيادة وعند عودته فيفترض أن تلحقه الزيادة مع بداية أول شهر عمل بعد المباشرة أو إذا لزم مع بداية الشهر الجاري والذي انقضى جزء منه في الإجازة المستخدمة. - من الأخطاء أن يعطى الموظف إجازة جديدة على إجازة مستحقة والمفترض أن تعطى على فترة عمل حضورية/فعلية جديدة. - يجب أن تحسب فترة الإجازات المستحقة من ضمن فترة الخدمة وتدخل من ضمن مكافأة نهاية الخدمة وتحسب على آخر راتب. - رصيد الإجازات بالسالب يجب أن تخصم من فترة الخدمة. المطلوب فقط جدولين جدول للزيادات وجدول للإجازات فقط ولا يهم أبدا الإجازة تمت خلال سنة أو سنتين. أعتقد ما عمله السائل مطابق للمطلوب إلا إذا غفلت أنا عن بعض التفاصيل. تحياتي
  3. نجح معي ونجح مع محمد صالح من أعجابه على الإجابة. طبعا أقصد إجابتي الثانية.
  4. هذا الموضوع به مخالفة لقوانين المنتدى ابتدأ بطلب توزيع أيام الشهر وتم حلها من أول إجابة. ثم تم طلب حل مشكلة طباعة لم تذكر في الطلب منذ البداية أي بمثابة سؤال جديد منفصل. فالمفاضلة التي تمت ليس لها علاقة بالسؤال والخطأ هنا مشترك من السائل ومن زميلي ومن الإشراف الذي لم يتدخل.
  5. فقط أدخل تاريخ الشهر في الخلية "I4" SHADY TIME TABLE 1_01.xls
  6. محاولتي توجد دالة بالـ vba لحساب أي مدة بالسنوات. الاجازات_01.xlsm
  7. يريد معرفة إجمالي المبيعات لو كانت مجهولة مع وجود/معرفة الصافي والنسبة أيضا وقيمتها 2.50%. ربما السائل أخذ بجوابي واكتفى كما يفعل الكثير منهم. نحتاج معرفة نسبة الصافي بالمعادلة التالية: 100% - 2.50% = 97.59% ثم نقسم مبلغ الصافي على نسبته فنحصل على إجمالي المبيعات.
  8. جرب اقسم الصافي على 97.5%
  9. ألاحظ (كثير) ممن يستخدمون أكواد آخرين القيام بـ "تنظيم" الكود على هواه وهذا تعد على "صناعة" هذا المبرمج فالبرمجة كالصناعة لها بصمتها وكثير من الأحيان يمكن التعرف على المبرمج من طريقة كتابته للأكواد. الأدهى أنه يتجرأ ويقوم بالتعديل على هذه الأكواد وغالبا سيتسبب في حصول إخفاقات وفشل في إعطاء مخرجات صحيحة ستنسب لصانعها بعد تناقلها وكثرة التعديلات والمعدلين على الكود هذا إذا كان أمينا وأبقى على اسم المبرمج أعلى الكود. الحل والنصيحة: عليك أن تفتح موديولا خاصا بالأصل ولا تلمسه البتة ثم افتح موديولا آخرا يحمل اسمك وتذكر فيه المصدر وتستطيع استخدام نفس الدوال بتعديل اسم الدالة ولو بإضافة رقم 2 على نهاية الاسم. واختصارا للوقت لا تقوم بالتعديل على كامل الدالة بل استدعيها في دالتك الجديدة وقم بالتعديل على مخرجاتها بما يناسبك ولا تنسى في موديول مستقل خاص بك. ما دعاني لكتابة هذا الموضوع اطلاعي على شفرة للتفقيط من عمل أحد عمالقة المبرمجين شوهت تشويها كبيرا جدا لدرجة أني كرهت المواصلة في رؤية تلك الحالة من الفوضى والتشويه مع إزالة اسم كاتب صانع الشفرة الأصل. الآن توجد قوانين بيئية تخالف المتسببين في أي تشويه بصري، فاعملوا بقوانينهم لشفراتكم أيضا.
      • 2
      • Like
  10. محاولة أولى الشروط غير واضحة بشكل كاف، واضطررت للتخمين، اختبر الكود بتجارب عديدة ودون ملاحظاتك وسأقوم بتوجيه بعض الأسئلة بعد تجربتك الأولى إن شاء الله. حساب العمولة_01.xlsm
  11. To disable the Esc key Application.EnableCancelKey = xlDisabled To re-enable it Application.EnableCancelKey = xlInterupt
  12. جرب أن يكون الكود في موديول عام.
  13. أرجو الانتباه أن ملف المقارنة ليس للمفاضلة فما أتى به الأخ @محب المنتدى صحيحا وهو يستخدم دوال الاكسل والمخصصة لهذه الحسابات، وما أتيت به أنا كذلك قد يكون صحيحا ولكنها معلومات عندي قبل أن ينشأ الاكسل. أنا أتصور أن الاثنين صحيحان ويمثلان نوعين من أنواع الفوائد، وتحتاج إلى معرفة الفرق بينهما وتحديد مسماهما العربي كما تصنيفك في السؤال. حساباتي هي تحت تصنيف الأقساط المتساوية بحساب الفوائد البسيطة.
  14. محاولتي للبسيطة حسب تخميني قبل أن أرى مشاركة الزميل محب المنتدى حاولت في المركبة وخرجت بأرقام فلكية، قد أحاول غدا إن شاء الله. تنويه: المبالغ المحسوبة هي مجموع الفوائد يفترض تجمع على أصل المبلغ ثم تقسم على عدد الشهور أو السنين لمعرفة القسط. تم التوصل إلى معادلة مجموع المدد والتي تختصر العمل بحيث لا نحتاج لعمل حلقة تكرار كما المثال الأول. المعادلة: (عدد الأقساط * (رقم أول قسط + رقم آخر قسط)) / 2 حساب الفوائد_01.xlsm مقارنة لحساب الفوائد_01.xlsx
  15. حسب المطلوب Attendane_01.xlsm
  16. هذه حسابات تجارية تدرس في المعاهد والمراكز التعليمية التجارية ولها قوانين خاصة كـ (حساب المدد) بالأيام وليس القصد فيها الفرق بين تاريخين كما يفهمها المبرمجون مني. لو تملك القوانين ضعها وسنحولها إلى معادلات حسابية برمجية.
  17. هذا المرفق به الثلاث طرق الأصل بعد التصحيح و فكرتي للاختبار لإيصال الفكرة الصحيحة للسائل وكود السائل الأخير. آخر مشاركة لي فلن أرد على مشاركة إضافية من الجميع وشكرا لكم. Stock123_03.xlsm
  18. وعليكم السلام حياك الله أخي محمد، الحذف والإخفاء هما عند المتصفح سيان، وما تسميه تسهيلا قد يكون تشويها ولها مسميات أخرى لا أريد ذكرها فلي تجربة مريرة مع منتدى الأكسس من قبل. أنا لا أبحث ولا أسعى للحصول على هذا الاختيار وبالذات لما يكون عن طريق المشرفين فأنا من المعارضين لإعطاء هذه الصلاحية للمشرفين والأفضل تركها للسائل وإن أساء استخدامها وهذا لا يمنع من مشاركة المشرف في إبداء رأيه بالمشاركة. غير صحيح فهذه المشاركة فقط شرح لجزئيتين من الكود لإفهام السائل والمشاركة على قولك أخفيت وهو كامل الكود، وقد أعدت نشره مرة أخرى بعد الإخفاء. ما جهله السائل والمشرف أن هناك حلان، حل أساسي وهو تنقيح (تصحيح) الكود الأساس الذي أتى به السائل والأخر (وسيلة) حل مفترح صممته بعد إضافة ثلاثة أعمدة إضافية وطلبت من السائل تجربة النتائج لأنه تعثر في شرح مطلبه بالشكل الصحيح وكان هذا الكود بمثابة وسيلة لاختبار مخرجات الكود الأصل، وطبعا لا يمنع من استخدام فكرة الاختبار كحل بديل عند الرغبة. أشكرك على تجاوبك والتكرم بالرد.
  19. أنا لا أعرف ما الهدف من حذف نقاش في صلب الموضوع!! اترك المناقشة كما هي لأن فيها تبيان لمعاناة بعض المتصدين لأسئلة الأعضاء. من ضمن المشاركات المحذوفة ردي على صاحب السؤال أنه بعد شرحه الطويل والذي أجهد نفسه بكتابته لا يمثل المطلوب وعند تطبيقه سوف يعطي نتائج مخالفة للصورة المرفقة. وهذا جزء من المعاناة يجب أن تبقى ويتعلم منها الآخرون. يوجد في منتدى آخر من منتديات أوفيسنا تحشر "دردشة خاصة" بين المشرفين والمراقبين ليس لها علاقة بالعلم ولا البرمجة ولا الموضوع نفسه بل عبارة عن نكت ومزاح وقصص ومجاملات وغيره وتمر دون أن يتدخل أحد بحذفها، وأنتم هنا ما شاء الله تريد تأخذ أول سؤال وآخر جواب وتحذفون ما ترونه من وجه نظركم غير مفيد. قننوا الصلاحيات.
  20. إلى المشرفين المحترمين: لماذا تم حذف هذه المشاركة المشار إليها في سؤالي!! حذف آخر كود منقح يحرف المناقشة عن مفهومها الصحيح!! وفيها خلاصة الحل (الزبدة). نسخة مع التحية إلى @محمد طاهر عرفه الكود المحذوف والمقصود في سؤالي أعلى المشاركة: Sub KeepZeroDuplicates() Dim ws As Worksheet, CheckRange As Range Dim data As Variant, checkCols As Variant Dim row1 As Long, row2 As Long Application.ScreenUpdating = False 'Set worksheet and last row Set ws = ActiveSheet 'Replace with your sheet name if needed row1 = ws.Cells(ws.Rows.count, "A").End(xlUp).row 'Store data in an array for efficient processing data = ws.Range("A1:E" & row1).Value 'Adjust range as needed 'Specify columns to check for duplicates checkCols = Array(1, 4, 5) 'Replace with column numbers 'Loop through data array For row1 = 2 To UBound(data) 'Start from second row For row2 = 2 To row1 - 1 DoEvents 'Check for duplicate in specified columns If IsDuplicate(data, row1, row2, checkCols) Then 'If Duplicate and zero quantity If data(row1, 3) = 0 Then ws.Cells(row1, 1) = "2Del" Exit For End If End If Next row2 Next row1 For row1 = UBound(data) To 2 Step -1 If Cells(row1, 1) = "2Del" Then Rows(row1).Delete Shift:=xlUp End If Next row1 Application.ScreenUpdating = True MsgBox "Done" End Sub Function IsDuplicate(data As Variant, row1 As Long, row2 As Long, checkCols As Variant) As Boolean Dim index As Long For index = LBound(checkCols) To UBound(checkCols) If data(row1, checkCols(index)) <> data(row2, checkCols(index)) Then Exit Function End If Next index IsDuplicate = True End Function
  21. هل جربت الكود في مشاركتي قبل الأخيرة ولم ينجح؟!! عموما أنا حليت لك أكبر مشكلتين في الكود: أولهما مفتاح التكرار حيث بدلته من: checkCols = Array(1, 2, 3, 4, 5) إلى: checkCols = Array(1, 4, 5) وكذلك تبديل عملية الحذف بحيث تكون من الأخير إلى الأول وهنا لا تحتاج إلى ضبط متغير row1 بعد كل عملية حذف ولا نحتاج لمقاطعة حلقة التكرار. يفترض أنك تراعي تعبنا بدلا من أن تأخذ جزء من هنا وجزء من هناك ثم ترجع بعبارة رأيت المشكلة أو وجدت الحل. ميزة الحل السابق أن يحافظ على ترتيب الادخال. سؤال لك الخيار في الرد عليه: هل التعديلات من عملك أم هناك من تتواصل معه خارج المنتدى؟
  22. جرب التعديل واختبره جيدا توزيع الدفعات_03.xlsx
  23. إذا شعرت بثقل/بطء المعادلات يمكن تحويلها إلى كود فيجوال. توزيع الدفعات_02.xlsx
  24. وهذا تنقيح للكود بطريقتي: Sub RemoveZeroDuplicates() Dim ws As Worksheet, count As Long Dim row As Long, lRow As Long Application.ScreenUpdating = False Sheets("Sheet3").Select Set ws = ActiveSheet With ws lRow = ActiveCell.SpecialCells(xlLastCell).row For row = lRow To 2 Step -1 If .Cells(row, 8) = "Yes" Then count = count + 1 .Rows(row).Delete Shift:=xlUp End If Next row End With Application.ScreenUpdating = True MsgBox "تم حذف " & count & " سجل" End Sub
  25. فقط قبل نصف ساعة فهمت موضوعك، دائما عند تقديم مثال يجب تقديم الحل/الناتج المطلوب، بمعني تقول هذه المعادلة يفترض أن يكون جوابها هكذا. اختصرت لك كل هالمشقة والأكواد بسطر واحد فقط، آمل التجربة والعودة لنا بملاحظاتك. وبعد المزيد من التجارب أضفت سطر آخر 🙂 Function myRound(MainVal As Double, RoundVal As Double) As Double Dim Adj As Double Adj = (0.1 / RoundVal) * Sgn(MainVal) myRound = Round(MainVal / RoundVal + Adj) * RoundVal End Function وهذا سطر للاحتراز يمكن إضافته بداية الدالة عند الرغبة: If RoundVal < 10 Or RoundVal Mod 10 <> 0 Then Exit Function
×
×
  • اضف...

Important Information