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

كود لاخفاء المعادلات


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

اخواني الاعزاء تحية طيبه وجدت في احد المنتديات الاجنبيه الكود الرائع الموضح ادناه والذي يقوم باخفاء المعادلات واظهارها وحين قمت بتطبيقه على بعض الملفات نجح في اخفاء بعض معادلاتها وظهرت في ملفات اخرى رسالة تتضمن الرقم (400) فقط ، انا بحاجة ماسة لهذا الكود كيف يمكن معالجة الخلل وماذا تعني الرساله مع امتناني وشكري .

Private Sub CommandButton1_Click()

Call Updater

End Sub

Sub HideFormulas()

Const NamePrefix As String = "Formula_"

Dim myColl As New Collection

Dim oneCell As Range, oneName As Name

Dim nameFormula As String

Dim nameCount As Long

Dim workingRange As Range

Dim TheSheet As Worksheet

Set TheSheet = ActiveSheet

Call UnhideSheetFormulas(TheSheet)

With TheSheet

If Not (.Cells.SpecialCells(xlCellTypeFormulas) Is Nothing) Then

For Each oneCell In .Cells.SpecialCells(xlCellTypeFormulas)

.Parent.Names.Add Name:="temp", RefersToR1C1:=oneCell.FormulaR1C1

oneCell.FormulaR1C1 = Names("temp").RefersToR1C1

Next oneCell

.Parent.Names("temp").delete

For Each oneCell In .Cells.SpecialCells(xlCellTypeFormulas)

nameFormula = oneCell.FormulaR1C1

For Each oneName In TheSheet.Names

If oneName.RefersToR1C1 = nameFormula Then

oneCell.FormulaR1C1 = "=" & Mid(oneName.Name, InStr(oneName.Name, "!") + 1)

GoTo NextCell

End If

Next oneName

nameCount = nameCount + 1

Set oneName = .Names.Add(Name:=NamePrefix & nameCount, RefersToR1C1:=nameFormula)

oneCell.FormulaR1C1 = "=" & Mid(oneName.Name, InStr(oneName.Name, "!") + 1)

oneName.Visible = False

NextCell:

Next oneCell

End If

End With

End Sub

Sub ShowAllNames()

Dim oneName As Name

For Each oneName In ActiveSheet.Parent.Names

oneName.Visible = True

Next oneName

End Sub

Sub UnHideFormulas()

UnhideSheetFormulas ActiveSheet

End Sub

Private Sub UnhideSheetFormulas(TheSheet As Worksheet)

Dim oneCell As Range, oneName As Name

With TheSheet

On Error Resume Next

For Each oneCell In .Cells.SpecialCells(xlCellTypeFormulas)

oneCell.FormulaR1C1 = .Names(Mid(oneCell.FormulaR1C1, 2)).RefersToR1C1

Next oneCell

On Error GoTo 0

For Each oneName In .Names

If oneName.Name Like "*" & NamePrefix & "*" Then

oneName.delete

End If

Next oneName

End With

End Sub

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

اخي العزيز اعتقد ان المشكلة لديك ناتجة عن وجود خلايا مدمجة

فمثل هذه الاكواد التي تقوم بفحص الخلايا قد تنتج عنها اخطاء

نتيجة دمج هذه الخلايا .. وكما وصف احد الاعظاء عملية دمج الخلايا

بأنها العدو الاول للاكواد وهذا الصحيح

ويمكنك تفادي هذه الاخطاء باستخدام الكود التالي في بداية الماكرو

On Error Resume Next

اما الخطأ (400) الناتج فالذي اعلمه بأن هذا الخطأ ينتج عند استخدام

الفورم وعملية اضهاره واخفاءه وعند استخدام الامر Visible ... والله أعلم

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

السلام عليكم

اخي الفاضل

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

و يقوم بالعكس عند القيام بالضغط علي اظهار المعادلات حيث انه يقوم بالغاء المعرفات لهذه الخلية و اظهار المعادلة

اما الكود الاخر فهو لاخفاء و اظهار المعرفات

و اعتقد ان هناك جزء من الكود ناقص

عموما تم تفصيل الكود بملف مع عمل تعديل بسيطة ليتلائم الكود مع بعضه

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

تم ارفاق ملف بذلك

تحياتي

اظهار و اخفاء المعادلات و الاسماء.rar

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

السلام عليكم

ما شاء الله عليكم اخي الحبيب عادل

