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

احمد عبد الناصر

الخبراء
  • Posts

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

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

  • Days Won

    5

مشاركات المكتوبه بواسطه احمد عبد الناصر

  1. السلام عليكم

     

    هذه الصيغة C2<A2>E2 في المعادلة لا يقوم الاكسيل بمعالجتها كما تبدو, فلو استخدمت  evaluate formula ستجد الخطوات كالاتي

     C2<A2>E2  ستتحوا في اول خطوة كا  true>E2  فبذلك فبقية الخطوات ستكون خطأ .

     

    الافضل استخدام and كما ذكرت في ملفك ,المشكلة بس كانت في علامة < معمولة >

     

    جرب المرفق 

    تحياتي

    Book210+.rar

    • Like 2
  2. السلام عليكم

    استاذنا مازن 

     

    اكواد متقنة جدا 

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

    شكرا علي الملف و الامثلة الجميلة المتقنة موضوع مميز فعلا .

    وكما ذكرت سيادتكم فهو نوعا ما ليس منتشر بين المستخدمين ,هناك امثلة و مواضيع في هذا المنتدي العملاق لهذه الافكار طرحت من قبل ولكنها شبه منسيه وليست معروضه بهذه البساطه و الدقة.

     

    تقبل تحياتي وشكرا جزيلا علي مشاركة هذه الافكار :)

  3. السلام عليكم

     

    اسعد الله صباحكم

     

    معادلات متقنة جداااا , زادكم الله علما و نفع بكم

     

    زيادة في الخير هذا كود

    Sub dahmour()
    
    Dim L
    Application.ScreenUpdating = False
    L = Sheets("ناجح").Range("b" & Rows.Count).End(xlUp).Row
    Sheets("الاوائل").Range("eb14:ec" & L) = Sheets("ناجح").Range("b14:c" & L).Value
    Sheets("الاوائل").Range("ed14:ed" & L) = Sheets("ناجح").Range("e14:e" & L).Value
    Sheets("الاوائل").Range("ee14:ee" & L) = Sheets("ناجح").Range("bp14:bp" & L).Value
    
    Sheets("الاوائل").Range("eb14:ee" & L).Sort key1:=[ee14], order1:=xlDescending, key2:=[ed14], order2:=xlAscending
    
    Sheets("الاوائل").Range("f11:i20") = Sheets("الاوائل").Range("eb14:ee23").Value
    
    Sheets("الاوائل").Range("eb14:ee" & L).Clear
    
    Application.ScreenUpdating = True
    
    
    End Sub
    
    

    تحياتي

    • Like 4
  4. السلام عليكم

     

    استاذ ياسر 

     

    معذرة فلم اجرب الحل في ملفك مسبقا , و كما هو متوقع يعمل بكفاءة .

     

    كما تفضل استاذنا محمد حسن فالتاريخ 30/2/1431 لم يأخذ وضعه الصحيح في الترتيب 

     

    و السبب و الله اعلم انه لم يعبر من خلال هذا الشرط

    If IsDate(Cells(I, "E")) Then
    

    (دالة IsDate لم تتعرف عليه كتاريخ)

     

    صراحة موضوع التواريخ الهجرية مبهم نوعا ما في الاكسيل

     

    تحياتي

    • Like 2
  5. السلام عليكم

     

     

     اريد تطبيقها على أكثر من ورقة عمل داخل الملف كما في المرفقات.

     

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

     

    ارجو مزيد من التوضيح فلم تتضح الصورة 

     

    -هل هناك طريقة لمعرفة اي الشيتات يجب ان تأخذ المعادلة رقم السنة منها ؟ وهل هذا ما تقصد؟

     

    تحياتي

    • Like 1
  6. السلام عليكم

     

    اسعد الله اوقاتكم

     

    اعتقد الاكسيل متعرف عليه كتاريخ هجري و لكن عند الفرز يعامله معاملة النص , ليس لي تعامل مع التواريخ الهجرية في الاكسيل صراحة .

     

    جرب المرفق 

     

    -تاريخ معدل1 لان بعض التواريخ فيها مسافة كهذه " 11/10/1432"  .

    -تاريخ معدل2 ليغير اتجاه التاريخ (او النص حسب رؤية اكسيل) , و هذا الذي سوف ترتب علي حسبه وهو العمود   i .

    -هذه الطريقة تنفع ما دامت التواريخ بنفس عدد الخانات كما بملفك المرفق  مثلا "11/09/1431"  و ليس  "11/9/1431"

     

    تحياتي

    تصفية حسب الاقدم بالتاريخ+.rar

  7. السلام عليكم

     

    استاذنا ياسر

     

    -معذرة فلم اشاهد الكود بالمشاركة 5 عند اضافة مشاركتي بالفعل هو يفي بالغرض و زيادة وسريع جدا كالمتوقع يكاد يكون "لحظي" .

     

    -جربت الكود في الملف في المشاركة رقم 12 فلم يكن تعطيل الحساب موجود وكان كود الترحيل بطيء جداااا و عند اضافة كودك عليه من المشاركة 5 يعمل سريع جدا لحظي , لكن الملف بدون تشغيل اكواد او اي شيء يحتاج و قت طويل لاعادة عمليات الحساب فيه (اكيد في عدد كبير من المعادلات فيه) ,لكن الكود سريع فيه .

     

    تحياتي

    • Like 1
  8. السلام عليكم

     

     

     

    المشكله انك رابط الدالة ب "رينج معين " وانا اريدها تعمل على اى خليه متكونش مرتبطة بعمود ولا بصف

     

    مظنش انها مرتبطة بحاجة ال a,b,c دول متغيرات الدالة بالحظ شبه اسماء الاعمدة :] 

     

    جرب علي خلايا مختلفة ان شاء الله تشتغل معاك

     

    تحياتي

  9. السلام عليكم

     

    -هناك قيم تحتاج round مثل القيمة 89.5% في الخلية b2

    -هناك كلمات بها مسافات زيادة تحتاج لازلة هذه المسافات هكذا " منتظمة" تصبح "منتظمة"

     

    لست متأكد من اني فهمت الجزء الثاني من هذه الجملة

    ----

    لو بقى الفرق بين المدة المنقضية والمنجز اقل من او يساوي 20 % او المنجز يتخطي المدة المنقضية اذا  يتم التحويل الى منتظمه

    ----

     

    جرب المرفق

     

    تحياتي

    help+.rar

  10. السلام عليكم

     

    اسعد الله اوقاتكم

     

    الاستاذ المخضرم الاخ العزيز ياسر

     

    شكرا لك علي المعلومات والشروحات القيمة , الف مبروك علي الترقية -زادك الله علما و نفع بك و اعلى نزلك في جنات النعيم .

     

    تقبل تحياتي  :biggrin:

  11. السلام عليكم

     

    جرب هذه 

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    
    
    If Date >= #1/26/2014# And Time >= #8:00:00 AM# Then
    If Application.UserName = "AHMED.MOHAMED" Or Application.UserName = "MOHAMED.AHMED" Then
    
    ActiveWorkbook.SaveCopyAs ("D:\tarek_report.xls")
    
    End If
    End If
    
    End Sub
    
    

    تحياتي

  12. السلام عليكم

     

    جرب هذه ......

    Dim x
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Target.Column = 7 Or Target.Column = 9 Then
        If Target.Cells.Count = 1 Then
        y = ""
        y = Target.Value
            If x = y Then GoTo 1
    '''''''''''''''''''''''''''
    Application.ScreenUpdating = False
    r = Application.WorksheetFunction.Match(x, Sheets("2").Range("c:c"), 0)
    Sheets("2").Cells(r, 4).FormulaR1C1 = "=SUMIF(ÇáÎÒíäÉ!C7,RC[-1],ÇáÎÒíäÉ!C6)"
    Sheets("2").Cells(r, 4) = Sheets("2").Cells(r, 4).Value
    
    Sheets("2").Cells(r, 5).FormulaR1C1 = "=SUMIF(ÇáÎÒíäÉ!C9,RC[-2],ÇáÎÒíäÉ!C8)"
    Sheets("2").Cells(r, 5) = Sheets("2").Cells(r, 5).Value
    '+++++
    r = Application.WorksheetFunction.Match(y, Sheets("2").Range("c:c"), 0)
    Sheets("2").Cells(r, 4).FormulaR1C1 = "=SUMIF(ÇáÎÒíäÉ!C7,RC[-1],ÇáÎÒíäÉ!C6)"
    Sheets("2").Cells(r, 4) = Sheets("2").Cells(r, 4).Value
    
    Sheets("2").Cells(r, 5).FormulaR1C1 = "=SUMIF(ÇáÎÒíäÉ!C9,RC[-2],ÇáÎÒíäÉ!C8)"
    Sheets("2").Cells(r, 5) = Sheets("2").Cells(r, 5).Value
    
    Application.ScreenUpdating = True
    
    '''''''''''''''''''''''''''
        End If
    End If
    1
    End Sub
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    If Target.Column = 7 Or Target.Column = 9 Then
        If Target.Cells.Count = 1 Then
            x = ""
            x = Target.Value
        End If
    End If
    
    End Sub
    
    

    --لست متأكد من دقة هذه الطريقة صراحة :]

     

    ملحوظة: اعتقد انه من الممكن استخدام Application.Evaluate Method لتكون المعادلات  اسرع و الله اعلم

     

    تحياتي

     

     

    sumif+-+.rar

×
×
  • اضف...

Important Information