CÁCH KHÓA DỮ LIỆU KHI ĐÃ NHẬP DỮ LIỆU 1 LẦN

Liên hệ QC

Locvo236

Thành viên mới
Tham gia
11/2/20
Bài viết
16
Được thích
0
Chào mọi người! Hiện tại mình có vấn đề là mình muốn khóa ô trong excel khi đã nhập dữ liệu 1 lần. tránh tình trạng đã nhập dữ liệu rồi lại thay đổi dữ liệu thêm nữa. Mong mọi người chỉ giáo
 
Bạn muốn nhờ người khác giúp gì ít nhất phải nói rõ bạn muốn khóa như thế nào. Tạo một nút bấm hay thay đổi dữ liệu ở Cell nào đó thì dữ liệu khóa. Cả 1 cái file ví dụ cũng không thấy ?
 
Bạn muốn nhờ người khác giúp gì ít nhất phải nói rõ bạn muốn khóa như thế nào. Tạo một nút bấm hay thay đổi dữ liệu ở Cell nào đó thì dữ liệu khóa. Cả 1 cái file ví dụ cũng không thấy ?
sorry bạn, mình mới tham gia Group nên còn nhiều sai sót. mong bạn thông cảm, để mình bổ sung cho rõ thêm để mọi người dễ hướng dẫn hơn
Bài đã được tự động gộp:

Mình muốn khi nhân viên của mình nhập "Ngày hẹn lần 1" vào thì không cho chỉnh sửa hoặc xóa dữ liệu ở Ô "Ngày hẹn lần 1"và hiện thông báo "yêu cầu nhập ngày hẹn tiếp theo" ,mà bắt buộc phải nhập ô " ngày hẹn lần 2" tiếp theo, Nếu có muốn thay đổi hoặc chỉnh sửa phải có yêu cầu nhập Password
 

File đính kèm

  • file.xlsx
    8.7 KB · Đọc: 11
Lần chỉnh sửa cuối:
Bạn thử nhé
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Or Target.Column = 3 Or Target.Column = 4 Then 'NEU COT THAY DOI LA B,C,D
    If Target.Value <> "" Then      'NEU CELL DO KHAC RONG
        ActiveSheet.Unprotect "GPE"         'MO KHOA VOI PASS LA "GPE"
        Target.Locked = True                'KHOA CELL DO LAI
        ActiveSheet.Protect "GPE"           'PROTECT SHEET LAI VOI PASS LA "GPE"
    End If
End If
End Sub
 

File đính kèm

  • Copy of file.xlsb
    15.9 KB · Đọc: 31
Bạn thử nhé
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Or Target.Column = 3 Or Target.Column = 4 Then 'NEU COT THAY DOI LA B,C,D
    If Target.Value <> "" Then      'NEU CELL DO KHAC RONG
        ActiveSheet.Unprotect "GPE"         'MO KHOA VOI PASS LA "GPE"
        Target.Locked = True                'KHOA CELL DO LAI
        ActiveSheet.Protect "GPE"           'PROTECT SHEET LAI VOI PASS LA "GPE"
    End If
End If
End Sub
Mình cảm ơn bạn nha, đúng như ý mình luôn, à tiện bạn cho mình hỏi, bạn có tài liệu học excel kèm VBA cho mình xin với, mình muốn co thêm kiến thức về Excel như bạn đó. Thanks bạn
 
@hpkhuong Quảng cáo gì bạn ?, bạn ấy hỏi thì mình trả lời?. Với lại, mình có thu đồng xu, lợi nhuận nào từ việc này mà bạn bảo mình quảng cáo ?.
 
...Có thêm diễn đàn , thì sự cạnh tranh càng tốt, lợi cho người sử dụng
Cạnh tranh gì bạn?
Bạn muốn nói địa vị độc tôn của GPE sẽ lung lay đối với những người đói bài?

Hổng dám đâu. Mấy quán khác cơm hẩm cà mốc không hè. Cho đến nay GPE vẫn là quán cơm nóng canh sốt. Tuy rằng cái vụ ruồi nhặng thì có vẻ đang trên đà tăng.
 
