Note: The other languages of the website are Google-translated. Back to English

كيفية قفل الخلايا المحددة دون حماية ورقة العمل بأكملها في إكسيل؟

عادة ، تحتاج إلى حماية ورقة العمل بأكملها لتأمين الخلايا من التحرير. هل هناك أي طريقة لقفل الخلايا دون حماية ورقة العمل بأكملها؟ توصي هذه المقالة بطريقة VBA لك.

تأمين الخلايا المحددة دون حماية ورقة العمل بأكملها باستخدام VBA


تأمين الخلايا المحددة دون حماية ورقة العمل بأكملها باستخدام VBA

لنفترض أنك بحاجة إلى قفل الخلية A3 و A5 في ورقة العمل الحالية ، فإن رمز VBA التالي سيساعدك على تحقيق ذلك دون حماية ورقة العمل بأكملها.

1. انقر بزر الماوس الأيمن فوق علامة تبويب الورقة ، وحدد عرض الرمز من قائمة النقر بزر الماوس الأيمن.

2. ثم انسخ والصق رمز فبا أدناه في نافذة التعليمات البرمجية. انظر لقطة الشاشة:

رمز فبا: تأمين الخلايا المحددة دون حماية ورقة العمل بأكملها

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 1 Then
        If Target.Row = 3 Or Target.Row = 5 Then
            Beep
            Cells(Target.Row, Target.Column).Offset(0, 1).Select
        End If
    End If
End Sub

ملاحظة: في الكود ، عمود 1, الصف = شنومكس و الصف = شنومكس الإشارة إلى أنه سيتم تأمين الخلية A3 و A5 في ورقة العمل الحالية بعد تشغيل الكود. يمكنك تغييرها كما تريد.

3. اضغط على قديم + Q مفاتيح في نفس الوقت لإغلاق ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

تم الآن تأمين الخلية A3 و A5 في ورقة العمل الحالية. إذا حاولت تحديد الخلية A3 أو A5 في ورقة العمل الحالية ، فسيتم نقل المؤشر إلى الخلية المجاورة اليمنى تلقائيًا.


مقالات ذات صلة:


أفضل أدوات إنتاجية المكتب

Kutools for Excel يحل معظم مشاكلك ويزيد إنتاجيتك بنسبة 80٪

  • إعادة استخدام: أدخل بسرعة الصيغ المعقدة والرسوم البيانية وأي شيء استخدمته من قبل ؛ تشفير الخلايا مع كلمة السر إنشاء قائمة بريدية وإرسال رسائل البريد الإلكتروني ...
  • سوبر فورميولا بار (بسهولة تحرير أسطر متعددة من النص والصيغة) ؛ تخطيط القراءة (قراءة وتحرير أعداد كبيرة من الخلايا بسهولة) ؛ لصق في النطاق المصفى
  • دمج الخلايا / الصفوف / الأعمدة دون فقدان البيانات ؛ تقسيم محتوى الخلايا ؛ ادمج الصفوف / الأعمدة المكررة... منع تكرار الخلايا؛ قارن النطاقات
  • حدد مكرر أو فريد صفوف حدد صفوف فارغة (جميع الخلايا فارغة) ؛ البحث الفائق والبحث الغامض في العديد من المصنفات. تحديد عشوائي ...
  • نسخة طبق الأصل خلايا متعددة بدون تغيير مرجع الصيغة ؛ إنشاء المراجع تلقائيًا إلى أوراق متعددة أدخل الرموز النقطية، مربعات الاختيار والمزيد ...
  • استخراج النص، إضافة نص ، إزالة حسب الموضع ، إزالة الفضاء؛ إنشاء وطباعة المجاميع الفرعية لترحيل الصفحات ؛ التحويل بين محتوى الخلايا والتعليقات
  • سوبر تصفية (حفظ وتطبيق مخططات التصفية على أوراق أخرى) ؛ فرز متقدم حسب الشهر / الأسبوع / اليوم ، التكرار والمزيد ؛ مرشح خاص بواسطة bold، italic ...
  • اجمع بين المصنفات وأوراق العمل؛ دمج الجداول على أساس الأعمدة الرئيسية ؛ تقسيم البيانات إلى أوراق متعددة; تحويل دفعة xls و xlsx و PDF
  • أكثر من 300 ميزة قوية. يدعم Office / Excel 2007-2021 و 365. يدعم جميع اللغات. سهولة النشر في مؤسستك أو مؤسستك. الميزات الكاملة نسخة تجريبية مجانية لمدة 30 يومًا. ضمان استرداد الأموال لمدة 60 يومًا.