رايق وفنان

وصحيح الخطأ الذي ذكره الاخ ناتج عن الاظهار والاخفاء

بارك الله فيك

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

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

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

استاذ : عادل

هذا ما تعودناه منك ، دائماأفكار فريدة وشيقة.. ولكن هل من تعديل على هذا الكود بحيث

- يشمل كافة معادلات أوراق الملف .

- يجعل كافة خلايا المعادلات مخفية ومؤمنة ( بمعني لايمكن الوقوف على الخلية سواءا بالماوس او اسهم الاتجاهات ) فلا يتمكن أحد من العبث بالمعادلة .

واذا رغب صاحب الملف ، فعليه اخفاء صفحة الازرار هذه ، اذا ما تداول الملف بين اكثر من مستخدم.

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

استاذ : عادل

هذا ما تعودناه منك ، دائماأفكار فريدة وشيقة.. ولكن هل من تعديل على هذا الكود بحيث

- يشمل كافة معادلات أوراق الملف .

- يجعل كافة خلايا المعادلات مخفية ومؤمنة ( بمعني لايمكن الوقوف على الخلية سواءا بالماوس او اسهم الاتجاهات ) فلا يتمكن أحد من العبث بالمعادلة .

واذا رغب صاحب الملف ، فعليه اخفاء صفحة الازرار هذه ، اذا ما تداول الملف بين اكثر من مستخدم.

وانا كذلك ايد الاخ new4a في هذا الطلب

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

السلام عليكم

اخي حسن

اخي ولد المجرب

اولا عذرا علي التاخير

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

مرفق ملف يقوم بذلك 

ارجو التجربة و اخباري النتيجة

خالص تحياتي و تقديري

حمايه.rar

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

الاستاذ العزيز عادل

تم تجربة الملف كما طلبت ولكن الحماية ليست بالمستوى المطلوب فيمكن فك الحماية من تبويب الادوات حماية فك الحماية دون الحاجة الى الازرار كما ان رسالة التنبيه ليس لها اي داعي وانما المطلوب انه لا يمكن الوقف على الخلية او التعديل فيها عند الضغط على زر الحماية حتى من تبويب الادوات وانما يتم فك الحماية بواسطة الزر الاخر الخاص بفك الحمايةمع عدم ظهور رسالة التنبيه.

ابواحمد

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

اخي الاستاذ : عادل

اشكرك .. كل الشكر نيابة عن نفسي .. وعن أخي .. ولدالمجرب ( شريكي ومؤيدي في الإستزادة من أفكارك الرائعة )

ولا أجد من كلمات الشكر ما توفيك قدر .. استجابتك وإستعدادك الدائم للمساعدة

ولله ادعو .. ان يجزيك خيرا اضعاف ما ساعدتنا .. وأن يجعل ذلك في ميزان حسناتك

وألف .. ألف شكر

أخويك : حسن و ولد المجرب

ولد المجرب و حسن

حتى لا يسبق اسمي .. اسمه.. فأنا واثق من أن معزتك لدينا بنفس القدر

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

السلام عليكم

    اخي ولد المجرب

          

تم تجربة الملف كما طلبت ولكن الحماية ليست بالمستوى المطلوب فيمكن فك الحماية من تبويب الادوات حماية فك الحماية دون الحاجة الى الازرار كما ان رسالة التنبيه ليس لها اي داعي وانما المطلوب انه لا يمكن الوقف على الخلية او التعديل فيها عند الضغط على زر الحماية حتى من تبويب الادوات وانما يتم فك الحماية بواسطة الزر الاخر الخاص بفك الحمايةمع عدم ظهور رسالة التنبيه.

ابواحمد

اخي انا لم اصمم الملف علي انه لا يستطيع احد يفك حمايته من عدمه 

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

فانا عملت المطلوب فقط و هذا للملاحظه

ولك الشكر اخي حسن علي كلماتك

خالص تحياتي

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

الاستاذ العزيز عادل اقدم اعتذاري فقد كان يجب اولاً تقديم الشكر على المساعدة والمجهود الذي بذلته وتستحق الشكر عليه ومن ثم ابداء الملاحظات على الملف لذا اكرر اسفي مرة اخرى على تسرعي وشكراً (فانا لا انسى فضلك بعد الله في مساعدتي في طلباتي الكثيرة)

ابواحمد

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

استاذ : عادل

