thanhtratt
Womens From Your City - No Selfie - Anonymous Adul
Mình có 1 file excel có rất nhiều sheet mình muốn dùng 1 macro khóa lại tất cả các sheet, chỉ cho nhập liệu không cho sửa chửa công thức. Xin cám ơn.



Mình có 1 file excel có rất nhiều sheet mình muốn dùng 1 macro khóa lại tất cả các sheet, chỉ cho nhập liệu không cho sửa chửa công thức. Xin cám ơn.
Mình cũng có 1 File có rất nhiều sheet, không biết có cách nào khóa 1 lần mà được cho tất cả các sheet không nhỉ?
Private Sub ProtectAllSheets(ByVal Password As String, ByVal isProtect As Boolean)
'isProtect = true ---> Khóa toàn bộ
'isProtect = false ---> mở khóa toàn bộ
Dim wks As Worksheet
On Error Resume Next
For Each wks In ActiveWorkbook.Worksheets
If isProtect Then
wks.Protect Password
Else
wks.UnProtect Password
End If
Next
End Sub
Sub Main()
ProtectAllSheets "password", [COLOR=#ff0000][B]True[/B][/COLOR]
End Sub
Sub Main()
ProtectAllSheets "password", [B][COLOR=#0000cd]False[/COLOR][/B]
End Sub



Thì dùng code:
Áp dụng:Mã:Private Sub ProtectAllSheets(ByVal Password As String, ByVal isProtect As Boolean) 'isProtect = true ---> Khóa toàn bộ 'isProtect = false ---> mở khóa toàn bộ Dim wks As Worksheet On Error Resume Next For Each wks In ActiveWorkbook.Worksheets If isProtect Then wks.Protect Password Else wks.UnProtect Password End If Next End Sub
1> Để khóa tất cả các sheet
2> Để mở khóa tất cả các sheetMã:Sub Main() ProtectAllSheets "password", [COLOR=#ff0000][B]True[/B][/COLOR] End Sub
Mã:Sub Main() ProtectAllSheets "password", [B][COLOR=#0000cd]False[/COLOR][/B] End Sub
Thầy ơi coppy cả 3 đoạn code này ạ. Hay chỉ cần 2 đoạn dưới vậy thầy?
Hi, em cảm ơn thầy.
Thầy ơi em có 1 câu hỏi nữa ạ: muốn sử dụng 2 code này mình phải tạo button ở 1 sheet bất kì ạ?
Thầy ơi, khóa bằng cách này rất nhanh nhưng không đặt pass được thầy ạ. Thầy có thể giúp em được không?
Sub Main()
ProtectAllSheets "[COLOR=#ff0000]password[/COLOR]", [B]True[/B]
End Sub


Mục đích cuối cùng của bạn trong việc chọn các sheet là để làm gì? Để in chăng? Không cần phải chọn tất cả các sheet vẫn in được màVấn đề là ví dụ giờ em có 1 file excel gồm 3 sheet, khi dùng lệnh record macro thu lại câu lệnh select all sheet, câu lệnh trong macro hiển thì là select.aray( sheet 1, sheet 2, sheet 3). nhưng giờ nếu thêm 1 sheet nữa ( sheet 4) thì câu lệnh vba vừa rồi không tự động chọn sheet 4, lại phải thêm thủ công. Em muốn câu lệnh chọn hết tất cả các sheet để tiện khi in ấn. Lang thang trên mạng em có tìm đc 1 đoạn sub khá ổn nhưng không hiểu lắm.
Sub chonsheet ()
Dim Sh as worksheet, check as bolean
chechk = true
For each sh in thisworkbook.worksheets
if sh.nam <> "dulieu" then sh.select check: check = false
next
activewindow.selectedsheets.printout
end
Em hiểu nôm na là nó sẽ dùng biến Check để chọn tất cả các sheet không phải tên "dulieu" để in.
có cách nào tin gọn macro trên không thầy, ví dụ k cần kiếm tra điều kiện tên khác "dulieu"

Mục đích cuối cùng của bạn trong việc chọn các sheet là để làm gì? Để in chăng? Không cần phải chọn tất cả các sheet vẫn in được mà
Dạ đúng rồi thầy, mục đích của em là chỉ cần 1 lệnh tắt cho macro sẽ in tất cả các sheet có trong file ạ.

Dạ đúng rồi thầy, mục đích cuối cùng của em là phục vụ việc in ấn, em muốn tối ưu chỉ dùng 1 phím tắt có thể in tất cả các sheet có trong fileMục đích cuối cùng của bạn trong việc chọn các sheet là để làm gì? Để in chăng? Không cần phải chọn tất cả các sheet vẫn in được mà
Nếu in pdf dùng code của bác ứng với 5 sheet nó xuất ra thành 5 file pdf. có cách nào gộp chúng lại thành 1 file không bác. em cảm ơnPHP:Sub InInVaIn() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets If ws.Visible = xlSheetVisible Then ws.PrintOut End If Next ws End Sub

bạn ơi hướng dẫn lại bài này được không ạHi, em cảm ơn thầy.
Thầy ơi em có 1 câu hỏi nữa ạ: muốn sử dụng 2 code này mình phải tạo button ở 1 sheet bất kì ạ?