اذهب الي المحتوي
أوفيسنا

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

قام بنشر

سلام اخوتي

كيف يمكن حماية cells من التعديل اليدوي مع امكانية التعديل الاوتوماتيكالي

  • Like 1
  • أفضل إجابة
قام بنشر

* يمكن بعمل حماية للخلايا بكلمة مرور

هكذا لا يمكن التعديل اليدوي إلا بكتابة كلمة المرور

* وبالنسبة لتعديل الخلايا المحمية بالكود

فيجب وضع سطر فك الحماية في بداية الإجراء 

ActiveSheet.UnProtect password:="mas"

ويجب وضع سطر الحماية قبل نهاية الإجراء 

ActiveSheet.Protect password:="mas"

حيث mas هي كلمة المرور المطلوبة

بالتوفيق 

  • Like 3
قام بنشر

شكرا لكم 

أنا عندي الكود أعلاه على الورقة 2 -اسمها transaction - والورقة 1 Stock2021-2022 
أسندتها للمعرف fo وهي المحمية والتي أريد فتحها بالكود كما كتبتم فكيف أفعل؟

 

Option Explicit

Dim fo As Worksheet
Dim ln&, x!, s&

Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Target.Cells.CountLarge > 1 Then Exit Sub
    
    If Target.Row > 2 And Target.Column = 7 Then
        Application.EnableEvents = False
        Set fo = Sheets("Stock2021-2022")
        If Range("B" & Target.Row) <> "" And Range("F" & Target.Row) <> "" Then
            ln = WorksheetFunction.Match(Target.Offset(0, -5), fo.Range("C:C"), 0)
            x = fo.Cells(ln, 5) 'Stok initial sur la feuille OldStock2021-2022
            Cells(Target.Row, 3) = fo.Range("D" & ln)       'Description
            Cells(Target.Row, 4) = fo.Range("G" & ln)       'Prix
            Cells(Target.Row, 5) = x                        'Stock initial
            s = IIf(Target.Offset(0, -1) = "Sell", -1, 1)   'sens du mouvement = 1 pour retour,-1 pour vente
            Cells(Target.Row, 9) = Target.Value * s + x     'Stock final
            fo.Range("E" & ln) = Target.Value * s + x       'Nouveau stock mis à jour
            Range("A" & Target.Row) = Date                  'ou = Now si on veut l'horodate
        Else
            MsgBox "Saisies incomplètes.", 16
            Exit Sub
        End If
    End If
    Application.EnableEvents = True
End Sub


Sub Evenement()
        Application.EnableEvents = True
End Sub

 

قام بنشر

لتطبيق فكرة الحل على ملفك

بعد هذا السطر

If Range("B" & Target.Row) <> "" And Range("F" & Target.Row) <> "" Then

نضع سطر فك الحماية 

fo.UnProtect password:="mas"

وقبل سطر else

نضع سطر الحماية 

fo.Protect password:="mas"

حيث mas هي كلمة المرور

بالتوفيق 

  • 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