Bạn thử code này xem sao.Em có câu hỏi này nhờ anh chị giúp đỡ, Tự động xác định vùng cuối và khóa khi nhập đủ dữ liệu .
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$G$8" Then
Me.Unprotect "GPE"
[A1:G8].Locked = True
Me.Protect "GPE"
ElseIf Target.Column = 7 Then
Me.Unprotect "GPE"
Target.Offset(, -6).Resize(1, 7).Locked = True
Me.Protect "GPE"
End If
End Sub
Code của bạn khi nhập xong khóa nguyên cả vùng dữ liệu, còn câu hỏi mình đưa ra là chì khóa vùng trên còn vùng dưới trống chưa nhập dữ liệu vẫn edit được. Thanks bạn đã quan tâm.Bạn thử code này xem sao.
PHP:Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$G$8" Then Me.Unprotect "GPE" [A1:G8].Locked = True Me.Protect "GPE" ElseIf Target.Column = 7 Then Me.Unprotect "GPE" Target.Offset(, -6).Resize(1, 7).Locked = True Me.Protect "GPE" End If End Sub
Tôi quên nói bạn. Phải bỏ Lock toàn bộ cells trong bảng tính đã.Code của bạn khi nhập xong khóa nguyên cả vùng dữ liệu, còn câu hỏi mình đưa ra là chì khóa vùng trên còn vùng dưới trống chưa nhập dữ liệu vẫn edit được. Thanks bạn đã quan tâm.
Thử với file này.sao mình thấy làm theo như bạn mà vẫn bị báo lỗi ở dòng:
Target.Offset(, -6).Resize(1, 7).Locked = True
khi bắt đầu nhập dòng thứ 2
Không thấy file của bạn.Em thấy chiêu này hay quá, anh có thể giúp em vấn đề này được không: Trong bảng điểm ô tô màu có công thức, đã khóa (MK:123). Khi nhập điểm môn giữa học kỳ 1, nhập đến đâu thì khóa đến đó (nhập lần lượt hết môn này đến môn khác). Tương tự như vậy khi nhập điểm cuối học kỳ 1. Cảm ơn anh nhiều
File có dung lượng quá lớn sẽ không được post lên. Bạn copy sheet cần thiết ra file mới. Nếu cần thiết thì xóa bớt dữ liệu. Nén lại và gửi lại xem.em tải nhưng sao không lên, em tải lại nhé.
Sao kỳ quá, không hiểu vì lý do gì. Anh có thể hướng dẫn dùm được không?
Được. Bạn gửi vào mail của tôi: 140286@yahoo.comem chuyển qua mail của anh được không?
Ý em là: Em sẽ nhập điểm giữa học kỳ 1 trước (bắt đầu từ cột P, T, U, AB, AC, ...) Nhập đến đâu thì khoá đến đó. sau đó lại nhập tiếp điểm cuối học kỳ 1 (bắt đầu từ cột Q,W,XAE,AF..). Mục đích là không cho sửa điểm tuỳ tiện, mong anh nghiên cứu giúp em nhé.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column >= 16 And Target.Column <= 35 Then
Me.Unprotect "GPE"
Target.Locked = True
Me.Protect "GPE"
End If
End Sub