VBA khoá password vùng theo điều kiện!

Liên hệ QC

nguyenkhamam

Thành viên mới
Tham gia
12/7/11
Bài viết
39
Được thích
2
Xin các thầy chỉ giúp em nội dung ghi theo file đính kèm với ạ!
 

File đính kèm

  • New Microsoft Office Excel Worksheet.rar
    13 KB · Đọc: 26
Híc chẳng lẽ đến đây là hết!
Thầy nảo hiểu VBA thì cho em biết có thế làm được như vậy không ạ! để em đỡ khỏi ngóng chờ.
 
Lần chỉnh sửa cuối:
Upvote 0
Híc chẳng lẽ đến đây là hết!
Thầy nảo hiểu VBA thì cho em biết có thế làm được như vậy không ạ! để em đỡ khỏi ngóng chờ.

Tôi không biết mục đích của bạn là như thế nào, nhưng bạn hiểu rằng, chỉ có khóa sheet 1 lần 1 password thôi, không có việc khóa với nhiều pass! Vậy bạn làm như vậy để làm gì?
 
Upvote 0
Bạn xem file đúng ý bạn không nhé
Hình như chưa được thầy ạ!
Về pass thì em có thấy code nhưng khi thực hiện theo các điều kiện như trong bài viết hay pass sheet lại thì không thấy gì cả
Còn về cái Clr+F thì em có thấy nhưng không giông như cái hình em đưa lên. vì cái hình của thầy nếu gọi nó nên thì không thao tác được jì cả.Còn cái hình của em gọi nó nên vẫn thao tác bình thường mà thầy.
em gửi lại file sau khi pass sheet thầy xem cho em nhé!
 

File đính kèm

  • Pass1.xls
    48 KB · Đọc: 14
Upvote 0
Tôi không biết mục đích của bạn là như thế nào, nhưng bạn hiểu rằng, chỉ có khóa sheet 1 lần 1 password thôi, không có việc khóa với nhiều pass! Vậy bạn làm như vậy để làm gì?
Hix đây là password vùng không phải password sheet như bạn hiểu.
pass vùng thì muốn bao nhiêu chẳng được.
 
Upvote 0
Hình như chưa được thầy ạ!
Về pass thì em có thấy code nhưng khi thực hiện theo các điều kiện như trong bài viết hay pass sheet lại thì không thấy gì cả
Còn về cái Clr+F thì em có thấy nhưng không giông như cái hình em đưa lên. vì cái hình của thầy nếu gọi nó nên thì không thao tác được jì cả.Còn cái hình của em gọi nó nên vẫn thao tác bình thường mà thầy.
em gửi lại file sau khi pass sheet thầy xem cho em nhé!
Bạn nói rõ hơn mục đích bạn tại nút Ctr+F để làm gì không?
 
Upvote 0
Tôi không biết mục đích của bạn là như thế nào, nhưng bạn hiểu rằng, chỉ có khóa sheet 1 lần 1 password thôi, không có việc khóa với nhiều pass! Vậy bạn làm như vậy để làm gì?
Được đó anh ạ. Đây là password của riêng từng vùng, không phải là password Protect sheet.
Anh thử chọn Tools\Protection\Allow users to edit ranges sẽ thấy (em không nhớ trong Excel 2007 thì phải chọn như thế nào vì em đang dùng Excel 2003). Tất nhiên là password này chỉ có tác dụng nếu sheet đã được khóa lại.
 
Upvote 0
Bạn nói rõ hơn mục đích bạn tại nút Ctr+F để làm gì không?
nút Ctr+F để làm gì nút này có chức năng tìm kiềm dữ liệu mà mình cần
nhập vào thôi ạ.
nhưng sau khi nhập xong dữ liệu mình muốn tìm sau đó mình muốn tìm trong vung khác chẳng hạn thì lại fải tăt cái bảng cua thầy đi để thao tác sau đó chọn vùng cần tìm.nhưng như cái bảng của em thì khi tìm kiểm xong vẫn cứ để nguyên nếu muốn tìm tiếp theo vùng nào cũng vẫn thao tác được.
 
Upvote 0
nút Ctr+F để làm gì nút này có chức năng tìm kiềm dữ liệu mà mình cần
nhập vào thôi ạ.
nhưng sau khi nhập xong dữ liệu mình muốn tìm sau đó mình muốn tìm trong vung khác chẳng hạn thì lại fải tăt cái bảng cua thầy đi để thao tác sau đó chọn vùng cần tìm.nhưng như cái bảng của em thì khi tìm kiểm xong vẫn cứ để nguyên nếu muốn tìm tiếp theo vùng nào cũng vẫn thao tác được.
Bật hộp thoại Find and Replace lên thì bạn vẫn có thể thao tác trên sheet bình thường chứ đâu có vấn đề gì đâu. Bạn cứ thử xem.
Còn nếu bạn chỉ muốn nút lệnh này có tác dụng bật hộp thoại Find and Replace thì bạn thử code sau xem sao:
PHP:
Private Sub CommandButton1_Click()
    Selection.Select
    SendKeys "^h"
