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

كيف احول المعادلات الى قيم ؟ (تم تعديل العن&#1


amir501

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

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


Sub Auto_open()

Dim Expiry As Date

 Expiry = DateValue("10/09/2010")

	If Date > Expiry Then

Dim CEL As Range

 Application.ScreenUpdating = False

Application.Calculation = xlManual

Sheets(2).Activate

For Each CEL In ActiveSheet.UsedRange

If CEL.HasFormula = True Then CEL = CEL.Value

Next CEL

End If

Application.Calculation = xlAutomatic

Application.ScreenUpdating = False

Sheet2.Visible = xlSheetVeryHidden

Sheet3.Visible = xlSheetVeryHidden

Sheet4.Visible = xlSheetVeryHidden

Sheet5.Visible = xlSheetVeryHidden

Sheet1.Visible = True

Sheet1.Select

ActiveWorkbook.Save

ActiveWorkbook.Close

End Sub

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

أخي عامر

جرب الكود بالشكل التالي



Sub Auto_open()

Dim Expiry As Date

 Expiry = DateValue("10/09/2010")

If Date < Expiry Then

    Dim CEL As Range

     Application.ScreenUpdating = False

    Application.Calculation = xlManual

    Sheets(2).Activate

    For Each CEL In ActiveSheet.UsedRange

        If CEL.HasFormula = True Then CEL = CEL.Value

    Next CEL

    Application.Calculation = xlAutomatic

    Application.ScreenUpdating = False

    Sheet2.Visible = xlSheetVeryHidden

    Sheet3.Visible = xlSheetVeryHidden

    Sheet4.Visible = xlSheetVeryHidden

    Sheet5.Visible = xlSheetVeryHidden

    Sheet1.Visible = True

    Sheet1.Select

Else

    ActiveWorkbook.Save

    ActiveWorkbook.Close

End If

End Sub

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

أخي عامر

جرب الكود بالشكل التالي



Sub Auto_open()

Dim Expiry As Date

 Expiry = DateValue("10/09/2010")

If Date < Expiry Then

    Dim CEL As Range

     Application.ScreenUpdating = False

    Application.Calculation = xlManual

    Sheets(2).Activate

    For Each CEL In ActiveSheet.UsedRange

        If CEL.HasFormula = True Then CEL = CEL.Value

    Next CEL

    Application.Calculation = xlAutomatic

    Application.ScreenUpdating = False

    Sheet2.Visible = xlSheetVeryHidden

    Sheet3.Visible = xlSheetVeryHidden

    Sheet4.Visible = xlSheetVeryHidden

    Sheet5.Visible = xlSheetVeryHidden

    Sheet1.Visible = True

    Sheet1.Select

Else

    ActiveWorkbook.Save

    ActiveWorkbook.Close

End If

End Sub

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

اكرر شكري وامتناني لك ولاخواني اعظاء هذا المنتدى

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

أخي الغالي

الكود يعمل معي الآن بشكل صحيح

جرب الملف التالي

اخي الحبيب ياسر ..لماذا لا يعمل معي الكود واللللللله راح اجن يا اخوان لقد قمت انت يا اخي ياسر بضبط التاريخ على 10 /09/2010

لكن عند تشغيل الملف وقبل بلوغ الناريخ قام الكود باخفاء الصفحات واغلاق الملف ....لاحظت هذا التغير في الكود وهو الاتي (If Date < Expiry Then) وهي اشارة (>) ...

وقمت بتغير الاشارة من اصغر من التاريخ الى اشارة < بعد هذا التاريخ ولكن لا زال الكود لا يعمل ......اسف لازعاجك مرة اخرى واكرر شكري وامتناني لك اخي ياسر

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

الأخ عامر

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

لي سؤالين ::الأول : هل جربت الملف في المشاركة رقم 5؟ وهل عمل معك بشكل جيد؟

الثاني:أطلب منك التأكد من تاريخ الجهاز لديك فقد يكون هو السبب فيما أنت فيه من حيرة؟؟

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

اخي ياسر لا حرمك الله من فردوسه انت وقارئين هذا الموضوع ...

اما بالنسبة لتاريخ الجهاز لدي فهو دقيق 100%

لقد جربت كل المحاولات وكل ماتوصلت اليه هو الملف المرفق عند تشغيل الملف يقوم باغلاقه تلقائيا وعندما قمت بتغير تاريخ الجهاز الى 1/10/2010 قام الكود باخفاء جميع الصفحات ماعدا الصفحة الاولى مع عدم حذف المعادلات...

تقبل تحياتي اخي ياسر ...واكرر اعتذاري لكثرة اسئلتي ...لكني اذكرك بقوله تعالى بسم الله الرحمن الرحيم * قل هل يستوي الذين يعلمون والذين لا يعلمون*

Amir_Yasser.rar

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

اخى amir501 الكود الاخير يعمل بشكل صحيح وجيد

ما تغفله أنت انه عندما يكون التاريخ بعد 10/9/2010 فان الكود ينفذ تلقائيا ويغير المعادلات الى القيم فى الشيت 2 ثم يخفى الشيت 2،3،4،5 وتظل هذه الشيتات مخفيه (حالة تحقق الشرط)

فعندما تعيد التاريخ الى ماقبل 10/9/2010 يحدث ان الملف

(حالة عدم تحقق الشرط ) يحفظ الملف على هيئته ( اخفاء الشيتات) ويقفل تلقائيا عندها تعتقد أن الكود قد تنفذ ولكنه لا ينفذ بالمرة ولا تتغير المعادلات الى قيم لانها متغيرة اصلا والشيتات مخفية ايضا

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

ارجوا ان اكون قد اوضحت لك ما يحدث معك بالضبط

اخوك كنافة

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

لكى أوضح كلامى أكثر

لقد حذفت سطرين من هذا الكود لكى تتضح الامور تمام امامك

سنستخدم الشيت 3 "Sheet3" ولكنها فى الاصل رقم 4 (لاحظ ذلك جيدا)

فى الملف المرفق أولا قبل فتحه عليك أن تتاكد من أن تاريخ جهازك أقل من 10/9/2010 (حالة عدم تحقق الشرط)

عند فتح الملف سيفتح الملف عادى جدا وفى الشيت 3 ستجد ان المعادلات قائمة فى الشيت 3

(ملحوظة لفدحذفت السطر ActiveWorkbook.close) لان هذا السطر فى هذه الحالة كان سوف يقوم باقفال الملف تلقائيا ولكنى عمدت ان احذف هذا السطر لكى يظل الملف مفتوح وترى ان المعادلات قائمة فى الشيت 3

ثم اغلق الملف ثانية لا تلعب فى شيئ ولا تحفظ

ثانيا اجعل تاريخ جهازك اكبر من 10/9/2010 (حالة تحقق الشرط)

افتح الملف سيفتح الملف وستختفى الشيت 1، 2 ، 4 (وستظل الشيت 3 وهى 4 فى الكود ) حيث اننى قد حذفت السطر

Sheet4.Visible = xlSheetVeryHidden

ستلاحظ فى الشيت 3 ان المعادلات تحولت الى قيمها وقد اخفيت الشيتات 1،2،4

اغلق الملف وحاذر من الحفظ لان الحفظ سيجعل الملف على هيئته الحالية (فعند عودة تاريخ جهازك الى قبل 9/10/2010 سيظل الملف كما هو وتعتقد ان الكود قد تنفذ)

اذا لم تحفظ اعد تاريخ جهازك مرة ثانية الى ما قبل 10/9/2010 وافتح الملف ستجد أن الكود لا يعمل كما حدث أولا

ارجوا ان اكون قد وفقت فى توصيل المعلومة

Amir_Yasser.rar

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

اخي الكريم (konafa4000 ) نعم الحمد لله لقد توضحت الصورة 100% واشكرك كل الشكر واصبح الكود بالشكل التالي لكن المشكلة الوحيد هي التي كانت سبب المشكلة وهي كيف يمكنني ان اجبر الكود على ان يحفظ ويغلق الملف دون ان اضهار اي رسالة اي عند بلوغ التاريخ يقوم الكود التالي بتحويل كافة المعادلات الى قيمها واخفاء ا لشيتات وحفظ العمل واغلاق الملف


Sub auto_open()

Dim Expiry As Date

    'If today's date > expiry date, the file will close

    Expiry = DateValue("01/010/2010")

    If Date > Expiry Then

Dim CEL As Range

Application.ScreenUpdating = False

Application.Calculation = xlManual

For S = 1 To ActiveWorkbook.Sheets.Count

Sheets(S).Activate

For Each CEL In ActiveSheet.UsedRange

If CEL.HasFormula = True Then CEL = CEL.Value

Next CEL

Next S

Application.Calculation = xlAutomatic

    Application.ScreenUpdating = False

    Sheet2.Visible = xlSheetVeryHidden

    Sheet3.Visible = xlSheetVeryHidden

    Sheet4.Visible = xlSheetVeryHidden

    Sheet5.Visible = xlSheetVeryHidden

    Sheet1.Visible = True

    Sheet1.Select

Else

    ActiveWorkbook.Save

End If

End Sub


اكرر شكري وامتناي لك ولكل اخواني الذين ساعدوني في هذا الكود تقبل تحياتي وشكري اخي الحبيب (konafa4000 )

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

اخى amir501

لقد فهمت من كلامك انك تريد عند بلوغ التاريخ المعين (Expiry) يقوم الكود بتحويل المعادلات الى قيمها واخفاء الشيتات وحفظ العمل (الملف بوضعه الجديد) ثم اغلاق الملف

اذا كان هذا ما تريده فانه يجب ان تضيف السطرين

ActiveWorkbook.Save

ActiveWorkbook.close

بعد السطر

Sheet1.Select

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

(لاحظ فى كل الاحوال لن يكون هناك داع للسطرين المختصين بحالة عدم تحقق الشرط else و ActiveWorkbook.Save)

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

ومرفق الملف بعد التعديل (يحتوى على اغلاق تلقائى بعد تنفيذ الكود)

نفذ الخطوات التالية

تاكد من ان تاريخ الجهاز قبل تاريخ (expiry) 1/10/2010)

