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

طلب مساعدة في كود


gamalin2
إذهب إلى أفضل إجابة Solved by أ / محمد صالح,

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

الاخوة الافاضل 

اريد كود يدرج معادلة في خلية معينه عند اجراء تعديل على الشيت 

في اخر سطر دوما 

او مراجعة الكود التالي وافادتي ما الخطأ به 

 

 

Private Sub Worksheet_Change(ByVal Target As Range)
         With Sheets("p_o").[a1000].End(xlUp)
              .Offset(0, 7).FormulaR1C1 = "=IF(ISBLANK(RC[-7]),0,R7C[-6]*RC[-2]*(1+RC[-1]))"
              .Offset(0, 8).FormulaR1C1 = "=IF(ISBLANK(RC[-8]),0,RC[-4]*RC[-1])"
         End With
End Sub

 

 

 
 
رابط هذا التعليق
شارك

تكمن المشكلة في أنك تقوم بعمل سلسلة لا نهائية من استدعاء الكود

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

وحل هذه المشكلة في تحديد نطاق التغيير مثلا بعد الصف 8 وقبل العمود 8

وعليه يكون الكود

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 8 And Target.Column < 8 Then
Range("h" & Target.Row).Formula = "=IF(ISBLANK(A" & Target.Row & "),0,$B$7*F" & Target.Row & "*(1+G" & Target.Row & "))"
Range("i" & Target.Row).Formula = "=IF(ISBLANK(A" & Target.Row & "),0,E" & Target.Row & "*H" & Target.Row & ")"
End If
End Sub

بالتوفيق

  • Like 1
رابط هذا التعليق
شارك

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

تحياتي محاسب / محمد الو الجملين

رابط هذا التعليق
شارك

اخي الكريم اريد كتابة هذا السطر ليضيف المعادلة في العمود c  ايضا ولم اعرف كتابتها بطريقة الكود الذي كتبته انت فهل اطمع في اضافتها للكود السابق 

 

    ActiveCell.FormulaR1C1 = _
        "=IFERROR(VLOOKUP(RC[-1],item!C[-1]:C[4],2,FALSE),"""")"
 
ولو امكن الافادة كيف يمكن كاتبة الكود بالطريقة السابقة انا بدخل على الماكرو واسجل كتابة المعادلة و استخدمها في الكود لكن لا يكتبها المسجل كما كتبتها انت  
زفر التحية 
 
هناك امر اخر عند الانتهاء من التسجيل وترحيل الطلب بيتم افراغ النوذج وحذف الاسطر كلها هل سيم كتابة المعادة نتيجة لهذه الخطوة و في اي سطر
 

 

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

الاخوة الافاضل 

استاذ محمد صالح 

رجو التكرم 

بمساعدتي في الاتي استكمال لنفس الكود والحالة 

اخي الكريم اريد كتابة هذا السطر ليضيف المعادلة في العمود c  ايضا ولم اعرف كتابتها بطريقة الكود الذي كتبته انت فهل اطمع في اضافتها للكود السابق 

    ActiveCell.FormulaR1C1 = _

        "=IFERROR(VLOOKUP(RC[-1],item!C[-1]:C[4],2,FALSE),"""")"
 
ولو امكن الافادة كيف يمكن كاتبة الكود بالطريقة السابقة انا بدخل على الماكرو واسجل كتابة المعادلة و استخدمها في الكود لكن لا يكتبها المسجل كما كتبتها انت  
زفر التحية 
 
هناك امر اخر عند الانتهاء من التسجيل وترحيل الطلب بيتم افراغ النوذج وحذف الاسطر كلها هل سيم كتابة المعادة نتيجة لهذه الخطوة و في اي سطر
 

 

 

رابط هذا التعليق
شارك

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 8 And Target.Column < 8 Then
   Range("c" & Target.Row).Formula = "=IFERROR(VLOOKUP(b" & Target.Row & ",item!C[-1]:C[4],2,FALSE),"""")"
   Range("h" & Target.Row).Formula = "=IF(ISBLANK(A" & Target.Row & "),0,$B$7*F" & Target.Row & "*(1+G" & Target.Row & "))"
   Range("i" & Target.Row).Formula = "=IF(ISBLANK(A" & Target.Row & "),0,E" & Target.Row & "*H" & Target.Row & ")"
End If
End Sub


انا كتبته كده فتوقف عن العمل ودخل في حلقة وهنج الملف فما الخطأ

رابط هذا التعليق
شارك

  • أفضل إجابة

رجاء تحويل المعادلة للصورة العادية أفضل من نمط R1C1

واستعمل هذا الكود تم إضافة شرط العمود لا يساوي 3

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 8 And Target.Column < 8 And Target.Column <> 3 Then
Range("c" & Target.Row).Formula = "=a1+b1"
Range("h" & Target.Row).Formula = "=IF(ISBLANK(A" & Target.Row & "),0,$B$7*F" & Target.Row & "*(1+G" & Target.Row & "))"
Range("i" & Target.Row).Formula = "=IF(ISBLANK(A" & Target.Row & "),0,E" & Target.Row & "*H" & Target.Row & ")"
End If
End Sub

ضع المعادلة مكان =a1+b1 مع استبدال رقم الصف ب Target.Row

بالتوفيق

رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information