End Sub
 
Upvote 0
Bật hộp thoại Find and Replace lên thì bạn vẫn có thể thao tác trên sheet bình thường chứ đâu có vấn đề gì đâu. Bạn cứ thử xem.
Còn nếu bạn chỉ muốn nút lệnh này có tác dụng bật hộp thoại Find and Replace thì bạn thử code sau xem sao:
PHP:
Private Sub CommandButton1_Click()
    Selection.Select
    SendKeys "^h"
End Sub
Đúng rồi đấy ạ! nhưng mà có thể mặc định cho nó ở bên Find được không anh?
Vì chỗ em nhiều gà lắm họ chỉ biết bấm Clr+F rồi cứ thế nhập dữ liệu rồi Enter bừa.
Còn về vấn đề password anh có rõ không? chỉ cho em với!
 
Upvote 0
nút Ctr+F để làm gì nút này có chức năng tìm kiềm dữ liệu mà mình cần
nhập vào thôi ạ.
nhưng sau khi nhập xong dữ liệu mình muốn tìm sau đó mình muốn tìm trong vung khác chẳng hạn thì lại fải tăt cái bảng cua thầy đi để thao tác sau đó chọn vùng cần tìm.nhưng như cái bảng của em thì khi tìm kiểm xong vẫn cứ để nguyên nếu muốn tìm tiếp theo vùng nào cũng vẫn thao tác được.
Thế thì mình làm vẫn bình thường mà, có nghĩa mình nhấn 1 số để tìm, sau đó bảng đó vẫn tồn tại và muốn nhấn tìm số khác vẫn được mà bạn
 

File đính kèm

  • Pass2.xls
    48.5 KB · Đọc: 14
Lần chỉnh sửa cuối:
Upvote 0
Đúng rồi đấy ạ! nhưng mà có thể mặc định cho nó ở bên Find được không anh?
Vì chỗ em nhiều gà lắm họ chỉ biết bấm Clr+F rồi cứ thế nhập dữ liệu rồi Enter bừa.
Còn về vấn đề password anh có rõ không? chỉ cho em với!
Xin lỗi, mình nhầm một xíu: Ctrl+H là bật chức năng Replace, còn bật chức năng Find là tổ hợp Ctrl+F.
Như vậy, trong code trên, thay "^h" bởi "^f" là được.
 
Upvote 0
Thế thì mình làm vẫn bình thường mà, có nghĩa mình nhấn 1 số để tìm, sau đó bảng đó vẫn tồn tại và muốn nhấn tìm số khác vẫn được mà bạn
Vâng nhưng đấy nếu như mình chọn trước một vùng cần tìm. Còn sau khi mình tìm vùng đó ok rồi mà mình muốn tìm sang vùng khác thì fair thoát cái bảng của thầy đi thì mới thao tác được đúng không ạ.
Em thấy anh nghiaphuc đưa ra cái code đó hợp ý em hơn.Cảm ơn tất cả các thầy vè cái Ctrl+F
còn vấn đề passs word thầy nào biết chỉ cho em với.
 
Upvote 0
Vâng nhưng đấy nếu như mình chọn trước một vùng cần tìm. Còn sau khi mình tìm vùng đó ok rồi mà mình muốn tìm sang vùng khác thì fair thoát cái bảng của thầy đi thì mới thao tác được đúng không ạ.
Em thấy anh nghiaphuc đưa ra cái code đó hợp ý em hơn.Cảm ơn tất cả các thầy vè cái Ctrl+F
còn vấn đề passs word thầy nào biết chỉ cho em với.
Thế password file bài 12 của mình chưa được à?
 
Upvote 0
Thế password file bài 12 của mình chưa được à?
OK ngon cho vùng màu vàng!
Còn vùng màu đỏ thì thế nào hả thầy.
Vì giả sử em đặt công thức tìm kiếm cho tiêu đề của vùng màu đỏ như 3 chữ A,B và C thì các cột tham chiêếucủa nó sẽ làm thế nào để công thức chạy theo tiêu đề đó ạ!
 
Upvote 0
OK ngon cho vùng màu vàng!
Còn vùng màu đỏ thì thế nào hả thầy.
Vì giả sử em đặt công thức tìm kiếm cho tiêu đề của vùng màu đỏ như 3 chữ A,B và C thì các cột tham chiêếucủa nó sẽ làm thế nào để công thức chạy theo tiêu đề đó ạ!
Đã cập nhật lại file ở bài #12. Bạn tải lại file đi
(Đừng gọi là Thầy mình ngại lắm)
 
