استفسار استفسار في برنامج الاكسل


PRO PC WORLD

عضو نشيط
الكاتب
إنضم
14 سبتمبر 2023
المشاركات
79
الحلول
1
مستوى التفاعل
51
النقاط
0
العمر
38
الإقامة
البحرين
الجنس
السلام عليكم اخوتي جمعاً

المشكلة في الاسل عندما انشأت ورقة عمل او اضفة ورقة العمل حصلت هذه المشكله اتمى النظر للمشكله من خلال الفيديو

 
التعديل الأخير بواسطة المشرف:

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

سأعود إليك قريبا إن شاء الله
 
المشكله معرفة بنسبة لي ولاكن لا اعرف كيفية علاجها

وهي المطلوب صياغة كود باستخدام لغة VBA لايقاف برمجة sheet33 طبعاً هو اسم الصفحة التي بسبب تحدث المشلكة فلو اشنا هذه الصفحة ستكون البرمجه على ما يرام فمطلبنا بازلة الشيت sheet33 باستخدام البرمجة (توضيح بسيط)
 
أخي الكريم راجعت المقطلع وأعتذر لأني لا أعلم الحل، ولست خبيرا في الاكسل

لكني عرضت مشكلتك على الذكاء الاصطناعي وأعطاني هذه الإجابه، فلعلها تفيدك:

_______________

المشكلة تكمن في وجود كود VBA (برمجة ماكرو) في الخلفية مصمم ليعتمد بشكل أساسي على شيت تُدعى بالاسم البرمجي Sheet33. وبمجرد حذف هذه الشيت، يتعطل الكود بالكامل ويُعطي رسالة خطأ (Error) تمنع الأزرار وبقية الأكواد من العمل بشكل تلقائي، وتتسبب في اختفاء الأجزاء المعتمدة عليها.
الحل البرمجي الذكي هنا ليس إجبار الشيت على البقاء، بل تعديل الكود برمجياً بحيث يتخطى (Ignore) أي أمر متعلق بـ Sheet33 إذا لم تكن موجودة، أو مسح الأسطر المتعلقة بها تماماً حتى يعود الملف للعمل بشكل طبيعي.
إليك الأكواد وطريقة تطبيقها :
🛠️ الحل الأول: كود VBA لتخطي الخطأ (ينصح به بشدة)
هذا الكود يوضع في بداية الماكرو المسبب للمشكلة، ووظيفته أنه إذا بحث عن Sheet33 ولم يجدها، يتجاهل الخطأ ويكمل تشغيل بقية الأزرار والأشهر (يناير، فبراير، إلخ) دون أي توقف.
في خبير الأكواد (VBA Editor)، أضف السطر التالي في أول الكود الرئيسي المربوط بالأزرار:

كود:
Sub FixAttendanceMacro()
    ' لتجاهل الخطأ في حال كانت الشيت محذوفة '
    On Error Resume Next
    
    ' ... هنا يكون كود التنقل والأزرار الحالي ... '
    ' Excel will now skip any line trying to call Sheet33 if it's missing '
    
    ' لإعادة تفعيل نظام الأخطاء الطبيعي في نهاية الكود '
    On Error GoTo 0
End Sub

✂️ الحل الثاني: كود VBA لحذف الشيت 33 نهائياً (بدون ظهور رسائل تحذير)
إذا كان هناك كود يقوم بإنشاء هذه الشيت تلقائياً وصاحب المقطع يريد كوداً يقوم بحذفها برمجياً فوراً دون أن تظهر رسالة التحذير المزعجة من إكسل (Microsoft Excel will permanently delete this sheet)، يمكنه استخدام هذا الكود:

كود:
Sub DeleteSheet33()
    ' إيقاف رسائل التحذير التلقائية من إكسل '
    Application.DisplayAlerts = False
    
    On Error Resume Next
    ' حذف الشيت باستخدام اسمها البرمجي أو اسمها الظاهر '
    Sheets("Sheet33").Delete
    ' إذا كان اسم الصفحة الظاهر مختلف، يتم استبدال Sheet33 بالاسم الحالي '
    On Error GoTo 0
    
    ' إعادة تفعيل رسائل التحذير '
    Application.DisplayAlerts = True
End Sub

📌 طريقة تطبيق الحل في الملف:
اضغط على Alt + F11 لفتح محرر لغة الفيجوال بيسك (VBA Editor).
في القائمة اليسرى، ابحث عن الموديل (Module) الذي يحتوي على الأكواد المربوطة بالشيت الرئيسية والأشهر.
إذا أراد إيقاف تأثيرها وتجنب الخطأ، يطبق الحل الأول بوضع On Error Resume Next في أول الدالة.
إذا أراد حذف الشيت برمجياً بالكامل، يضيف كود الحل الثاني.
 
عودة
أعلى أسفل