علامة تبويب kte 201905

يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
فرز التعليقات حسب
التعليقات (22)
لا يوجد تقييم. كن أول من يقيم!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أردت إخفاء الصيغة في الخلية O1. يرجى إبلاغ الصيغة لنفسه.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي أجاي ،
لإخفاء صيغة الخلايا ، يرجى اتباع الارتباط التشعبي أدناه للحصول على الحل.
https://www.extendoffice.com/documents/excel/1424-excel-hide-formulas.html
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي أجاي ،
إذا كنت تريد إخفاء الصيغة في الخلية O1 دون حماية ورقة العمل ، فيرجى تجربة البرنامج النصي VBA أدناه.
تغيير ورقة العمل الفرعية الخاصة (الهدف حسب القيمة كنطاق)
ثابت الصيغة كسلسلة
إذا كان Target.Address = "$ O $ 1" إذن
مع الهدف
الصيغة =
.Value = .Value
انتهت ب
آخر
مع النطاق ("O1")
إذا لم يكن كذلك
الصيغة = الصيغة
إنهاء حالة
انتهت ب
إنهاء حالة
نهاية الفرعية

بعد استخدام الكود ، يبدو أن صيغة الخلية O1 تغيرت إلى نتيجة الصيغة. في الواقع ، يخفي الصيغة بعرض نتيجة الصيغة في شريط الصيغة. وستظهر الصيغة في حالة كسر الكود.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
كيف يمكنني قفل نطاق من الصفوف ، لنقل 4-46 والأعمدة 8 و 10
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي AJ ،
إذا كنت تريد قفل نطاق من الصفوف والأعمدة المحددة ، يرجى تجربة البرنامج النصي VBA أدناه.

تغيير ورقة العمل الفرعية الخاصة (الهدف حسب القيمة كنطاق)
خافت xRg كمدى
خافت xRgEx كنطاق
خافت xRgExEach كنطاق
على خطأ استئناف التالي
Application.ScreenUpdating = خطأ
قم بتعيين xRg = Range ("H: J، 4: 46") "قم بتغيير نطاق الصفوف ونطاق الأعمدة الذي ستقوم بتأمينه دون حماية ورقة العمل
تعيين xRgEx = Application.Intersect (xRg ، الهدف)
إذا كان xRgEx لا شيء ، فاخرج من Sub
الخلايا (1 ، 1) - حدد "تحديد خلية ستنتقل إليها بعد تحديد الخلايا المقفلة
Application.ScreenUpdating = ترو
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يعد هذا حلاً رائعًا ، خاصة في المصنفات المشتركة حيث يكون تشغيل الحماية / إيقاف تشغيلها غير مدعوم. شكرا جزيلا لك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي كريستال ،

لقد قدمت لي حلاً (نصفه) كنت أعاني منه خلال الأسابيع القليلة الماضية ، لكنني سأحتاج إلى المزيد من التلميحات.

كيف يمكن تطبيق ذلك على نطاق جدول فقط ، وليس ورقة عمل كاملة؟ شكرا لك مقدما.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يوم جيد،
نظرًا لأن رمز VBA المقدم أدناه ، يرجى تغيير النطاق المحدد "H: J، 4: 46" إلى نطاق الجدول الذي تريد قفله في ورقة العمل فقط.
ويجب أن تكون الخلايا (1,1،XNUMX) هي الخلية الموجودة خارج نطاق الجدول. عند النقر فوق أي خلية في نطاق الجدول ، سيتم نقل المؤشر إلى تلك الخلية تلقائيًا.

