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

الردود الموصى بها

قام بنشر

السلام عليكم

 

السادة خبراء البرمجة الافاضل

 

اريد ان اتعلم بصفة عامة ومبسطة للاكواد التى تعمل عمل المعادلات

واعتقد ان كثير مثلى من رواد هذا المنتدى الرائع سيستفادون من هذه المعلومة 

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

 

واعتقد ان من اكثر الاكواد طلبا هو ما يقوم بمحل المعادلات التالية :

SUM , SUMIF , SUMCOUNT , VLookup , Hlookup & IF

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

ليستفيد منها الجميع 

 

او ارفاق ملف PDF لكتاب يشرح هذه الطريقة

واكرر شكرى 

  • Like 1
قام بنشر

تفضل مثال بسيط لتحويل المعادلة إلى كود :

مثلا نريد أن نقوم بترقيم البيانات .. بفرض أن البيانات في النطاق B1:B10

 بالمعادلة بمكن الترقيم بهذا الشكل

=IF(B1="";"";ROW())

ثم سحب المعادلة إلى الخلية A10

 

بالكود :

Sub ConvertFormula()
    Dim LastR As Long
    LastR = Sheets("Data").Range("B" & Rows.Count).End(xlUp).Row
    
    With Sheets("Data").Range("A1:A" & LastR)
            .FormulaR1C1 = "=IF(RC2="""","""",ROW())"
            .Value = .Value
    End With
End Sub

يتم في الكود استخدام المعادلة مع بعض التغييرات فمثلا

;

تتحول إلى

,

وأقواس التنصيص توضع بين أقواس تنصيص أخرى

واستخدام الإشارة للخلايا يتم باستخدام R1C1

وفي المعادلة المرفقة كتب R فقط إشارة إلى نفس الصف ، وC2 إشارة للعمود الثاني الذي هو عمود B

Convert Formula.rar

قام بنشر

جزاك الله كل خير على اهتمامك بالرد

 

هل يمكن تطبيق هذه الطريقة على باقى المعادلات التالية ؟

SUM , SUMIF , SUMCOUNT , VLookup , Hlookup & IF

وكيف ارجوا الشرح المبسط ؟

اكرر شكرى

قام بنشر

شكرا اخى ياسر على اهتمامكم بالرد

 

مرفق ملف على سبيل المثال بغرض تعلم الطريقة

 

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

 

 

وشكرا مسبقا

Officena Book.zip

قام بنشر

جرب الكود :

Sub ConvertAll()
    With Sheets("XYZ").Range("F4:F7")
            .Formula = "=SUMIF($B$4:$C$14,E4,$C$4:$C$14)"
            .Value = .Value
    End With
    
    With Sheets("XYZ").Range("G4:G7")
            .Formula = "=COUNTIF($B$4:$B$14,E4)"
            .Value = .Value
    End With

    With Sheets("XYZ").Range("I4:I7")
            .Formula = "=VLOOKUP(E4,$E$4:$H$7,4,0)"
            .Value = .Value
    End With

End Sub

  • Like 3
  • 2 months later...
قام بنشر (معدل)

موضوع رائع و مهم و يوفر حجم الملف 

يرجى التثبيت للافادة

ممكن يعمل الكود الاخير تلقائى بدون زر امر

تم تعديل بواسطه عمرو طلبة
قام بنشر

الأخ الصقر

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

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Set Rng = Union(Range("F4:F7"), Range("G4:G7"), Range("I4:I7"))
    If Not Intersect(Target, Rng) Is Nothing Then
        With Sheets("XYZ").Range("F4:F7")
                .Formula = "=SUMIF($B$4:$C$14,E4,$C$4:$C$14)"
                .Value = .Value
        End With
        
        With Sheets("XYZ").Range("G4:G7")
                .Formula = "=COUNTIF($B$4:$B$14,E4)"
                .Value = .Value
        End With
    
        With Sheets("XYZ").Range("I4:I7")
                .Formula = "=VLOOKUP(E4,$E$4:$H$7,4,0)"
                .Value = .Value
        End With
    End If
End Sub

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information