hình như chủ đề này bạn đã đưa ra một lần rùi thì phải?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!
'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
Bạn dùng code sau nhé: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!
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
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)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ì như file đính kèm bên trên tôi đã giới thiệu đó bạn.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)
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
Bạn xem file hướng dẫn ở file đính kèm nhé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!
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.
Bạn xem file hướng dẫn ở file đính kèm nhé
Anh vào google SCREXESetup nhé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!!!
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áoThì 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
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"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
Cảm ơn bạn đã chia sẻ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à!
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
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
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
Unprotect all sheet và nhập passOption 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
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
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ôiVụ 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