Cạnh tranh gì bạn?
Bạn muốn nói địa vị độc tôn của GPE sẽ lung lay đối với những người đói bài?

Hổng dám đâu. Mấy quán khác cơm hẩm cà mốc không hè. Cho đến nay GPE vẫn là quán cơm nóng canh sốt. Tuy rằng cái vụ ruồi nhặng thì có vẻ đang trên đà tăng.
Vì tôi thấy hiện nay có 1 số diễn đàn ở Việt nam chặn băng thông (làm chậm) truy cập với các user account (tài khoản người dùng / nick) họ không thích, và âm thầm làm việc đó, thật là lợi hại. Đó là vì tính độc quyền, tính quan của họ.

Còn diễn đàn nào cũng phát triển từ số nhỏ lên thôi, có thịnh ắt có suy.
 
Lần chỉnh sửa cuối:
Bạn thử nhé
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Or Target.Column = 3 Or Target.Column = 4 Then 'NEU COT THAY DOI LA B,C,D
    If Target.Value <> "" Then      'NEU CELL DO KHAC RONG
        ActiveSheet.Unprotect "GPE"         'MO KHOA VOI PASS LA "GPE"
        Target.Locked = True                'KHOA CELL DO LAI
        ActiveSheet.Protect "GPE"           'PROTECT SHEET LAI VOI PASS LA "GPE"
    End If
End If
End Sub
Bạn cho mình hỏi cái code này là dùng để làm gì ạ
1581472504271.png
 
@Locvo236 Bạn thay
Mã:
Target.Column
Ví dụ thành từ vùng A1:B2
Mã:
Target.Range("A1:B2")
Bài đã được tự động gộp:

Cạnh tranh gì bạn?
Bạn muốn nói địa vị độc tôn của GPE sẽ lung lay đối với những người đói bài?

Hổng dám đâu. Mấy quán khác cơm hẩm cà mốc không hè. Cho đến nay GPE vẫn là quán cơm nóng canh sốt. Tuy rằng cái vụ ruồi nhặng thì có vẻ đang trên đà tăng.
Mỗi diễn đàn mỗi cách hoạt động khác nhau. GPE "hiện tại" hoạt động dựa trên những bài hỏi đáp giữa những thành viên có nhu cầu và quảng cáo. TuhocVBA.net hoạt động dựa trên các bài viết dịch thuật. Một bên hỏi đáp, một bên dịch thuật. Hai trường phái rất khác nhau nhưng có điểm chung là VBA và giúp ích cho người học. Chúng ta không thể so sánh được.
 
Lần chỉnh sửa cuối:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Range("B1:B10") Or Target.Range("C1:C10") Or Target.Range("D1:D10") Then

If Target.Value <> "" Then

ActiveSheet.Unprotect "123"

Target.Locked = True

ActiveSheet.Protect "123"

End If

End If

End Sub

VẪN BỊ LỖI BẠN Ạ GIÚP MÌNH VỚI NHA
 
Mỗi diễn đàn mỗi cách hoạt động khác nhau. GPE "hiện tại" hoạt động dựa trên những bài hỏi đáp giữa những thành viên có nhu cầu và quảng cáo. TuhocVBA.net hoạt động dựa trên các bài viết dịch thuật. Một bên hỏi đáp, một bên dịch thuật. Hai trường phái rất khác nhau nhưng có điểm chung là VBA và giúp ích cho người học. Chúng ta không thể so sánh được.
Bạn có quen thành viên @khongtu19bk ở đường dẫn trên không vậy?
 
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Range("B1:B10") Or Target.Range("C1:C10") Or Target.Range("D1:D10") Then

If Target.Value <> "" Then

ActiveSheet.Unprotect "123"

Target.Locked = True

ActiveSheet.Protect "123"

End If

End If

End Sub

VẪN BỊ LỖI BẠN Ạ GIÚP MÌNH VỚI NHA
Bạn thử nhé.
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
     If Not Intersect(Target, Range("B1:D10")) Is Nothing Then
        If Len(Target.Value) > 0 Then
            ActiveSheet.Unprotect 123
                 Target.Locked = True
            ActiveSheet.Protect 123
        End If
     End If
End Sub
 
Web KT
Back
Top Bottom