Hỏi các anh chị có cách nào khóa tất cả dữ liệu trong một file excel

Liên hệ QC

thangthong2007

Thành viên mới
Tham gia
24/3/08
Bài viết
40
Được thích
5
Em có một file excel, trong fỉle này có nhiều sheet, các sheet đều có dữ liệu. Em muốn hỏi có cách nào để khóa tất cả các ô đã có dữ liệu của các sheet đó không, chỉ cho người khác sử dụng và nhập dữ liệu vào các ô trống (ô không có dữ liệu) của từng sheet của file đó thôi
 
Em có một file excel, trong fỉle này có nhiều sheet, các sheet đều có dữ liệu. Em muốn hỏi có cách nào để khóa tất cả các ô đã có dữ liệu của các sheet đó không, chỉ cho người khác sử dụng và nhập dữ liệu vào các ô trống (ô không có dữ liệu) của từng sheet của file đó thôi
Ý bạn là ô nào hễ có dữ liệu thì khóa lại, không cho sửa ? Giả sử người ta nhập liệu sai rồi muốn sửa thì sao ?
Bạn hãy nói rõ điều kiện của bạn. Sau khi người ta nhập liệu vào, hay là sau khi người ta lưu... thì không cho sửa.
Ví dụ của tôi là nếu có nhập liệu và thoát khỏi ô nhập liệu thì lock cell có dữ liệu lại.
Bạn lưu ý là chọn tất cả các sheet nhấn Ctrl+A vào fortmat\cells, chọn gờ Protection bỏ chọn nút locked. Copy code sau dán vào cửa sổ VBA của ThisWorkBook.
Code này sẽ khóa vùng từ A1:V1000

PHP:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Rng
    Dim MyCell
    Set Rng = Range("a1:v1000")
    For Each MyCell In Rng
        If MyCell.Value = "" Then
            Else: ActiveSheet.Unprotect
            MyCell.Locked = True
            MyCell.FormulaHidden = False
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
            ActiveSheet.EnableSelection = xlNoRestrictions
        End If
    Next
End Sub

Bạn tham khảo file nhé.
Thân
 

File đính kèm

Cảm ơn bạn!
Khi đặt câu hỏi thì mình cũng chưa nghĩ hết được các tình huống sẽ xảy ra. Với gợi ý của bạn thì mình nêu lên một số điều kiện sau:

- Đối với ô đã có dữ liệu từ trước rồi thì sẽ lock và không sửa được nữa.

-Đối với những ô mới lập số liệu thì sau khi nhập xong và ô đó bị lock, nhưng khi kiểm tra phát hiện ra lỗi thì người nhập có thể sửa được bằng cách đánh Pass để sửa những dữ liệu của những ô mới nhập (những ô có số liệu trước (số liệu cũ) thì không thể sửa được)
 
Cảm ơn bạn!
Khi đặt câu hỏi thì mình cũng chưa nghĩ hết được các tình huống sẽ xảy ra. Với gợi ý của bạn thì mình nêu lên một số điều kiện sau:

- Đối với ô đã có dữ liệu từ trước rồi thì sẽ lock và không sửa được nữa.

-Đối với những ô mới lập số liệu thì sau khi nhập xong và ô đó bị lock, nhưng khi kiểm tra phát hiện ra lỗi thì người nhập có thể sửa được bằng cách đánh Pass để sửa những dữ liệu của những ô mới nhập (những ô có số liệu trước (số liệu cũ) thì không thể sửa được)
Nếu như vậy thì sao bạn không khóa file của bạn khi mở file đó ra, cho người ta thoải mái nhập liệu hay chỉnh sửa. Đến khi đóng file và mở ra lại thì nó khóa lại.
PHP:
Private Sub Workbook_Open()
 
'.....
 
'Code
'.....
End Sub
Thân
 
Nếu như vậy thì sao bạn không khóa file của bạn khi mở file đó ra, cho người ta thoải mái nhập liệu hay chỉnh sửa. Đến khi đóng file và mở ra lại thì nó khóa lại.
PHP:
Private Sub Workbook_Open()
 
'.....
 
'Code
'.....
End Sub
Thân
Bạn ơi . Sao không tiếp tục hướng dẫn về vấn đề này nhỉ ? Mình đang rất cần điều này. Mình muốn rằng khi mở file ra thi cho nhạp liệu sửa thoái mái số liệu trong ngày. Đến khi đóng file và mở ra lại thì nó se khoá những số liệu đã nhập. Hãy giưp minh nhé ! Thanks
 
Cảm ơn bạn!
Khi đặt câu hỏi thì mình cũng chưa nghĩ hết được các tình huống sẽ xảy ra. Với gợi ý của bạn thì mình nêu lên một số điều kiện sau:

- Đối với ô đã có dữ liệu từ trước rồi thì sẽ lock và không sửa được nữa.

-Đối với những ô mới lập số liệu thì sau khi nhập xong và ô đó bị lock, nhưng khi kiểm tra phát hiện ra lỗi thì người nhập có thể sửa được bằng cách đánh Pass để sửa những dữ liệu của những ô mới nhập (những ô có số liệu trước (số liệu cũ) thì không thể sửa được)

Không khó nhưng bạn yêu cầu như vậy để làm gì, người nào có chút kiến thức về hack là vô hiệu hoá hết. Vì vậy theo tôi là nên chia sẻ
 
Web KT

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

Back
Top Bottom