Upvote 0
Vâng nhưng đấy nếu như mình chọn trước một vùng cần tìm. Còn sau khi mình tìm vùng đó ok rồi mà mình muốn tìm sang vùng khác thì fair thoát cái bảng của thầy đi thì mới thao tác được đúng không ạ.
Em thấy anh nghiaphuc đưa ra cái code đó hợp ý em hơn.Cảm ơn tất cả các thầy vè cái Ctrl+F
còn vấn đề passs word thầy nào biết chỉ cho em với.
Thêm một phương án khác xem sao:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Address = "$D$6" Then
        ActiveSheet.Unprotect "GPE"
        ActiveSheet.Protection.AllowEditRanges("Range1").ChangePassword IIf(Target = "A", "123", IIf(Target = "B", "456", IIf(Target = "C", "789", "")))
        ActiveSheet.Protect "GPE"
        End
    End If
    If Target.Address = "$I$8" Then
        ActiveSheet.Unprotect "GPE"
        ActiveSheet.Protection.AllowEditRanges("Range2").ChangePassword IIf(Target = "A", "123", IIf(Target = "B", "456", IIf(Target = "C", "789", "")))
        ActiveSheet.Protect "GPE"
        End
    End If
    If Target.Address = "$J$8" Then
        ActiveSheet.Unprotect "GPE"
        ActiveSheet.Protection.AllowEditRanges("Range3").ChangePassword IIf(Target = "A", "123", IIf(Target = "B", "456", IIf(Target = "C", "789", "")))
        ActiveSheet.Protect "GPE"
        End
    End If
    If Target.Address = "$K$8" Then
        ActiveSheet.Unprotect "GPE"
        ActiveSheet.Protection.AllowEditRanges("Range4").ChangePassword IIf(Target = "A", "123", IIf(Target = "B", "456", IIf(Target = "C", "789", "")))
        ActiveSheet.Protect "GPE"
        End
    End If
End Sub
Với code trên, nếu D6="A" thì pass vùng màu vàng là "123',..., nếu D6="" thì vùng màu vàng không có pass bảo vệ. Tương tự cho các vùng ở các cột I, J, K.

@viehoai: Em biết có cái anh chàng Dialogs này nhưng lại không biết tên hộp thoại ấy là gì để đưa vào trong ngoặc nên đành dùng "hạ sách" Sendkeys. Cảm ơn anh!
 

File đính kèm

  • Pass3.rar
    17.4 KB · Đọc: 15
Upvote 0
Thêm một phương án khác xem sao:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Address = "$D$6" Then
        ActiveSheet.Unprotect "GPE"
        ActiveSheet.Protection.AllowEditRanges("Range1").ChangePassword IIf(Target = "A", "123", IIf(Target = "B", "456", IIf(Target = "C", "789", "")))
        ActiveSheet.Protect "GPE"
        End
    End If
    If Target.Address = "$I$8" Then
        ActiveSheet.Unprotect "GPE"
        ActiveSheet.Protection.AllowEditRanges("Range2").ChangePassword IIf(Target = "A", "123", IIf(Target = "B", "456", IIf(Target = "C", "789", "")))
        ActiveSheet.Protect "GPE"
        End
    End If
    If Target.Address = "$J$8" Then
        ActiveSheet.Unprotect "GPE"
        ActiveSheet.Protection.AllowEditRanges("Range3").ChangePassword IIf(Target = "A", "123", IIf(Target = "B", "456", IIf(Target = "C", "789", "")))
        ActiveSheet.Protect "GPE"
        End
    End If
    If Target.Address = "$K$8" Then
        ActiveSheet.Unprotect "GPE"
        ActiveSheet.Protection.AllowEditRanges("Range4").ChangePassword IIf(Target = "A", "123", IIf(Target = "B", "456", IIf(Target = "C", "789", "")))
        ActiveSheet.Protect "GPE"
        End
    End If
End Sub
Với code trên, nếu D6="A" thì pass vùng màu vàng là "123',..., nếu D6="" thì vùng màu vàng không có pass bảo vệ. Tương tự cho các vùng ở các cột I, J, K.

@viehoai: Em biết có cái anh chàng Dialogs này nhưng lại không biết tên hộp thoại ấy là gì để đưa vào trong ngoặc nên đành dùng "hạ sách" Sendkeys. Cảm ơn anh!
Anh xem lại code xem có trục trặc chỗ nào không mà cái vùng màu đỏ em thay đổi tiêu đề A thành B rồi gõ pass:456 thì không được mà gõ 123 lại OK.
Sau đó đổi sang C hoặc A,B chẳng hạn thì vung đó lại không khóa! Em thấy như của thầy Viethoan là ngon cho vùng màu vàng nhưng vùng màu đỏ thì không thấy gì cả.
 
Upvote 0
Đã cập nhật lại file ở bài #12. Bạn tải lại file đi
(Đừng gọi là Thầy mình ngại lắm)
Đúng rồi,em có thấy tác dụng cho vùng màu đỏ thầy ạ! nhưng cột B sao pass là 123 ạ!
Em gọi bằng thầy vì thầy lever của thầy cao quá! 6 sao gần bằng cấp độ của quân bài rông trắng mắt xanh (8sao) mạnh nhất bộ bài magic trong truyện vua trò chơi.
Nếu ai đọc rồi thì sẽ biết.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom