Xin hướng dẫn Code VBA giới hạn thời gian chỉnh sửa dữ liệu đã nhập

Liên hệ QC

kietva201

Thành viên mới
Tham gia
20/6/19
Bài viết
2
Được thích
0
Chào cả nhà
Em đang muốn kiểm soát file excel quản lý thông tin danh sách lao động xuất khẩu thị trường Nhật. File cho cả nhóm nhập dữ liệu vào cuối tháng, để tránh bị xóa các dữ liệu, em cần như sau:
- Nhân viên nhập dữ liệu vào cột sau khoảng thời gian 1h hoặc 2h là excel không cho sửa hoặc xóa dữ liệu đã nhập.
Nhờ các cao thủ giúp đỡ.
 
Cho phép lùn tịt thủ tui hỏi ngu cái : vậy khi nào thì cho edit lại sau khi khóa?
 
có thể cho admin có pass gì đó sửa hoặc xóa được không bạn nhỉ.
Nhờ bạn giúp đỡ.
 
Mình nói rồi, mình là lùn tịt thủ mà, chờ cao thủ giúp thôi ban.
 
Chào cả nhà
Em đang muốn kiểm soát file excel quản lý thông tin danh sách lao động xuất khẩu thị trường Nhật. File cho cả nhóm nhập dữ liệu vào cuối tháng, để tránh bị xóa các dữ liệu, em cần như sau:
- Nhân viên nhập dữ liệu vào cột sau khoảng thời gian 1h hoặc 2h là excel không cho sửa hoặc xóa dữ liệu đã nhập.
Nhờ các cao thủ giúp đỡ.
Mình có 1 ý tưởng thế này không biết có OK không:
Sau 1h chiều ( 13h) là khóa Sheet
If Hour(Now) >12 then
Sheet1.Protect 123456
' Khóa Sheet1 với mật khẩu là 123456
Else
Sheet1.Unprotect 123456
End If

Mình cũng cùi món này lắm nên chỉ viết có mơ hồ vậy thôi à. Bạn thông cảm nha ;)
 
Cách nghĩ: Phải có thông tin lưu thời gian người đó chỉnh sửa, vì vậy trên excel nên có cột dữ liệu ghi lại lần truy cập file của mỗi thành viên.
Rồi sau đó so sánh thời gian để cấm sửa.
Sẽ thuận lợi hơn nếu bạn lưu dữ liệu trên access.
File excel: Dùng để đọc từ access hoặc cập nhật dữ liệu vào access.
File access: là nơi lưu trữ dữ liệu. Trên access tất nhiên có trường thông tin lưu lại trạng thái cập nhật thông tin gần đây nhất của mỗi thành viên.
 
Chào cả nhà
Em đang muốn kiểm soát file excel quản lý thông tin danh sách lao động xuất khẩu thị trường Nhật. File cho cả nhóm nhập dữ liệu vào cuối tháng, để tránh bị xóa các dữ liệu, em cần như sau:
- Nhân viên nhập dữ liệu vào cột sau khoảng thời gian 1h hoặc 2h là excel không cho sửa hoặc xóa dữ liệu đã nhập.
Nhờ các cao thủ giúp đỡ.
Cái này thì làm cho nó cái form nhập liệu là xong.Nhập vào Data hết xóa,hết sửa mà data còn đẹp nữa chứ.
 
Chào cả nhà
Em đang muốn kiểm soát file excel quản lý thông tin danh sách lao động xuất khẩu thị trường Nhật. File cho cả nhóm nhập dữ liệu vào cuối tháng, để tránh bị xóa các dữ liệu, em cần như sau:
- Nhân viên nhập dữ liệu vào cột sau khoảng thời gian 1h hoặc 2h là excel không cho sửa hoặc xóa dữ liệu đã nhập.
Nhờ các cao thủ giúp đỡ.

Ví dụ: Muốn khóa Range("A1: F8") ngay sau khi nhập dữ liệu xong: (P/s: lỡ có nhập sai thì ghi chú thích bên cạnh cho Admin sửa)

1. Mở khóa range này trước, chọn Range("A1: F8") và nhấp chuột phải, sau đó chọn Format Cells trong menu nhấp chuột phải và trong hộp thoại Format Cells ô, bỏ chọn hộp Locked trong tab Protection và cuối cùng nhấp vào nút OK .

2. Click Review > Protect Sheet. Và nhập một mật khẩu để bảo vệ bảng tính này (as the same Password trong code dưới đây):

'-------------------------------------------------------------------------------
Dim mRg As Range
Dim mStr As String

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
Set mRg = Target.Item(1)
mStr = mRg.Value
End If
End Sub

'-------------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xRg As Range
On Error Resume Next
Set xRg = Intersect(Range("A1:F8"), Target)
If xRg Is Nothing Then Exit Sub
Target.Worksheet.Unprotect Password:="123"
If xRg.Value <> mStr Then xRg.Locked = True
Target.Worksheet.Protect Password:="123"
End Sub

'-------------------------------------------------------------------------------

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
Set mRg = Target.Item(1)
mStr = mRg.Value
End If
End Sub

'-------------------------------------------------------------------------------
4- Range nào hay sheet nào thì bạn tùy biến theo trang tính của bạn.

.
 
Ví dụ: Muốn khóa Range("A1: F8") ngay sau khi nhập dữ liệu xong: (P/s: lỡ có nhập sai thì ghi chú thích bên cạnh cho Admin sửa)

1. Mở khóa range này trước, chọn Range("A1: F8") và nhấp chuột phải, sau đó chọn Format Cells trong menu nhấp chuột phải và trong hộp thoại Format Cells ô, bỏ chọn hộp Locked trong tab Protection và cuối cùng nhấp vào nút OK .

2. Click Review > Protect Sheet. Và nhập một mật khẩu để bảo vệ bảng tính này (as the same Password trong code dưới đây):

'-------------------------------------------------------------------------------
Dim mRg As Range
Dim mStr As String

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
Set mRg = Target.Item(1)
mStr = mRg.Value
End If
End Sub

'-------------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xRg As Range
On Error Resume Next
Set xRg = Intersect(Range("A1:F8"), Target)
If xRg Is Nothing Then Exit Sub
Target.Worksheet.Unprotect Password:="123"
If xRg.Value <> mStr Then xRg.Locked = True
Target.Worksheet.Protect Password:="123"
End Sub

'-------------------------------------------------------------------------------

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
Set mRg = Target.Item(1)
mStr = mRg.Value
End If
End Sub

'-------------------------------------------------------------------------------
4- Range nào hay sheet nào thì bạn tùy biến theo trang tính của bạn.

.
Hi anh,
Em đã làm theo nhưng nó khóa tất cả các sheet ạ, xin hỏi còn cách nào chỉ khóa cột A sau khi nhập dữ liệu còn các cột khác vẫn cho nhập không ạ?
 
Web KT
Back
Top Bottom