نقلت الورقة الاولي بالملف .. لملف اخر لدي بما فيها من كود وازرار ، ولكن لم تعمل الازرار كما في ملفك .. فماذا تتوقع

وما الذي يجب ان اتبعه ليعمل الكود بملفات اخرى

اشكرك

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

السلام عليكم

الاستاذ العزيز عادل اقدم اعتذاري فقد كان يجب اولاً تقديم الشكر على المساعدة والمجهود الذي بذلته وتستحق الشكر عليه ومن ثم ابداء الملاحظات على الملف لذا اكرر اسفي مرة اخرى على تسرعي وشكراً (فانا لا انسى فضلك بعد الله في مساعدتي في طلباتي الكثيرة)

ابواحمد

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

و كل ما قصدته انني عملت ما طلب مني فقط و ان كان هناك اي طلبات اخري انا علي استعداد

اخي حسن

نقلت الورقة الاولي بالملف .. لملف اخر لدي بما فيها من كود وازرار ، ولكن لم تعمل الازرار كما في ملفك .. فماذا تتوقع

وما الذي يجب ان اتبعه ليعمل الكود بملفات اخرى

اشكرك

هل نقلت اكواد الازرار التي بالصفحة؟

خالص حبي و تقديري لاخي ولد المجرب و اخي حسن

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

السلام عليكم

الاستاذ العزيز عادل اقدم اعتذاري فقد كان يجب اولاً تقديم الشكر على المساعدة والمجهود الذي بذلته وتستحق الشكر عليه ومن ثم ابداء الملاحظات على الملف لذا اكرر اسفي مرة اخرى على تسرعي وشكراً (فانا لا انسى فضلك بعد الله في مساعدتي في طلباتي الكثيرة)

ابواحمد

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

و كل ما قصدته انني عملت ما طلب مني فقط و ان كان هناك اي طلبات اخري انا علي استعداد

اخي حسن

نقلت الورقة الاولي بالملف .. لملف اخر لدي بما فيها من كود وازرار ، ولكن لم تعمل الازرار كما في ملفك .. فماذا تتوقع

وما الذي يجب ان اتبعه ليعمل الكود بملفات اخرى

اشكرك

هل نقلت اكواد الازرار التي بالصفحة؟

خالص حبي و تقديري لاخي ولد المجرب و اخي حسن

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

  • 1 year later...

السلام عليكم أنا تابعت الموضوع وهذا عمل تشكرون عليه لكني أريد أن أعرف كيف أستطيع نقل الكود لملفي علماً بأني كلما وضعت نسخ ولصق لملفي يظهر مربع الحوار باسم الماكرو ثم أضع أي اسم فيظهر هناك خطأ مالمشكلة فلقد واجهتني المشكلة نفسها في كل الأكواد؟مالحل؟

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

هذا الكود مثلا أين اجد اسمه؟

 [/size]

[size=7] [/size]


[size=7]On Error Resume Next

If Me.[T1] Then Exit Sub

    If Not Application.Intersect(Target, Range("myrange")) Is Nothing Then

	    Application.EnableEvents = False

	    Application.Undo

	    Application.EnableEvents = True

    End If

End Sub[/size]

[size=7]Private Sub Worksheet_SelectionChange(ByVal Target As Range)[/size]

[size=7]On Error Resume Next[/size]

[size=7]    Dim Rng As Range

    Static Cell As Range

    Static TheFormula As String

    Set Rng = Range("myrange")

    If Not Application.Intersect(Target, Rng) Is Nothing Then

	    If Not Cell Is Nothing Then

		    Cell.Formula = TheFormula

	    End If

	    Set Cell = ActiveCell

	    With Cell

		    TheFormula = .Formula

		    .Value = .Value

	    End With

    Else

	    With Cell

		    .Formula = TheFormula

	    End With

    End If[/size]


[size=7]End Sub[/size]


[size=7]

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

  • 2 weeks later...
  • 1 year later...

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

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

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

اخى العزيز

اليك هذا الكود ويوضع فى حدث الورقة المراد حماية المعادلات بها

Private Sub Worksheet_Selectionchange(ByVal Target As Range)
If Target.HasFormula = True Then ActiveCell.Offset(0, 1).Select
End Sub

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

اخى الكريم ... هذا شرح ايضا للحماية بدون اكواد

تابع هذا الفيديو

 

 

 

 

 

 

 

مرفق ملف به التطبيق

 

Book1.rar

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

  • 1 month later...
زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

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

Important Information