Sửa code để ghi nhật ký công việc

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

VuVanHao

Thành viên thường trực
Tham gia
20/6/18
Bài viết
246
Được thích
118
Em có dùng 1 file trên diễn đàn để ghi nhật ký công việc, khi bắt đầu viết ở cột B thì cột D hiện giờ bắt đầu và ghi kết quả ở cột F thì cột E hiện giờ kết thúc. Do tính chất công việc em muốn khi bất kỳ dòng nào ở cột B và cột F đã ghi dữ liệu rồi thì không sửa được nữa và thời gian bắt đầu và kết thúc ở cột D và E cũng không thể sửa được ạ. Em có mò theo file của thành viên Mr Okebab ở link dưới nhưng cứ khóa lại thì cái code ghi thời gian bắt đầu và kết thúc không chạy ạ.
Em nhờ mọi người giúp đỡ xem có cách nào giải quyết giúp em với ạ.
Em cảm ơn!
 

File đính kèm

Em có dùng 1 file trên diễn đàn để ghi nhật ký công việc, khi bắt đầu viết ở cột B thì cột D hiện giờ bắt đầu và ghi kết quả ở cột F thì cột E hiện giờ kết thúc. Do tính chất công việc em muốn khi bất kỳ dòng nào ở cột B và cột F đã ghi dữ liệu rồi thì không sửa được nữa và thời gian bắt đầu và kết thúc ở cột D và E cũng không thể sửa được ạ. Em có mò theo file của thành viên Mr Okebab ở link dưới nhưng cứ khóa lại thì cái code ghi thời gian bắt đầu và kết thúc không chạy ạ.
Em nhờ mọi người giúp đỡ xem có cách nào giải quyết giúp em với ạ.
Em cảm ơn!
Bạn nhận lại File - Thử tes xem đúng ý bạn chưa ???
 

File đính kèm

Upvote 0
Khi khóa vẫn hiện thời gian bắt đầu và kết thúc anh ạ :(
Nếu muốn khi đã ghi rồi thì tự khóa lại không cho sửa
Bạn dùng đoạn code sau thay vào code cũ trong Thisworkbook xem sao

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim CotD, CotE
ActiveSheet.Unprotect "GPE"
On Error Resume Next
If Target.Column = 2 Then
CotD = Target.Row
If Target.Value > 1 Then
Range("D" & CotD) = Now
Range("D" & CotD).NumberFormat = "dd/mm/yyyy hh:mm AM/PM"
End If
ActiveSheet.Protect "GPE"
End If
If Target.Column = 6 Then
ActiveSheet.Unprotect "GPE"
CotE = Target.Row
If Target.Value > 1 Then
Range("E" & CotE) = Now
Range("E" & CotE).NumberFormat = "dd/mm/yyyy hh:mm AM/PM"
End If
End If
ActiveSheet.Protect "GPE"
End Sub
 
Upvote 0
Code này sau khi nhập vào là khóa luôn cả sheet anh ạ. Ý em là muốn như của Bác Mr Okebab ý ạ, là chỉ khóa những cell đã có dữ liệu thôi ạ.
 
Upvote 0
Web KT

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

Back
Top Bottom