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

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

قام بنشر

السلام عليكم السادة الخبراء

رجاء المساعدة فى تعديل الكود التالى لكي يعمل على الصفوف ارقام من 9 الى 21 فقط و باقى الشيت لا يشمله الكود

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect "45"
Target.Locked = True
ActiveSheet.Protect "45"
End Sub

مرفق ملف للتوضيح

شكرا جزيلا 
 

كود حماية.xlsm

قام بنشر

جرب هذا الكود
يعمل على الصفوف من 9 إلى 21 فقط

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row >= 9 And Target.Row <= 21 Then
ActiveSheet.Unprotect "45"
Target.Locked = True
ActiveSheet.Protect "45"
End If
End Sub

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

  • Like 1
قام بنشر

الف الف شكر استاذنا الفاضل أ / محمد صالح

الف الف شكر استاذنا الفاضل أ / على بن على

تعديل الكود رائع و يعمل جيدا 

زادكم الله من فضله و علمه

 

السلام عليكم الاساتذة الافاضل

الف شكر على تعب حضراتكم

و اتوجه بالشكر للاستاذ الفاضل حسونه  حسين على تعبه و تنفيذ الكود بشكل احترافى زادكم الله من علمه و فضله

 

الاستاذ على بن على 

الف شكر لحضرتك لكن الكود يعمل تلقائى المطلوب عند الضغط على زر تشغيل يشتغل غير ذلك لا يعمل

  • 3 weeks later...
  • أفضل إجابة
قام بنشر

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


Option Explicit
Sub CClose()
    Dim Ws As Worksheet, RangeArea As Range, C As Range, MergedRange As Range
    kh_Application False
    Set Ws = ThisWorkbook.ActiveSheet
    With Ws
    Set RangeArea = .Range(.Cells(1, 1).Address, .Cells(653, IIf(ActiveCell.Column = 1, 1, ActiveCell.Column - 1)).Address)
    .Unprotect Password:="1"
    If ActiveCell.Row <= 653 Then
        For Each C In RangeArea
            If C.MergeCells = True And C.MergeArea.Rows.Count = 1 Then
                Set MergedRange = C.MergeArea
                MergedRange.UnMerge
                MergedRange.HorizontalAlignment = xlCenterAcrossSelection
            End If
        Next C
        RangeArea.Locked = True
    End If
    .Protect Password:="1", DrawingObjects:=True, Contents:=True, Scenarios:=True
    End With
    kh_Application True
End Sub

Sub COpen()
    kh_Application False
    ActiveSheet.Unprotect Password:="1"
    If ActiveCell.Row <= 653 Then
        Range(Cells(1, 1).Address, Cells(653, ActiveCell.Column).Address).Locked = False
    End If
    ActiveSheet.Protect Password:="1", DrawingObjects:=True, Contents:=True, Scenarios:=True
    kh_Application True
End Sub
Sub kh_Application(ibol As Boolean)
    With Application
        .ScreenUpdating = ibol
        .Calculation = IIf(ibol, -4105, -4135)
        .EnableEvents = ibol
    End With

End Sub

 

الف شكر استاذنا الفاضل حسونه حسين على تعبك و اهتمامك زادكم الله من فضله و علمه

  • Like 1

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