السلام عليكم ورحمة الله وبركاته،
لدي ملف إكسيل مدرسي يحتوي على شيت أساسي لبيانات الطلاب واسمه (A)، بالإضافة إلى 8 شيتات منفصلة لمواد دراسية (مثل شيت D وغيره).
وصف الجداول والمشكلة التقنية بالتفصيل:
في شيتات المواد، يبدأ جدول الطلاب من الصف 10.
عمود اسم الطالب يقع في العمود B، وعمود الرقم المدرسي يقع في العمود C.
درجات الشهور تبدأ من العمود D وتمتد يساراً لمسافة طويلة (تحتوي على مجاميع ومعادلات تفصيلية لكل شهر، وبعض الخلايا تحتوي على أرقام خام رُصدت يدوياً).
المطلوب:
أريد كود ماكرو (VBA) يتم ربطه بزر في الشيت الرئيسي، وظيفته عند الضغط عليه أن يقوم بـ:
عمل ترتيب أبجدي (فرز تصاعدي A to Z) للأسماء في العمود B لجميع شيتات المواد بالتوازي وبنفس اللحظة.
المشكلة الحالية: عند تشغيل أكواد الفرز التقليدية، يتحرك عمود الأسماء فقط، بينما تظل أرقام الدرجات المكتوبة يدوياً في الأعمدة اليسارية (من العمود D فما فوق) ثابتة في مكانها القديم، مما يؤدي إلى تداخل وخلبطة درجات الطلاب!
المطلوب كود يقوم بفرز الصف كاملاً (EntireRow) أو يجبر النطاق بالكامل من A10:ZZ على التحرك مع الاسم ككتلة واحدة أينما صعد أو نزل في الترتيب الأبجدي، مع حماية المعادلات والمجاميع المرتبطة بالصف.
مرفق لكم الملف (بعد استبدال الأسماء الحقيقية بأسماء وهمية تجريبية حفاظاً على الخصوصية). شاكر ومقدر لكم سلفاً مساعدتكم وجزاكم الله خيراً.
مدرسةة.xlsm