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

خطأ عند تنفيذ الكود


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

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

65851394-A0DD-4037-B9BA-4D51990012BF.png.jpg.975d1961b41ee90f2ac35ceb645422dc.jpg

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

يمكنك الاستفادة من هذا الكود ليقوم بعرض رسالة تنبيه عند الانتهاء من تحويل المعادلات ونقل الرموز المتولدة إلى موديول بشكل تلقائي:

Sub ConvertFormulasToVBA()
    Dim ws As Worksheet
    Dim vbComp As Object
    Dim newModule As Object
    Dim cell As Range
    
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ' Create a new VBA module
    Set vbComp = ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule)
    Set newModule = vbComp.CodeModule
    
    ' Loop through cells with formulas and add them to the new module
    For Each cell In ws.UsedRange
        If cell.HasFormula Then
            newModule.InsertLines newModule.CountOfLines + 1, "Sub Formula" & cell.Address & "()"
            newModule.InsertLines newModule.CountOfLines + 1, "    Range(""" & cell.Address & """).Value = " & Chr(34) & "'" & cell.Formula & Chr(34)
            newModule.InsertLines newModule.CountOfLines + 1, "End Sub"
        End If
    Next cell
   
    MsgBox "تم تحويل المعادلات إلى كود VBA بنجاح وتم نقل الرموز إلى موديول جديد.", vbInformation
End Sub


```

عند تشغيل هذا الكود، ستظهر رسالة تنبيه عند الانتهاء من تحويل المعادلات ونقل الرموز إلى موديول جديد. يُفضل تغيير اسم الشيت في السطر العاشر حسب اسم الشيت الذي تريد تحويل المعادلات فيه.

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

في 7‏/6‏/2024 at 19:55, abdullahsaeed279807 said:

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

65851394-A0DD-4037-B9BA-4D51990012BF.png.jpg.975d1961b41ee90f2ac35ceb645422dc.jpg

وعليكم السلام ورحمة الله وبركاته

إذا كانت المعادلات في الشيت كبيرة جدًا وتحولها إلى كود VBA ينتج عن ذلك كود طويل جدًا، يمكنك محاولة تقسيم العملية إلى أجزاء أصغر لتجنب رسالة الخطأ بسبب طول الكود. يمكنك تجربة تفعيل ما يلي:

1. قم بتحديد نطاق من الخلايا المحتوية على المعادلات التي ترغب في تحويلها إلى رموز VBA.
2. استخدم الكود التالي لتحويل المعادلات في النطاق المحدد إلى رموز VBA:

Sub ConvertFormulasInRangeToVBA()
    Dim cell As Range
    
    For Each cell In Selection
        If cell.HasFormula Then
            With ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule).CodeModule
                .AddFromString "Sub ConvertFormula" & cell.Address & "()" & vbNewLine & _
                               "    Range(""" & cell.Address & """).Value = " & "'" & cell.Formula & "'" & vbNewLine & _
                               "End Sub"
            End With
        End If
    Next cell
    
    MsgBox "تم تحويل المعادلات في النطاق المحدد إلى رموز VBA بنجاح.", vbInformation
End Sub

 

3. بعد تشغيل الكود، حدد النطاق الذي تريد تحويل المعادلات فيه يدويًا، ثم قم بتشغيل الكود.
4. سيتم تحويل المعادلات في النطاق المحدد إلى رموز VBA في موديول جديد.

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

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

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

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



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

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

Important Information