تغيير ورقة العمل الفرعية الخاصة (الهدف حسب القيمة كنطاق)
خافت xRg كمدى
خافت xRgEx كنطاق
خافت xRgExEach كنطاق
على خطأ استئناف التالي
Application.ScreenUpdating = خطأ
قم بتعيين xRg = Range ("H: J، 4: 46") "قم بتغيير نطاق الصفوف ونطاق الأعمدة الذي ستقوم بتأمينه دون حماية ورقة العمل
تعيين xRgEx = Application.Intersect (xRg ، الهدف)
إذا كان xRgEx لا شيء ، فاخرج من Sub
الخلايا (1 ، 1) - حدد "تحديد خلية ستنتقل إليها بعد تحديد الخلايا المقفلة
Application.ScreenUpdating = ترو
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
بمجرد تشغيل VBA لقفل تلك الخلايا ، كيف يمكنك فتحها؟
هل يجب أن يكون لديك رمز VBA لإلغاء القفل؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا رينيك ،

نحن لا نقدم رمز VBA غير المؤمّن ، ونكسر الكود يدويًا ثم يمكن تحرير المنطقة بشكل طبيعي.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي كريستال ،

هل هناك على أي حال يمكن تشغيل هذا الماكرو تلقائيًا عند فتح الملف ، أو عند النقر فوق أي خلية. لا أريد أن يضطر الأشخاص إلى تشغيل الماكرو يدويًا من أجل حماية النطاقات المطلوبة.

أيضًا ، سأحتاج إلى حماية 12 نطاقًا غير متجاور. على سبيل المثال: I11: I20 و K11: K20 و M11: 20 إلخ ... كيف أفعل هذا؟

أخيرًا ، وقد يطلب هذا كثيرًا ، ولكن هل من الممكن تطبيق الحماية على نطاقات الأمثلة التي قدمتها أعلاه ، ولكن بعد ذلك قم بتمديد الحماية إلى صفوف إضافية عند إضافة صفوف جديدة؟ بمعنى آخر ، سيتم تطبيق الحماية على I11: I20 و K11: K20 و M11: 20 ، ولكن سيتمكن المستخدم من إضافة صف جديد (الصف 21) ببيانات جديدة ، ولكن بمجرد إضافة الصف الجديد ، ثم تنطبق الحماية على I11: I21 و K11: K21 و M11: 21. هل أطلب القمر؟ :-)

شكرا لك على كل ما قدمته بالفعل! لا أستطيع أن أشكرك أنت وأشخاص آخرين مثلك بما يكفي لتقاسم معرفتك. مدهش!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي كارلوس،
يمكن أن تساعدك التعليمات البرمجية لـ VBA التالية في حل المشكلة. يرجى ملء النطاقات الخاصة بك في السطر الرابع من الكود والضغط على مفاتيح Alt + Q للعودة إلى ورقة العمل. ثم يرجى الانتقال إلى ورقة عمل أخرى ثم العودة إلى الورقة الحالية لتفعيل الكود. شكرا لك على تعليقك.

خافت xRg كمدى
ورقة عمل فرعية خاصة_Activate ()
إذا كان xRg لا شيء إذن
تعيين xRg = Union (Range ("I10: I20") ، النطاق ("K10: K20") ، النطاق ("M10: M20") ، النطاق ("O10: O20"))
إنهاء حالة
نهاية الفرعية
ورقة عمل فرعية خاصة تغيير (هدف ByVal كنطاق)
خافت أنا كعدد صحيح
خافت xRg جديد كمجموعة
خافت xRgCell كمجموعة
على خطأ استئناف التالي
Application.EnableEvents = خطأ
بالنسبة لـ I = 1 إلى xRg.Areas.Count
قم بتعيين xRgLCell = xRg.Areas.Item (I)
اضبط xRgLCell = xRgLCell (xRgLCell.Count). الإزاحة (1 ، 0)
إذا كان Target.Address = xRgLCell.Address ثم
إذا كان xRgNew لا شيء إذن
تعيين xRgNew = الهدف
آخر
تعيين xRgNew = الاتحاد (xRgNew ، الهدف)
إنهاء حالة
إنهاء حالة
التالى
ضبط xRg = Union (xRg، xRgNew)
Application.EnableEvents = صحيح
نهاية الفرعية
تغيير ورقة العمل الفرعية الخاصة (الهدف حسب القيمة كنطاق)
عند الخطأ ، انتقل إلى Exitsub
إذا كان (ليس التقاطع (xRg ، الهدف) لا شيء) و (الهدف ، العدد = 1) إذن
الهدف. الإزاحة (0 ، 1)
إنهاء حالة
Exitsub:
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي كريستال ،

