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

AbuuAhmed

الخبراء
  • Posts

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

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

  • Days Won

    16

مشاركات المكتوبه بواسطه AbuuAhmed

  1. 14 ساعات مضت, هاوي اكسل said:

    ريد ان اجمع ايام العمل فقط بدون الجمعة والسبت على تاريخ معين

    ياريت توضح لنا أي دالة استخدمت.
    وإذا كانت الدالة WORKDAY.INTL فهل يمكنك إضافتها لمرفقي (بعد ترفية الملف طبعا) بإضافة عمود جديد للسنة كاملة ثم رفع الملف.
    أحتاج للمقارنة ضروري.

  2. الإجراء بسيط جدا لا يمكن أن يتسبب ببطء العمل، ربما حجم البيانات كبير والعمليات كبيرة. فتأثيره كتأثير تغيير التاريخ كتابةً.
    أما سطور "التسريع" كما سميتها لن يكون لها أي أثر مع هذا الأمر البسيط فوجودها كعدمها.

    إذا يمكنك رفع ملفك فارفعه.

  3. صممت دالة باسم myWorkDay شبيهة بدالة الاكسل WORKDAY لحساب آخر يوم في العمل وتحتاج إلى مدخلين أول يوم في العمل و عدد أيام عمل فعلي بدون العطل الاسبوعية.
    جربوها فربما تنفعكم.
     

    Option Explicit
    
    Function myWorkDay(FmDate As Date, NetDays1 As Integer) As Date
        'WORKDAY شبيهة بدالة الاكسل
        'FmDate أول يوم عمل
        Dim Weekends As Integer
        Dim ToDate As Date
        Dim NetDays2 As Integer
        Dim LoopRepeat As Integer
        
        Weekends = Int(NetDays1 / 2.5)
        ToDate = FmDate + NetDays1 + Weekends - 1
        
        Weekends = CountWkDay(FmDate, ToDate, vbFriday) + _
                   CountWkDay(FmDate, ToDate, vbSaturday)
        NetDays2 = ToDate - FmDate - Weekends + 1
        
        Do While NetDays1 <> NetDays2
            LoopRepeat = LoopRepeat + 1
            If LoopRepeat = 10 Then
                'Debug.Print "Looprepeat", LoopRepeat
                Exit Do
            End If
            
            If NetDays1 > NetDays2 Then
                NetDays2 = NetDays2 + 1
            Else
                NetDays2 = NetDays2 - 1
            End If
        
            ToDate = FmDate + NetDays2 + Weekends - 1
            Weekends = CountWkDay(FmDate, ToDate, vbFriday) + _
                       CountWkDay(FmDate, ToDate, vbSaturday)
            NetDays2 = ToDate - FmDate - Weekends + 1
        Loop
    
    	If Weekday(ToDate) >= vbFriday Then ToDate = ToDate - 1
    	If Weekday(ToDate) >= vbFriday Then ToDate = ToDate - 1
        
        myWorkDay = ToDate
    End Function
    
    Function CountWkDay(ByVal Date1 As Date, _
                        ByVal Date2 As Date, _
                        WkDay As VbDayOfWeek) As Long
        'WeekDay Counter
        Date1 = Date1 - 1
        Date1 = Fix((Date1 + (7 - WkDay)) / 7)
        Date2 = Fix((Date2 + (7 - WkDay)) / 7)
      
        CountWkDay = Date2 - Date1
    End Function

    يوجد مثال اكسل في هذه المشاركة:

     

    • Like 1
  4. 11 ساعات مضت, أ / محمد صالح said:

    ويمكن استخدام هذه الدالة (الاصدار الاقدم)

    =WORKDAY(C5,100)-1

    هذه الدالة تحسب عدد الأيام على ان اجازة نهاية الاسبوع هي السبت والاحد

    لذلك تم انقاص يوم من الناتج لتحسب على ان عطلة نهاية الاسبوع الجمعة والسبت

    معالجة خاطئة، وقد عملت مقارنة لسنة كاملة وأظهرت خطأ المعالجة.

    يبقى دالتي لمن يستعملون نسخ قديمة من الاكسل
    أو
    دالة WORKDAY.INTL للإصدارات الحديثة، لم أجربها لأن نسخة الاكسل عندي قديمة
    ويمكن كذلك استخدام دالتي.

     

    ايام عمل_05.xlsm

  5. 38 دقائق مضت, ابوخليل said:

    أنا لم استخدم الطريقتين من قبل ضمن اعمالي .. اذا تسبب مشاكل ام لا

    حياك الله أبا خليل، سؤالي كان للسائل، فمن الجيد أن يجرب طالب العلم أكثر من حل ليقف على أفضلها ولتوسع من مداركه وخبرته.
    أحيانا بعض أسئلتي قد تثير استغراب من يتابعني ويسأل كيف بخبير يسأل عن أمور بسيطة أو يمدح عملا وكأنه يمر عليه لأول مرة.
    والحقيقة هي بسبب مشكلتين لدي أولهما صحية وهي ضعف الذاكرة وزيادة تشتت الانتباه وثانيهما هو هجري/تركي للأكسس ربما 15 سنة أو أكثر ولم تعد لغتي الأساسية.
    كثيرا بالصدفة أرى ما يخالف تعليقاتي في برامجي القديمة فأضحك عليها، وأقول في نفسي خليها فمن منهم يعرف "أبو أحمد" على الواقع 🙂.

  6. حسبي الله ونعم الوكيل
    قلتها سابقا وتوقعت أن ما يحدث في المنتدى هو تصرفات "جمعية" وليست فردية ولكن سامح الله أحد الإداريين الذي أخفى تلك المشاركة.

    هذه آخر مشاركة لي في هذا الموضوع.
    شرح مشكلة استعلام "ZX":
    - لقد اجتهد أخونا العزيز "شايب" في تشخيص المشكلة ولكن جانبه الصواب في المعالجة، فقد كان الربط سليما ولم يكن يحتاج إلى تعديل وإنما المشكلة كانت في حقل اسم الصنف حيث يجب أن يؤخذ من جدول المشتريات وليس المبيعات. ولماذا؟  ... لأن جدول المشتريات سيحتوي على كل الأصناف التي ستباع "منطقي" ولكن ليس كل الأصناف المشتراة ستجدها في المبيعات لعدم حصول أي عمليات بيع عليها.
    - هذا كان حلي السابق في النسخة 03 بؤخذ الاسم من جدول المشتريات ولكن حتى هذا الحل لن يصمد كثيرا للبرامج التي تعتمد مع نهاية كل سنة الترصيد وإلغاء عمليات الشراء والبيع.  والحل هو أن يضاف جدولا ثالثا على الاستعلام وهو جدول الأصناف ليربط به جدولي المشتريات والمبيعات ومن ثم يؤخذ الاسم من جدول الأصناف.

    مرفق مثال نسخة 04 والأخيرة من جانبي.
    احتفظت بالاستعلام القديم كما هو وعملت التعديل على استعلام آخر بنفس الاسم ليسهل عملية المقارنة وفهم التعديل.

    expire date_04.accdb

    • Thanks 1
  7. "اقرأ النص ولا تقرأ كاتب النص"

    مع اعتذاري للجميع، مثالي هو الأمثل إذا أردت استخدام حدث "عند التحديث"، وليس دائما الكود/الشفرة يعتبر أفضل الحلول.
    تكمن المشكلة في إعادة التركيز ووقوف المؤشر في مكانه الصحيح. وهذا الموضوع سيتعب كل المحاولين و "غالبا" ستفشل المحاولات إذا لم يستخدم التفاصيل في نموذج فرعي.

    إذا أردت معرفة الأفضل فقم بفحوصات "عنيفة" لتعرف صلابة وقوة "المنتج"، الفحوصات الأولية قد تبدو الأفضل ومع التجارب تظهر "البلاوي".
    هذه نصيحة فقط، وأرجوك لا تستخدم مثالي 🙂.

  8.  

    expire date_03.accdb
    4.13 \u0645\u064a\u062c\u0627 \u0628\u0627\u064a\u062a
     · 
    0 downloads

    توثيق.

    طبعا حتى هذا الحل لدي حل أفضل وأصح وأكثر منطقية منه، ننتظر.
    زمن غريب أن يطلب مقدم الحل لفت نظر السائل للتجاوب معه 🙂 

  9. "اقرأ النص ولا تقرأ كاتب النص"

     

    هناك خطأ أنا أصلحته (لن أعلن عنه الآن) في الموضوع السابق. اختبر الأرصدة أولا ثم بعده واصل في موضوعك هذا.

     

    المرفق هنا لا يصلح لهذه الخطوة.

     

    🙂 اسمع الكلام حبيبي.

  10. منذ ساعه, شايب said:

    ممكن نكتب الامر هكذا

    strWhere = "[FATHER_NAME]&[NUM_PAID] like '*" & strtxt & "*'"

    فكرة ممتازة للاختصار وتسهل عملية التتبع والتعديل.

    للعلم المثال في ما يخص التصفية/الفلترة مصمم من السابق وأنا فقط أضفت عليه خيار البحث عند التحديث دون "العبث" في المعايير السابقة.
    أحيانا من الصعب أن تبدل القناعات، فأنا ممن يكرهون المناذج الستمرة وأراها تعيق كيثرا من سرعة العمل ولكن يحبها من يحب للتحكم في الألوان والأشكال والتي لا تتوفر في صفحة البيانات/data sheet والتي كذلك لا تعنيني في شيء.

    • Like 1
×
×
  • اضف...

Important Information