Code xác định 1 dòng bị protect hay unprotect trong sheet proctect (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

phongkiemtinh

Thành viên thường trực
Tham gia
22/7/09
Bài viết
224
Được thích
5
E muốn hỏi 1 câu là, trong 1 sheet mà các cell nằm trong vùng [A:M] nếu có dữ liệu thì bị protect lại, cell trống thì unprotect.
Vậy trên form mình dùng listbox chọn 1 dòng dữ liệu để sửa trong vùng đó, vậy làm sao để xác định dòng chọn đó protect hay chưa?
Nhờ các anh chị GPE chỉ giúp.
 
Cái này đúng hơn là Locked
Tất nhiên là có cách xác định, nhưng với bài này thì đơn giản nếu là ô trống thì Locked=True rồi
Bạn thử code sau cũng là 1 cách:

Mã:
Sub Test()
MsgBox Range("M5").Locked
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Cái này đúng hơn là Locked
Tất nhiên là có cách xác định, nhưng với bài này thì đơn giản nếu là ô trống thì Locked=True rồi
Bạn thử code sau cũng là 1 cách:

Mã:
Sub Test()
MsgBox Range("M5").Locked
End Sub

Bác chỉ e chút.E muốn khi click vào dòng dữ liệu trong list box, code kiểm tra nếu dòng đó đã lock thì hiện thông báo hỏi password-> nhập pass đúng thì load lên form để chỉnh sửa và chỉnh sửa lưu lại, nếu dòng locked hỏi password mà nhap sai thì unload thao tác chọn dòng trên listbox và không làm gì cả.

Nếu bấm chọn vào dòng dữ liệu trên listbox ,mà code chạy kiểm tra dòng này locked = false thì tự động load lên form.
Bác giúp e phần code kiểm tra dùm.Các phần khác e tự làm tiếp.
 
Lần chỉnh sửa cuối:
Upvote 0
Cái này đúng hơn là Locked
Tất nhiên là có cách xác định, nhưng với bài này thì đơn giản nếu là ô trống thì Locked=True rồi
Bạn thử code sau cũng là 1 cách:

Mã:
Sub Test()
MsgBox Range("M5").Locked
End Sub
Bác vậy không thì bác chỉ dùm e muốn kiểm tra trạng thái locked cột [A] và điền vào cột [W] chẳng hạn: range[A1].locked = true thì [W1]=true, range[A2].locked = true thì [W2]=true,
 
Upvote 0
Mình làm được rồi, thanks GPE.

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
' kiem tra cot [A] neu locked=true dien vao cot [W]=lock
Dim cls As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
For Each cls In Range("A3:A400" & Range("W65536").End(xlUp).Row)
If cls.Locked = True Then
cls.Offset(, 22) = "LOCK"
Else
cls.Offset(, 22) = "NOLOCK"
End If
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom