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

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

قام بنشر

السلام عليكم

 

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

 

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

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

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

 

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

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