شكرا جزيلا لهذا! إنه يعمل بشكل مثالي.

لقد استخدمت الكود الموجود في تعليق Carlos لتشغيل الماكرو تلقائيًا أثناء فتح الملف. كنت أتساءل عما إذا كانت هناك طريقة للحصول على زر "تراجع" أو شيء من هذا القبيل ، والذي يسمح لك بإلغاء هذا الرمز ، وبالتالي فتح تلك النطاقات التي تم قفلها.

أريد أن يتم قفلها معظم الوقت ، لكني أرغب في فتحها إذا احتجت إلى تغيير أي من البيانات. السبب الوحيد الذي يجعلني لا أحمي الورقة بأكملها هو أنه إذا قمت بذلك ، فسيؤدي ذلك إلى إلغاء تنشيط القدرة على التوسع في الجداول. هذا بدوره ، قم بالتوسيع على مخطط خطي.

شكرا جزيلا علي المساعدة!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا ايرين ،
يمكنك فك الشفرة يدويًا بالنقر فوق الزر "فاصل" في نافذة Microsoft Visual Basic for Applications لإلغاء تأمين تلك النطاقات. وقم بتشغيل الكود لتنشيطه مرة أخرى. شكرا على تعليقك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،
التعليق faire pour verrouiller de la cellule B8 à B10000؟
دافانس ميرسي دي بوتري ريبونسي.
كريستوف
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل هناك أي وظيفة يجب تعيينها على سبيل المثال الصف 2 ، الخلية 13 إلى 900؟ أو هل أحتاج إلى ثقب اسم كل خلية في الكود يدويًا؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،

لقد استخدمت الكود المقدم لكارلوس وفعلت بالضبط ما أردت أن تفعله. هل هناك طريقة لإزاحة بعض النطاقات داخل ROW على يمين النطاق المحمي (كما يفعل رمز "Carlos" بالفعل) ، ولكن هل هناك نطاقات أخرى تم إزاحتها داخل COLUMN إلى الخلية الواقعة أسفل النطاق المحمي مباشرةً؟ حاولت إدخال رمز "Carlos" مرتين وتغيير الإزاحة ، لكنني تلقيت العديد من الأخطاء.

شكراً لك
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا تشارلي ،
آسف لا أستطيع مساعدتك في ذلك حتى الآن. شكرا لك على تعليقك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،

لقد حاولت استخدام الكود للنطاقات التي نشرتها سابقًا ولكنها لا تعمل - هل يمكنك إعلامي إذا كان ينبغي عليّ دمج رمز النطاقات أعلاه أو أدناه؟


شكر
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لقد حاولت لا أستطيع إخفاء الصيغة دون حماية.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل هناك طريقة لتشغيل رمز VBA تلقائيًا في كل مرة يفتح فيها شخص ما الملف؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا Aaron ، بعد إضافة الرمز ، يرجى حفظ المصنف كمصنف Excel Macro-Enabled (انقر فوق قم بتقديم > حفظ باسم > حدد مجلدًا للملف> اختر مصنف Excel ممكن بماكرو من حفظ ك اكتب القائمة المنسدلة> حفظ). بعد ذلك ، في كل مرة تفتح فيها الملف ، يعمل الرمز تلقائيًا.
لا توجد تعليقات منشورة هنا حتى الآن
اترك تعليقاتك
النشر كضيف
×
قيم المنشور:
0   الشخصيات
المواقع المقترحة

تواصل معنا

حقوق التأليف والنشر © 2009 - شبكة الاتصالات العالمية.extendoffice.com. | كل الحقوق محفوظة. مشغل بواسطة ExtendOffice. | | خريطة الموقع
Microsoft وشعار Office هما علامتان تجاريتان أو علامتان تجاريتان مسجلتان لشركة Microsoft Corporation في الولايات المتحدة و / أو دول أخرى.
محمي بواسطة Sectigo SSL