khóa protection Sheet đồng loạt (2 người xem)

Liên hệ QC

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

nam châm

Thành viên chính thức
Tham gia
12/1/08
Bài viết
89
Được thích
13
Xin hỏi các bác có cách nào khóa hoặc mở protection Sheet đồng loạt không? vì một file có quá nhiều sheet nên khi khóa, mở từng sheet mất quá nhiều thời gian. Xin các bác chỉ hộ. Cảm ơn!
 
Xin hỏi các bác có cách nào khóa hoặc mở protection Sheet đồng loạt không? vì một file có quá nhiều sheet nên khi khóa, mở từng sheet mất quá nhiều thời gian. Xin các bác chỉ hộ. Cảm ơn!
hình như chủ đề này bạn đã đưa ra một lần rùi thì phải?
bạn mở Alt +f11----> vào ThisWorkboox--> rùi copy đoạn code này vào đó :
'Tao o khoa tung cel trong khi su dung cong thuc,mà khong cho ng khac su dung
Private Sub workbook_sheetselectionchange(ByVal sh As Object, ByVal target As Range)
'password dat la "25251325"
Dim rngdata As Range
'bat dau vong lap for qua vong lap for co chua gia tri
For Each rngdata In target.Cells
'kiem tra xem o so co phai la cong thuc khong ?
If rngdata.HasFormula Then
'khoa o neu o do la cong thuc
ActiveSheet.Protect ("25251325")
Exit Sub
Else
'huy bo khoa o neu o do khong phai la cong thuc
ActiveSheet.Unprotect ("25251325")
End If
Next rngdata
End Sub
 
Upvote 0
Xin hỏi các bác có cách nào khóa hoặc mở protection Sheet đồng loạt không? vì một file có quá nhiều sheet nên khi khóa, mở từng sheet mất quá nhiều thời gian. Xin các bác chỉ hộ. Cảm ơn!
Bạn dùng code sau nhé:

