amir501 قام بنشر أغسطس 12, 2010 قام بنشر أغسطس 12, 2010 اخواني السلام عليكم ارجو تصحيح هذا الكود وهو عبارة عن نصفين النصف الاول يقوم بتحويل المعادلات الى قيمها والنصف الثاني من الكود يقوم باخفاء الصفحات المحددة ...وقد جمعا معا لاداء دورهما بتاريخ معين والمشكلة هي ان الكود بمجرد تشغيل الملف يقوم بعمله ويتجاهل التاريخ المحدد بالكود ... نرجو من الا خوة ذوي الخبرة بالاكود تصحيح الخطا ...واين اضع الكود في مديول او في 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
ياسر خليل أبو البراء قام بنشر أغسطس 12, 2010 قام بنشر أغسطس 12, 2010 أخي عامر جرب الكود بالشكل التالي 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
amir501 قام بنشر أغسطس 13, 2010 الكاتب قام بنشر أغسطس 13, 2010 أخي عامر جرب الكود بالشكل التالي 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 اخي ياسر السلام عليكم جزاك الله كل خير ومبارك رمضان عليك....اما بالنسبة للكود وضعته في موديول لكنه بمجرد تشغيل الملف اي قبل بلوغ التاريخ المحدد بداخل الكود فانه يقوم باغلاق الملف...ارجو مراجعة الكود وكشف الخطا... اكرر شكري وامتناني لك ولاخواني اعظاء هذا المنتدى
konafa4000 قام بنشر أغسطس 13, 2010 قام بنشر أغسطس 13, 2010 احذف السطر الاخير من الكود ActiveWorkbook.Close سيتم تنفيذ الكود ولن يتم اغلاق الملف
ياسر خليل أبو البراء قام بنشر أغسطس 13, 2010 قام بنشر أغسطس 13, 2010 أخي الغالي الكود يعمل معي الآن بشكل صحيح جرب الملف التالي Amir.rar
amir501 قام بنشر أغسطس 14, 2010 الكاتب قام بنشر أغسطس 14, 2010 أخي الغالي الكود يعمل معي الآن بشكل صحيح جرب الملف التالي اخي الحبيب ياسر ..لماذا لا يعمل معي الكود واللللللله راح اجن يا اخوان لقد قمت انت يا اخي ياسر بضبط التاريخ على 10 /09/2010 لكن عند تشغيل الملف وقبل بلوغ الناريخ قام الكود باخفاء الصفحات واغلاق الملف ....لاحظت هذا التغير في الكود وهو الاتي (If Date < Expiry Then) وهي اشارة (>) ... وقمت بتغير الاشارة من اصغر من التاريخ الى اشارة < بعد هذا التاريخ ولكن لا زال الكود لا يعمل ......اسف لازعاجك مرة اخرى واكرر شكري وامتناني لك اخي ياسر
ياسر خليل أبو البراء قام بنشر أغسطس 14, 2010 قام بنشر أغسطس 14, 2010 الأخ عامر سلامتك من الجنان وربنا يوعدك بالفردوس الأعلى من الجنان لي سؤالين ::الأول : هل جربت الملف في المشاركة رقم 5؟ وهل عمل معك بشكل جيد؟ الثاني:أطلب منك التأكد من تاريخ الجهاز لديك فقد يكون هو السبب فيما أنت فيه من حيرة؟؟
amir501 قام بنشر أغسطس 14, 2010 الكاتب قام بنشر أغسطس 14, 2010 اخي ياسر لا حرمك الله من فردوسه انت وقارئين هذا الموضوع ... اما بالنسبة لتاريخ الجهاز لدي فهو دقيق 100% لقد جربت كل المحاولات وكل ماتوصلت اليه هو الملف المرفق عند تشغيل الملف يقوم باغلاقه تلقائيا وعندما قمت بتغير تاريخ الجهاز الى 1/10/2010 قام الكود باخفاء جميع الصفحات ماعدا الصفحة الاولى مع عدم حذف المعادلات... تقبل تحياتي اخي ياسر ...واكرر اعتذاري لكثرة اسئلتي ...لكني اذكرك بقوله تعالى بسم الله الرحمن الرحيم * قل هل يستوي الذين يعلمون والذين لا يعلمون* Amir_Yasser.rar
konafa4000 قام بنشر أغسطس 14, 2010 قام بنشر أغسطس 14, 2010 اخى amir501 الكود الاخير يعمل بشكل صحيح وجيد ما تغفله أنت انه عندما يكون التاريخ بعد 10/9/2010 فان الكود ينفذ تلقائيا ويغير المعادلات الى القيم فى الشيت 2 ثم يخفى الشيت 2،3،4،5 وتظل هذه الشيتات مخفيه (حالة تحقق الشرط) فعندما تعيد التاريخ الى ماقبل 10/9/2010 يحدث ان الملف (حالة عدم تحقق الشرط ) يحفظ الملف على هيئته ( اخفاء الشيتات) ويقفل تلقائيا عندها تعتقد أن الكود قد تنفذ ولكنه لا ينفذ بالمرة ولا تتغير المعادلات الى قيم لانها متغيرة اصلا والشيتات مخفية ايضا فتعتقد ان الكود قد نفذ ولكنه فى حقيقة الامر ينفذ حالة عدم تحقق الشرط ارجوا ان اكون قد اوضحت لك ما يحدث معك بالضبط اخوك كنافة
konafa4000 قام بنشر أغسطس 14, 2010 قام بنشر أغسطس 14, 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 تم تعديل أغسطس 14, 2010 بواسطه konafa4000
amir501 قام بنشر أغسطس 14, 2010 الكاتب قام بنشر أغسطس 14, 2010 اخي الكريم (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 )
konafa4000 قام بنشر أغسطس 14, 2010 قام بنشر أغسطس 14, 2010 (معدل) اخى amir501 لقد فهمت من كلامك انك تريد عند بلوغ التاريخ المعين (Expiry) يقوم الكود بتحويل المعادلات الى قيمها واخفاء الشيتات وحفظ العمل (الملف بوضعه الجديد) ثم اغلاق الملف اذا كان هذا ما تريده فانه يجب ان تضيف السطرين ActiveWorkbook.Save ActiveWorkbook.close بعد السطر Sheet1.Select لكن فى هذه الحالة بمجرد فتح الملف اول مرة بعد التاريخ المعين (Expiry) سينفذ الكود ويقفل الملف تلقائيا ولن تستطيع فتح الملف مجددا بعد ذلك الا اذا ارجعت تاريخ الجهاز الى ماقبل التاريخ المعين (Expiry) وعند ارجاعك لتاريخ الجهاز وفتح الملف ستجده محفوظ بالوضع الجديد المعادلات محولة لقيم والشيتات مخفية (لذا لا افضل اضافة السطر ActiveWorkbook.close حتى تستطيع فتح الملف ثانية بعد التاريخ المعين دون الحاجة لارجاع تاريخ الجهاز ) (لاحظ فى كل الاحوال لن يكون هناك داع للسطرين المختصين بحالة عدم تحقق الشرط else و ActiveWorkbook.Save) تم تعديل أغسطس 14, 2010 بواسطه konafa4000
konafa4000 قام بنشر أغسطس 14, 2010 قام بنشر أغسطس 14, 2010 ومرفق الملف بعد التعديل (يحتوى على اغلاق تلقائى بعد تنفيذ الكود) نفذ الخطوات التالية تاكد من ان تاريخ الجهاز قبل تاريخ (expiry) 1/10/2010) افتح الملف ستجد الملف كامل دون تنفيذ الكود الشيت 3 بها معادلات اقفل الملف دون اى شي او اجعل تاريخ الجهاز بعد تاريخ (expiry) 1/10/2010) افتح الملف ستجد الملف ينفذ الكود ثم يغلق تلقائيا اذا اردت فتح الملف ثانية سيغلق تلقائيا ولن تقدر على فتحه ثانية ارجع تاريخ جهازك الى ما قبل تاريخ (expiry) 1/10/2010) افتح الملف سيفتح الملف ولكنك ستجده بالوضع الجديد الشيتات مخفيه اظهر الشيت 3 ستجد المعادلات اصبحت قيم Copy of Amir_Yasser.rar
amir501 قام بنشر أغسطس 14, 2010 الكاتب قام بنشر أغسطس 14, 2010 اخى amir501 لقد فهمت من كلامك انك تريد عند بلوغ التاريخ المعين (Expiry) يقوم الكود بتحويل المعادلات الى قيمها واخفاء الشيتات وحفظ العمل (الملف بوضعه الجديد) ثم اغلاق الملف اذا كان هذا ما تريده فانه يجب ان تضيف السطرين ActiveWorkbook.Save ActiveWorkbook.close بعد السطر Sheet1.Select لكن فى هذه الحالة بمجرد فتح الملف اول مرة بعد التاريخ المعين (Expiry) سينفذ الكود ويقفل الملف تلقائيا ولن تستطيع فتح الملف مجددا بعد ذلك الا اذا ارجعت تاريخ الجهاز الى ماقبل التاريخ المعين (Expiry) وعند ارجاعك لتاريخ الجهاز وفتح الملف ستجده محفوظ بالوضع الجديد المعادلات محولة لقيم والشيتات مخفية (لذا لا افضل اضافة السطر ActiveWorkbook.close حتى تستطيع فتح الملف ثانية بعد التاريخ المعين دون الحاجة لارجاع تاريخ الجهاز ) (لاحظ فى كل الاحوال لن يكون هناك داع للسطرين المختصين بحالة عدم تحقق الشرط else و ActiveWorkbook.Save) الحمد لله الحمد لله الحمد لله اخي الكريم اشكرك كل الشكر جعلها في ميزان حسناتك والله لو كنت جنبك لقبلتك من بين عيونك الحلوة نعم هذا بالضبط ما ابحث عنه اكرر شكري وامتناني وتقدري لشخصكم الكريم اخوك بالله عامر الموسى
konafa4000 قام بنشر أغسطس 14, 2010 قام بنشر أغسطس 14, 2010 ومرفق الملف بعد التعديل (لايحتوى على اغلاق تلقائى بعد تنفيذ الكود) نفذ الخطوات التالية تاكد من ان تاريخ الجهاز قبل تاريخ (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.