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

shreif mohamed

03 عضو مميز
  • Posts

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

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

  • Days Won

    1

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

  1. جرب هذا الكود في موديول منفصل وقم باستدعائه

    Option Explicit
    Sub do_it()
        Dim a, b, c, d, e As Long
        Dim rng1, rng2, rng3 As Range
        Dim row, cell As Range
        Set rng2 = Range("i12").CurrentRegion
        rng2.Offset(1, 1).ClearContents
        a = Range("a1").CurrentRegion.Columns.Count / 8
        Set rng1 = Range("a3", Range("A" & Rows.Count).End(xlUp)).Resize(, 8)
        For b = 1 To a
            Select Case b
            Case Is > 1
                Set rng1 = rng1.Offset(, 8)
                rng1.Select
                For Each row In rng1.Rows
                    If Application.WorksheetFunction.CountIf(row, "EXM") > 0 Then
                        rng2.Find(row.Cells(1)).Offset(, 1).Select
                        Selection = Selection + Application.WorksheetFunction.CountIf(row, "EXM")
                    End If
                    If Application.WorksheetFunction.CountIf(row, "VIC") > 0 Then
                        rng2.Find(row.Cells(1)).Offset(, 2).Select
                        Selection = Selection + Application.WorksheetFunction.CountIf(row, "VIC")
                    End If
                    If Application.WorksheetFunction.CountIf(row, "SICK") > 0 Then
                        rng2.Find(row.Cells(1)).Offset(, 3).Select
                        Selection = Selection + Application.WorksheetFunction.CountIf(row, "SICK")
                    End If
                Next
            Case Is = 1
                For Each row In rng1.Rows
                    If Application.WorksheetFunction.CountIf(row, "EXM") > 0 Then
                        rng2.Find(row.Cells(1)).Offset(, 1).Select
                        Selection = Selection + Application.WorksheetFunction.CountIf(row, "EXM")
                    End If
                    If Application.WorksheetFunction.CountIf(row, "VIC") > 0 Then
                        rng2.Find(row.Cells(1)).Offset(, 2).Select
                        Selection = Selection + Application.WorksheetFunction.CountIf(row, "VIC")
                    End If
                    If Application.WorksheetFunction.CountIf(row, "SICK") > 0 Then
                        rng2.Find(row.Cells(1)).Offset(, 3).Select
                        Selection = Selection + Application.WorksheetFunction.CountIf(row, "SICK")
                    End If
                Next
            End Select
        Next
    End Sub

     

     

    D.xlsm

  2. النقطة تتواجد في منطقة واحدة اما في اول الرقم او اخره او اي مكان اخر

    وهذا كان المطلوب من الاخ صاحب الموضوع

    وما ارفقته يوجد به نقتطان   لذا ان تعمل المعادلة

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

    وشكرا

  3. 6 minutes ago, ali mohamed ali said:

    السلام عليكم أخى شريف

    معادلة حضرتك لا تقوم بحذف النقطة اذا كانت فى أول  الرقم أو المكتوب من جهة اليسار -من فضلك هل يمكن تعديلها حتى تكتمل وتعم الفائدة

     

    المعادلة تعمل معي وبكفائة حسب ماهو مطلوب وماوضحه الاخ 

    Mory Ali

     

    في طلبه وهو ان تواجدت  نقطة في اخر او اول الرقم يتم حذف النقطة اما ان تواجدت في المنتصف تترك كما هي

    ومرفق لك المعادلة داخل ملف العمل

    30 minutes ago, Mory Ali said:

    شكرا للاجابة و المساعدة 

    هل يمكني السؤال اذا كان حجم الملف يحتوي على اكثر من 400 الف سجل لعمل المطلوب سابقا 

    فهل التنفيذ من خلال ماكرو او من خلال معادلة 

    ايهما سيكون اسرع ؟

    بعد اذن الاخ سليم يفضل العمل من خلال الماكرو   لمثل هذا العدد من الصفوف

    لذا انصحك باستخدام الماكرو

    TEST Salim.xlsx

  4. 16 minutes ago, سليم حاصبيا said:

    بعد اذن اخي شريغ هذا الكود (يمكن ان يكون اسرع قليلاُ)

    الملف مرفق

     

    استدعاءبشروط Salim1.xlsm

    العمل من خلال المصفوفات هو بطبيعة الحال اسرع بكثير من الكود الذي ارفقته ويظهر ذللك جليا مع كبر حجم البيانات 

    اشكرك  احي سليم علي إثراء الموضوع وطرح حلول مفيدة 

    • Like 2
  5. يمكنك اضافة عمود جديد  واستخدام الدالة

    =rand()

    سوف تقوم بملء ارقام عشوائية

    ثم بعد ذلك قم بترتيب القيم  تصاعديا او تنازليا

    كما هو الحالف في المرفق  واعد كتابة المعادلة في كل مره

    وهناك اضافة هي حقا رائعة تلبي احتياجك  اداه تسمي

    kutools

    قبل عملها اغلق كل ملفات الاكسل المفتوحة ثم نصب الاداة ثم قم بفتح ملفك واختر الخلايا المراد عمل ترتيب عشوائي لها ومن تبويب

    kutools

    اختر

    range - sort range randomly -   cells in each column

    ستقوم بعمل المطلوب

    تحميل الاداة من اللينك اسفله

    https://d2d42mpnbqmzj3.cloudfront.net/downloads/KutoolsforExcelSetup.exe

     

    • Like 1
  6. On 3/29/2018 at 7:36 PM, أبو شرف said:

    استاذي العزيز ارفق لك ملف به المطلوب واشكر جهودك مقدما وبارك الله بك لك كل التقدير 

    ايضا لدي طلب بخصوص المعادلة اعلاه حقيقة مجهود عظيم ولكن انا لدي اصناف متعددة احيانا تزيد على سبعة الى عشرة اصناف كلها سهلة مجودة بالمتر استطيع السيطرة عليها بأستثناء الكابينات فهل من الممكن ان تكون المعادلة تعمل عملها فقط على نوع ( كابينات ) اما باقي الأنواع قد تتغير وهنا قصدي انه ممكن تكون كتابة اي نوع لا يؤثر على الحدث وفقط عندما تكون كلمة كابينة تاتي بالكلفة من الشيت الأخر

    =IF($E3="كابينات",INDEX(التفاصيل!$N:$N,MATCH('المعلومات '!$G3,التفاصيل!$M:$M,0)),IFERROR(J3*I3,""))

    كابينات.xlsm

  7. عزرا اخي لم افهمك جيدا

    هل تقصد ان القائمة المنسدلة  في شيت التفاصيل لا تعرض جميع ارقام الكبائن في شيت البيانات ؟

    اذا كان ذلك هو المقصود  يجب تعديل المعادلة في

    data validation

    بشيت التفاصيل الي

    =OFFSET(البيانات!B21,0,0,COUNTA(البيانات!B:B),1)

×
×
  • اضف...

Important Information