Tự động khóa dòng cuối khi nhập đủ dữ liệu

  • Thread starter Thread starter anktdn
  • Ngày gửi Ngày gửi
Liên hệ QC

anktdn

Thành viên chính thức
Tham gia
18/6/06
Bài viết
72
Được thích
77
Nghề nghiệp
acc
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 .
 

File đính kèm

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 .
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
 
Upvote 0
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
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.
Vấn đề chính ở đây là người nhập liệu chỉ nhập dữ liệu và khi họ nhập xong thì không cho sửa được nên Unprotect thì họ đã biết mật khẩu rồi.
 
Lần chỉnh sửa cuối:
Upvote 0
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.
Tôi quên nói bạn. Phải bỏ Lock toàn bộ cells trong bảng tính đã.
Chọn hết bảng tính | Ctrl + 1 | Tab Protection | Bỏ chọn Locked | ok
Copy code vào sheet của bạn.
 
Upvote 0
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
 
Upvote 0

File đính kèm

Upvote 0
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
 
Lần chỉnh sửa cuối:
Upvote 0
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
Không thấy file của bạn.
 
Upvote 0
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?
 
Lần chỉnh sửa cuối:
Upvote 0
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?
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.
 
Upvote 0
em chép sang file mới và xóa bớt, em thử tải lại nhé. Có lẽ bị virut quá? Dung lượng chỉ có 19,16kb thôi. Hay em chuyển qua mail của anh được không?
 
Upvote 0
Tối em nghiên cứu tải lại, anh thông cảm nhé. chắc máy bị sao rồi đấy.
 
Upvote 0
Đây là file của bạn suntue.
Bây giờ tôi không có thời gian. Nhưng hình như phần trình bày yêu cầu của bạn không được rõ ràng. Tôi chưa hiểu.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Ý 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é.
 
Upvote 0
Ý 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é.
PHP:
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
 

File đính kèm

Upvote 0
Gởi anh Huuthang_bd

Cảm ơn anh nhiều, bây giờ lại phát sinh ra vấn đề này: Nếu lỡ nhập sai, sửa ngay lúc đó thì phải gỡ bỏ MK thì bất tiện quá. Anh có thể giúp cho việc nhập sau khoảng thời gian 5 - 10 phút thì bảng tính tự động khóa được không?
 
Upvote 0
nho nhu ban nhap sai thi sao sua lai! co phai wa phien phuc ko? toi thay ko kha thi lam! nhung neu nghien cuu de hoc hoi thi rat hay!
 
Upvote 0
Private Sub Worksheet_Change(ByVal Target As Range)
'tôi xin lấy lại đoạn code trên để giải thích thêm:

If Target.Column >= 16 And Target.Column <= 35 Then
'chọn vùng có ActiveCell.Column >=16 và <=5 thì thực hiện lệnh sau
Me.Unprotect "GPE" 'GPE là từ khóa đẻ mở locked
Target.Locked = True 'khóa ô khi sheet có sự thay đổi
Me.Protect "GPE" 'GPE là từ khóa để locked
End If
End Sub

'bạn có thể dựa vào đoạn code trên để khai triển bài của mình như ý muốn.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom