Protection và Macro (1 người xem)

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

hptnvnn2

Thành viên mới
Tham gia
20/12/08
Bài viết
18
Được thích
1
Cho mình hỏi 1 tí liệu có cách nào xử dụng Protection -> Protect Sheet mà macro trong đó vẫn xử dụng được không files này nó không xử dụng được nè luôn cả Command ShowAll cũng bị khóa
View attachment Refresh button.xls
 
Bạn viết code như vầy nè!
PHP:
Sub Refresh() ActiveSheet.Unprotect "123" On Error Resume Next ActiveSheet.ShowAllData ActiveSheet.Protect "123", Scenarios:=False, AllowSorting:=True, AllowFiltering:=True End Sub
Với password là 123 đó. Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn viết code như vầy nè!
PHP:
Sub Refresh()
ActiveSheet.Unprotect "123"
On Error Resume Next
ActiveSheet.ShowAllData
ActiveSheet.Protect "123", Scenarios:=False, AllowSorting:=True, AllowFiltering:=True
End Sub
Với password là 123 đó.
Thân.
Nếu là Scenarios:=False thì bỏ luôn, không cần ghi vào code
 
Upvote 0
Việc khóa sheet bằng VBA sã vô nghĩa Unprotect sheet mà không cần phải nhập Pass. Tại sao vậy?
Ghi 1 macro khóa sheet. sau đó chạy macro này->sheet bị khóa, nhừn dùng menu Tool->Unprotect sheet (không cần pass) thì vũ như cẩn.
Vậy có cách nào mà khi khóa sheet rồi thì lúc unprotect sheet nó đòi pass thì mới hoàn thành việc khóa.
Các bạn cho ý kiến.
Tks
 
Upvote 0
Việc khóa sheet bằng VBA sã vô nghĩa Unprotect sheet mà không cần phải nhập Pass. Tại sao vậy?
Ghi 1 macro khóa sheet. sau đó chạy macro này->sheet bị khóa, nhừn dùng menu Tool->Unprotect sheet (không cần pass) thì vũ như cẩn.
Vậy có cách nào mà khi khóa sheet rồi thì lúc unprotect sheet nó đòi pass thì mới hoàn thành việc khóa.
Các bạn cho ý kiến.
Tks
Bạn xem lại bài #2 topic này. Trong phần code "123" màu đỏ chính là pass để unprotect đó.
 
Upvote 0
Việc khóa sheet bằng VBA sã vô nghĩa Unprotect sheet mà không cần phải nhập Pass. Tại sao vậy?
Ghi 1 macro khóa sheet. sau đó chạy macro này->sheet bị khóa, nhừn dùng menu Tool->Unprotect sheet (không cần pass) thì vũ như cẩn.
Vậy có cách nào mà khi khóa sheet rồi thì lúc unprotect sheet nó đòi pass thì mới hoàn thành việc khóa.
Các bạn cho ý kiến.
Tks

Các hạ ơi! Đọc từ trên xuống dưới, tại hạ không thấy chổ nào có protect sheetkhông có Password cả! Không biết ý các hạ như thế nào? Có nhầm lẩn gì chăng?

Theo tại hạ thì code của bạn Po_Pikachu củng chuẫn và đã giải quyết được vấn đề topic nêu ra! Tại hạ xuống núi gặp nhiều cao thủ quá! Đa tạ Po_Pikachu, giờ tại hạ học được thêm chiêu nửa rồi!
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn viết code như vầy nè!
PHP:
Sub Refresh()
ActiveSheet.Unprotect "123"
On Error Resume Next
ActiveSheet.ShowAllData
ActiveSheet.Protect "123", Scenarios:=False, AllowSorting:=True, AllowFiltering:=True
End Sub
Với password là 123 đó.
Thân.
Làm thế này thì không ỗn chút nào đâu người nào biết về VBA thì bấm Alt+F11 thì nó vô thẳng bỏ macro mấy hồi
Ở Đây mình cần protect + không cho xem macro và chỉnh sửa macro
CODE ở trên còn bị 1 lỗi , unprotect đánh pass 123 thì nó vẫn ở chế độ protect vẫn không chỉnh sửa được
 
Upvote 0
Thì bạn phải khóa VBA lại chứ. Viết vậy mà để cho người ta xem à! Bạn vào VBA, vào Tools -> VBAProject Properties -> chọn tab Protection -> Click chọn Lock project for viewing và nhập 2 lần password ở dưới -> OK. Rồi save file lại. Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Làm thế này thì không ỗn chút nào đâu người nào biết về VBA thì bấm Alt+F11 thì nó vô thẳng bỏ macro mấy hồi
Ở Đây mình cần protect + không cho xem macro và chỉnh sửa macro
CODE ở trên còn bị 1 lỗi , unprotect đánh pass 123 thì nó vẫn ở chế độ protect vẫn không chỉnh sửa được
Bạn cũng biết nói rằng: người nào biết về VBA thì bấm Alt+F11 thì nó vô thẳng bỏ macro mấy hồi
Vậy xin nói thêm: người nào biết về VBA thì cho dù bạn có khóa luôn pass VBA họ vẩn vào được như thường
Theo tôi, pass bảo vệ sheet chỉ nhầm mục đính tránh chỉnh sửa sai do vô tình là chính... chứ nó không mang ý nghĩa bảo mật thực sự (kể cả pass VBA cũng thế)
Vì thế thay vì nghiên cứu mấy "kỹ xảo" này, để dành thời gian hoàn thiện bảng tính còn hay hơn ---> (Cũng như với code của Po_Pikachu, tôi đánh giá cao về mặt giải thuật chứ không hề quan tâm đến mấy cái pass ấy làm gì)
(Muốn bảo mất tốt, thà khóa luôn file)
 
Upvote 0
Bạn cũng biết nói rằng: người nào biết về VBA thì bấm Alt+F11 thì nó vô thẳng bỏ macro mấy hồi
Vậy xin nói thêm: người nào biết về VBA thì cho dù bạn có khóa luôn pass VBA họ vẩn vào được như thường
Theo tôi, pass bảo vệ sheet chỉ nhầm mục đính tránh chỉnh sửa sai do vô tình là chính... chứ nó không mang ý nghĩa bảo mật thực sự (kể cả pass VBA cũng thế)
Vì thế thay vì nghiên cứu mấy "kỹ xảo" này, để dành thời gian hoàn thiện bảng tính còn hay hơn ---> (Cũng như với code của Po_Pikachu, tôi đánh giá cao về mặt giải thuật chứ không hề quan tâm đến mấy cái pass ấy làm gì)
(Muốn bảo mất tốt, thà khóa luôn file)
Cảm ơn bạn đã giải thích kỹ càng mình hiểu nhiều rồi , vậy bạn có cách biết macro nào không cho save lại sau khi fill xong không vậy mình protect = VBA xong thì sợ bị tấy mấy rồi save lại lắm , có cách nào chỉ giúp lun nhé thx bạn nhiùe@$@!^%
 
Upvote 0
Ý của bác ndu ở đây là gì em chưa hiểu, có thể giải thích rõ hơn cho em được không ạ?
 
Upvote 0

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

Back
Top Bottom