Protect sheet (1 người xem)

Liên hệ QC

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

vuabocap1722

Thành viên mới
Tham gia
6/9/15
Bài viết
11
Được thích
0
Xin chào các bạn,
Mình có 1 vùng, chỉ cho nhập dữ liệu 1 lần đầu, sau đó không cho chỉnh sửa gì thêm. Và vùng đó chỉ được thêm dòng/cột, nhưng không cho xoá dòng/cột.
Mọi người xin giúp giùm mình nhé!!!!​


 
Xin chào các bạn,
Mình có 1 vùng, chỉ cho nhập dữ liệu 1 lần đầu, sau đó không cho chỉnh sửa gì thêm. Và vùng đó chỉ được thêm dòng/cột, nhưng không cho xoá dòng/cột.
Mọi người xin giúp giùm mình nhé!!!!​


Chèn đoạn code này vào code Sheet :
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rng As Range
For Each Rng In Target.Cells
    If Rng.Value <> "" Then
    ActiveSheet.Protect ("123"), AllowInsertingColumns:=True, AllowInsertingRows:=True
Exit Sub
Else
    ActiveSheet.Unprotect
End If
Next Rng
End Sub

Chỗ "123" là mật khẩu bạn có thể thay bằng Passwords của bạn nhé.
 
Lần chỉnh sửa cuối:
Upvote 0
Xin chào các bạn,
Mình có 1 vùng, chỉ cho nhập dữ liệu 1 lần đầu, sau đó không cho chỉnh sửa gì thêm. Và vùng đó chỉ được thêm dòng/cột, nhưng không cho xoá dòng/cột.
Mọi người xin giúp giùm mình nhé!!!!​


Trong trường hợp nếu vô tình hay cố ý nhập sai, muốn nhập lại thì bạn sẽ giải quyết theo hướng nào?
 
Upvote 0
Trong trường hợp nếu vô tình hay cố ý nhập sai, muốn nhập lại thì bạn sẽ giải quyết theo hướng nào?

Thì thoát ra, không save. Mở file ra nhập lại từ đầu.
Loại làm việc kểu "không biết suy nghĩ cho người dùng" thế này tôi thấy mấy cha nội viết code "bí mật" làm hoài. Có hiệu quả hay không tôi cũng chả biết. Tôi đã từng thấy người nọ, cứ nhập vài dữ liệu thì phải save file, bởi vì người viết code không cho sửa, nếu nhập nhiều quá mà phải bỏ thì tốn công.
Nếu người viết code có cái workbook_close để save thì người dùng sẽ tìm cách copy file trước khi mở ra.
 
Upvote 0
Chèn đoạn code này vào code Sheet :
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rng As Range
For Each Rng In Target.Cells
    If Rng.Value <> "" Then
    ActiveSheet.Protect ("123"), AllowInsertingColumns:=True, AllowInsertingRows:=True
Exit Sub
Else
    ActiveSheet.Unprotect
End If
Next Rng
End Sub

Chỗ "123" là mật khẩu bạn có thể thay bằng Passwords của bạn nhé.
Cảm ơn bạn rất nhiều!!!!
 
Upvote 0
Chèn đoạn code này vào code Sheet :
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rng As Range
For Each Rng In Target.Cells
    If Rng.Value <> "" Then
    ActiveSheet.Protect ("123"), AllowInsertingColumns:=True, AllowInsertingRows:=True
Exit Sub
Else
    ActiveSheet.Unprotect
End If
Next Rng
End Sub

Chỗ "123" là mật khẩu bạn có thể thay bằng Passwords của bạn nhé.
Cảm ơn bạn rất nhiều!!!
Bạn cho mình hỏi thêm. Nếu mình chỉ cho điều kiện trên chạy trong 1 vùng trong sheet. Và vùng đó mình đặt tên là "CAM" thì mình chỉnh code lại như thế nào vậy bạn.
 
Upvote 0
Cảm ơn bạn rất nhiều!!!
Bạn cho mình hỏi thêm. Nếu mình chỉ cho điều kiện trên chạy trong 1 vùng trong sheet. Và vùng đó mình đặt tên là "CAM" thì mình chỉnh code lại như thế nào vậy bạn.
Khổ thân ông bạn Excel bị người ta hành hoài :D :D :D

Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim Rng As Range
If Not Intersect(Target, Range("CAM")) Is Nothing Then
For Each Rng In Range("CAM")
    If Rng.Value <> "" Then
        ActiveSheet.Protect ("123"), AllowInsertingColumns:=True, AllowInsertingRows:=True
        Exit Sub
    Else
        ActiveSheet.Unprotect ("123")
    End If
Next Rng
Else
    ActiveSheet.Unprotect ("123")
End If
End Sub
 
Upvote 0
Khổ thân ông bạn Excel bị người ta hành hoài :D :D :D

Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim Rng As Range
If Not Intersect(Target, Range("CAM")) Is Nothing Then
For Each Rng In Range("CAM")
    If Rng.Value <> "" Then
        ActiveSheet.Protect ("123"), AllowInsertingColumns:=True, AllowInsertingRows:=True
        Exit Sub
    Else
        ActiveSheet.Unprotect ("123")
    End If
Next Rng
Else
    ActiveSheet.Unprotect ("123")
End If
End Sub
Đúng là khổ thân thật :D
Mình đã làm theo hướng dẫn của bạn, khi muốn chỉnh sửa thì file tự hiện thông báo phải nhập pass vào.
Tuy nhiên, nếu người đó không nhập pass mà bấm cancel, sau đó vẫn tiếp tục chỉnh sửa và save file thì dữ liệu vẫn được save.
Mình có cách nào ko cho chỉnh sửa luôn ko bạn? Hic hic hic
 
Upvote 0
Đúng là khổ thân thật :D
Mình đã làm theo hướng dẫn của bạn, khi muốn chỉnh sửa thì file tự hiện thông báo phải nhập pass vào.
Tuy nhiên, nếu người đó không nhập pass mà bấm cancel, sau đó vẫn tiếp tục chỉnh sửa và save file thì dữ liệu vẫn được save.
Mình có cách nào ko cho chỉnh sửa luôn ko bạn? Hic hic hic
Xem này dùm mình :
1. Khi nhập dữ liệu vào vùng CAM nó sẽ Protect lại
2. Khi select con trỏ tại vị trí không nằm trong vùng CAM hoặc dữ liệu tại vùng CAM rỗng(chưa có dữ liệu) thì Excel tự Unprotect Sheet.
 

File đính kèm

Upvote 0
Xem này dùm mình :
1. Khi nhập dữ liệu vào vùng CAM nó sẽ Protect lại
2. Khi select con trỏ tại vị trí không nằm trong vùng CAM hoặc dữ liệu tại vùng CAM rỗng(chưa có dữ liệu) thì Excel tự Unprotect Sheet.
Dear bạn hoamattroicoi
Mình đã làm được rồi. Cảm ơn bạn nhiều lắm lắm :D:D:D
 
Upvote 0
Web KT

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

Back
Top Bottom