افتح الملف

ستجد الملف كامل دون تنفيذ الكود الشيت 3 بها معادلات

اقفل الملف دون اى شي او

اجعل تاريخ الجهاز بعد تاريخ (expiry) 1/10/2010)

افتح الملف

ستجد الملف ينفذ الكود ثم يغلق تلقائيا

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

ارجع تاريخ جهازك الى ما قبل تاريخ (expiry) 1/10/2010)

افتح الملف

سيفتح الملف ولكنك ستجده بالوضع الجديد الشيتات مخفيه اظهر الشيت 3 ستجد المعادلات اصبحت قيم

Copy of Amir_Yasser.rar

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

اخى amir501

لقد فهمت من كلامك انك تريد عند بلوغ التاريخ المعين (Expiry) يقوم الكود بتحويل المعادلات الى قيمها واخفاء الشيتات وحفظ العمل (الملف بوضعه الجديد) ثم اغلاق الملف

اذا كان هذا ما تريده فانه يجب ان تضيف السطرين

ActiveWorkbook.Save

ActiveWorkbook.close

بعد السطر

Sheet1.Select

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

(لاحظ فى كل الاحوال لن يكون هناك داع للسطرين المختصين بحالة عدم تحقق الشرط else و ActiveWorkbook.Save)

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

نعم هذا بالضبط ما ابحث عنه اكرر شكري وامتناني وتقدري لشخصكم الكريم

اخوك بالله عامر الموسى

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

ومرفق الملف بعد التعديل (لايحتوى على اغلاق تلقائى بعد تنفيذ الكود)

نفذ الخطوات التالية

تاكد من ان تاريخ الجهاز قبل تاريخ (expiry) 1/10/2010)

افتح الملف

ستجد الملف كامل دون تنفيذ الكود الشيت 3 بها معادلات

اقفل الملف دون اى شي او

اجعل تاريخ الجهاز بعد تاريخ (expiry) 1/10/2010)

افتح الملف

ستجد الملف ينفذ الكود ويخفى الشيتات ويظل مفتوحا

اغلق الملف ثم افتحه ثانية ستجده على الوضع الجديد (الشيتات مخفيه ) اظهر الشيت 3 ستجد المعادلات بها اصبحت قيم

لن تحتاج الى ارجاع التاريخ الى ما قبل تاريخ (expiry) 1/10/2010)

تحياتى

KONAFA4000

2Copy of Amir_Yasser.rar

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

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