Mã:
Option Explicit
Dim Sh As Worksheet
[COLOR=green]'Khoa sheet[/COLOR]
Sub Khoa()
Application.ScreenUpdating = False
For Each Sh In ActiveWorkbook.Worksheets
Sh.Protect Password:="1234" [COLOR=green]'Pass cua ban[/COLOR]
Next Sh
Application.ScreenUpdating = True
End Sub
[COLOR=green]'Mo Sheet[/COLOR]
Sub Mo()
Application.ScreenUpdating = False
For Each Sh In ActiveWorkbook.Worksheets
Sh.Unprotect Password:="1234" [COLOR=#008000]'Pass cua ban[/COLOR]
Next Sh
Application.ScreenUpdating = True
End Sub

Bạn xem thêm file nhé
 

File đính kèm

Upvote 0
Bạn dùng code sau nhé:

Mã:
Option Explicit
Dim Sh As Worksheet
[COLOR=green]'Khoa sheet[/COLOR]
Sub Khoa()
Application.ScreenUpdating = False
For Each Sh In ActiveWorkbook.Worksheets
Sh.Protect Password:="1234" [COLOR=green]'Pass cua ban[/COLOR]
Next Sh
Application.ScreenUpdating = True
End Sub
[COLOR=green]'Mo Sheet[/COLOR]
Sub Mo()
Application.ScreenUpdating = False
For Each Sh In ActiveWorkbook.Worksheets
Sh.Unprotect Password:="1234" [COLOR=#008000]'Pass cua ban[/COLOR]
Next Sh
Application.ScreenUpdating = True
End Sub

Bạn xem thêm file nhé
Thế còn mở hàng loạt các sheet thì như thế nào hả bạn (các sheet có cùng Pass)
 
Upvote 0
Thế còn mở hàng loạt các sheet thì như thế nào hả bạn (các sheet có cùng Pass)
Thì như file đính kèm bên trên tôi đã giới thiệu đó bạn.
Mã:
Sub Mo()
Dim Sh As Worksheet
Application.ScreenUpdating = False
For Each Sh In ActiveWorkbook.Worksheets
Sh.Unprotect Password:="1234" [COLOR=#008000]'Pass cua ban[/COLOR]
Next Sh
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Bác domfootwear ! Bác có thể hướng dẫn giúp tôi tạo nút đóng mở được không. Tôi không rành VBA lắm. Cảm ơn bác!
 
Upvote 0

File đính kèm

Upvote 0
Mình thấy nếu khóa sheet bằng VBA nếu máy nào đặt macro trong excel ở chế độ High thì chức năng khóa sheet mất tác dụng. Vậy khi dùng VBA để khóa sheet lúc đó gửi cho ai đó mà máy đó để chế độ này thì khóa sheet mất tác dụng không an toàn. Không biết có cách nào khác không nhỉ?
Thân.
 
Upvote 0
Mình thấy nếu khóa sheet bằng VBA nếu máy nào đặt macro trong excel ở chế độ High thì chức năng khóa sheet mất tác dụng. Vậy khi dùng VBA để khóa sheet lúc đó gửi cho ai đó mà máy đó để chế độ này thì khóa sheet mất tác dụng không an toàn. Không biết có cách nào khác không nhỉ?
Thân.

Khi File của bạn đã được Protect, thì đi đâu nó chẳng protect?? Còn người ta có thêm bớt gì trong File đó kệ ngươi ta chứ!!!

Bạn xem file hướng dẫn ở file đính kèm nhé

Bác ơi, cái này hỏi riêng nha, chương trình quay phim màn hình này bác tải ở đâu và cách làm như thế nào vậy? Hay quá đi!!!
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Khi File của bạn đã được Protect, thì đi đâu nó chẳng protect?? Còn người ta có thêm bớt gì trong File đó kệ ngươi ta chứ!!!



Bác ơi, cái này hỏi riêng nha, chương trình quay phim màn hình này bác tải ở đâu và cách làm như thế nào vậy? Hay quá đi!!!
Anh vào google SCREXESetup nhé
 
Upvote 0
Thì như file đính kèm bên trên tôi đã giới thiệu đó bạn.
Mã:
Sub Mo()
Dim Sh As Worksheet
Application.ScreenUpdating = False
For Each Sh In ActiveWorkbook.Worksheets
Sh.Unprotect Password:="1234" [COLOR=#008000]'Pass cua ban[/COLOR]
Next Sh
Application.ScreenUpdating = True
End Sub
Tôi muốn chọn cho phép edit object hoặc một số tuỳ chọn khác nữa trong phần tuỳ chọn protec thì làm thế nào? mong các cao thue chỉ giáo
 
Upvote 0
Tôi muốn chọn cho phép edit object hoặc một số tuỳ chọn khác nữa trong phần tuỳ chọn protec thì làm thế nào? mong các cao thue chỉ giáo
Bạn cứ Record Macro thử xem nó ra câu lệnh gì. Sau đó, bạn thêm tùy chọn này vào trong câu lệnh nhìn thấy: Password:="GPE"
Ví dụ: Sh.Protect Password:="GPE", DrawingObjects:=False,...
 
Upvote 0
Xin chỉ giáo cách phá pass trong file excel

Chào các bạn, rất cảm ơn về những đóng góp của các bạn trong thời gian qua dành cho diễm đàn, hiện tại mình có một bản dự toán chạy trên excel nhưng không có khóa, mình đưa lên để mọi người tham khảo (nếu ai đó có làm về dự toán xây dựng) các bạn có thể chỉ mình cách phá pass được chứ? pass VBA của nó là 123456, nó chạy thử đc 30 ngày nhưng từ năm 2008 cơ giờ thì tất nhiên đã hết hạn dùng mong các bạn chỉ giáo@#!^% híc nhưng nén thế napf thì từ 19 MB vẫn không xuống đv 1 MB để gửi làm sao đây các bác?
 
Upvote 0
Bạn dùng code sau nhé:

Mã:
Option Explicit
Dim Sh As Worksheet
[COLOR=green]'Khoa sheet[/COLOR]
Sub Khoa()
Application.ScreenUpdating = False
For Each Sh In ActiveWorkbook.Worksheets
Sh.Protect Password:="1234" [COLOR=green]'Pass cua ban[/COLOR]
Next Sh
Application.ScreenUpdating = True
End Sub
[COLOR=green]'Mo Sheet[/COLOR]
Sub Mo()
Application.ScreenUpdating = False
For Each Sh In ActiveWorkbook.Worksheets
Sh.Unprotect Password:="1234" [COLOR=#008000]'Pass cua ban[/COLOR]
Next Sh
Application.ScreenUpdating = True
End Sub

Bạn xem thêm file nhé
Cảm ơn bạn đã chia sẻ
Các Bạn cho mình hỏi, có thể gom 2 nút thành 1 nút được không, & trên nút bấm sẽ hiện chữ "khóa ", "Mở" . Cảm ơn cả nhà!
 
Upvote 0
Cảm ơn bạn đã chia sẻ
Các Bạn cho mình hỏi, có thể gom 2 nút thành 1 nút được không, & trên nút bấm sẽ hiện chữ "khóa ", "Mở" . Cảm ơn cả nhà!

Có gì khó đâu, bạn làm như sau:

Mã:
Private Sub CommandButton1_Click()
      With CommandButton1
            If .Caption = "UnProtect" Then
                  .Caption = "Protect"
                  Call Mo
            Else
                  Call Khoa
                  .Caption = "UnProtect"
            End If
      End With
End Sub
 

File đính kèm

Upvote 0
Có bác nào chỉ giáo giúp e về vấn đề unprotect với ạ.
Đó là khi mình chọn UNPROTECT thì hiện hộp thoại nhập pass thay vì tự động mở luôn file.
Ví dụ pass: 1234 --> nhập 1234 vào mới mở được protect
E cảm ơn!
Sub Mo()
Application.ScreenUpdating = False
For Each Sh In ActiveWorkbook.Worksheets
Sh.Unprotect Password:="1234" 'Pass cua ban
Next Sh
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Có bác nào chỉ giáo giúp e về vấn đề unprotect với ạ.
Đó là khi mình chọn UNPROTECT thì hiện hộp thoại nhập pass thay vì tự động mở luôn file.
Ví dụ pass: 1234 --> nhập 1234 vào mới mở được protect
E cảm ơn!
Sub Mo()
Application.ScreenUpdating = False
For Each Sh In ActiveWorkbook.Worksheets
Sh.Unprotect Password:="1234" 'Pass cua ban
Next Sh
Application.ScreenUpdating = True
End Sub

bạn thử với Sub sau:

Mã:
Sub test()
Dim sTitle As String, sPrompt As String, password
    
    sTitle = "Nhap mat khau"
    sPrompt = "Mo khoa"
    password = Application.InputBox(sPrompt, sTitle)
    
    If password = False Then Exit Sub 'khi dung` Cancel
    
    If password = "1234" Then
        Call Mo
    Else
        MsgBox "Mat khau chua dung'"
    End If

End Sub
 
Upvote 0
Tks bác, e sửa lại thế này cho bác nào cần.
Mặc định Protect all sheet
Nhập vào Thisworkbook
Option ExplicitDim Sh As Worksheet
Private Sub Workbook_Open()
Application.ScreenUpdating = False
For Each Sh In ActiveWorkbook.Worksheets
Sh.Protect password:="admin" 'Pass cua ban
Next Sh
Application.ScreenUpdating = True
End Sub
Unprotect all sheet và nhập pass
Tạo module
Sub unprotect()
Application.ScreenUpdating = False
Dim sTitle As String, sPrompt As String, password
sTitle = "Nhap mat khau"
sPrompt = "Mo khoa"
password = Application.InputBox(sPrompt, sTitle)

If password = False Then Exit Sub 'khi dung` Cancel

If password = "admin" Then
For Each Sh In ActiveWorkbook.Worksheets
Sh.unprotect password:="admin"
Next Sh
Else
MsgBox "Mat khau chua dung'"
End If
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Vụ này đưa vào sự kiện để Protect All chi cho khổ vậy? Sao không đưa vào một Cái CommandButton có phải chủ động hơn không? Muốn Khóa thì click cái CmB 1 phát, muốn Mở khóa thì ta lại lick cái CmB phát........sẽ show ra cửa sổ cho nhập pass/Ok là xong.
Như vậy sẽ chủ động hơn trong việc Protect/Unprotect
Chứ chẳng lẻ đang làm mà muốn Protect All lại phải đóng file rồi mở lại ah?
Và đã Protect thì nên Protect luôn Workbook lẫn Worksheet
Oh e nghĩ là chỉ cần mở file khi bắt đầu làm việc còn tự khoá file lại lúc làm việc xong chứ đâu cần phải click vào khoá file nữa. Thế nên e mới để mặc định là khoá sheet khi mở, còn muốn sử dụng thì mở khoá nó ra thôi
 
Upvote 0
Chào bạn, khóa đồng loạt những ô chứa công thức, còn những ô không có công thức thì không khóa, code trên có áp dụng được không bạn. xin cám ơn.
 
Upvote 0
Web KT

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

Back
Top Bottom