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

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

قام بنشر

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

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 في موديول جديد.

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

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