Hiển thị ngày giờ nhập liệu của các cell ?

Liên hệ QC

wtvnphu

Thành viên chính thức
Tham gia
3/10/08
Bài viết
59
Được thích
22
Chào các anh chị!
Công ty em có bảng kiểm tra temp trên máy vi tính. Nó được chia làm nhiều giờ trong ngày khác nhau, theo quy định nhân viên phải kiểm tra đúng giờ. Không biết có cách nào để hiển thị ngày giờ trên các cell mỗi khi có dữ liệu hay không? Các ngày giờ tất nhiên phải khác nhau đối với các cell khác nhau trên cùng 1 sheet. Các anh chị nào biết chỉ giúp em với, em cảm ơn nhiều nhiều lắm, em pó tay mấy tuần nay rồi, hình như chẳng thể dùng hàm trong excel được mà phải dùng code@!## em thì không biết , , . .
 

File đính kèm

  • Ghi_thoi_gian_nhap_lieu.xls
    15 KB · Đọc: 231
Chào các anh chị!
Công ty em có bảng kiểm tra temp trên máy vi tính. Nó được chia làm nhiều giờ trong ngày khác nhau, theo quy định nhân viên phải kiểm tra đúng giờ. Không biết có cách nào để hiển thị ngày giờ trên các cell mỗi khi có dữ liệu hay không? Các ngày giờ tất nhiên phải khác nhau đối với các cell khác nhau trên cùng 1 sheet. Các anh chị nào biết chỉ giúp em với, em cảm ơn nhiều nhiều lắm, em pó tay mấy tuần nay rồi, hình như chẳng thể dùng hàm trong excel được mà phải dùng code@!## em thì không biết , , . .

Bạn dùng code sau nhé
VD: nếu như vùng từ C6:C26 đổi thì cột D tương ứng sẽ nhập thời gian vào:

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
  With Range("C6:C26")
    If Not Intersect(Target, .Cells) Is Nothing Then
      If Target <> "" Then Target.Offset(, 1) = Now
    End If
  End With
End Sub
Bạn xem file nhé
 

File đính kèm

  • Copy of Ghi_thoi_gian_nhap_lieu.xls
    23.5 KB · Đọc: 626
Upvote 0
Cảm ơn anh nhiều, em làm được rồi, quá hay.
Sẵn đây anh cho em hỏi cái này, em cũng thắc mắc lâu lắm rồi mà không ai trả lời . Về hàm address, row và column.
Ví dụ : ta muốn copy dữ liệu từ C1:C10 của sheet 1 sang A1:J1 của sheet 2 thì có cách nào dùng 3 hàm trên không anh :D
 
Upvote 0
Cảm ơn anh nhiều, em làm được rồi, quá hay.
Sẵn đây anh cho em hỏi cái này, em cũng thắc mắc lâu lắm rồi mà không ai trả lời . Về hàm address, row và column.
Ví dụ : ta muốn copy dữ liệu từ C1:C10 của sheet 1 sang A1:J1 của sheet 2 thì có cách nào dùng 3 hàm trên không anh :D
Dùng hàm TRANSPOSE bạn à
Tại sheet 2, bạn quét chọn A1:J1 rồi gõ vào thanh Formula công thức:
=TRANSPOSE(Sheet1!C1:C10)
Gõ xong, bấm tổ hợp phím Ctrl + Shift + Enter
 
Upvote 0
Cảm ơn anh nhiều, em làm được rồi, quá hay.
Sẵn đây anh cho em hỏi cái này, em cũng thắc mắc lâu lắm rồi mà không ai trả lời . Về hàm address, row và column.
Ví dụ : ta muốn copy dữ liệu từ C1:C10 của sheet 1 sang A1:J1 của sheet 2 thì có cách nào dùng 3 hàm trên không anh :D
Bạn làm như sau:
-Ở sheet1 tô khối vùng C1:C10 cnha61n Ctrl+C , sang sheet2 chọn cell A1, click chuột phải chọn paste special, chọn Transpose, nhấn OK nhé
-Dùng hàm sau ở sheet 2
+Tô khối vùng từ A1:J1, click vào thanh nhập công thức như sau:
=TRANSPOSE(Sheet1!$C$1:$C$10)
Nhấn tổ hơp phím Ctrl+Shift+Enter nhé
 
Upvote 0
EM làm được rồi. Xưa nay chỉ biết copy và paste đặc biệt thui giờ biết thêm hàm Transpose . Cảm ơn anh domfootwear và ndu96081631 đã gúp em !
 
Upvote 0
cho mình hỏi thêm về phần hiển thị thời gian nhập liệu các cell:
khi nhập liệu (lần 1) vào cột D(theo file đính kèm mà Bạn domfootwear đã gửi)thì hiển thị thời gian tại thời điểm nhập đó vào cột D, khi xoá dữ liệu vùa nhập đi và nhập lại (lần 2) thì sẽ hiển thị thời gian vào ô E mà thời gian hiện ở ô C trước đó không thay đổi.

Cám ơn các Bạn nhiều!
 
Upvote 0
cho mình hỏi thêm về phần hiển thị thời gian nhập liệu các cell:
khi nhập liệu (lần 1) vào cột D(theo file đính kèm mà Bạn domfootwear đã gửi)thì hiển thị thời gian tại thời điểm nhập đó vào cột D, khi xoá dữ liệu vùa nhập đi và nhập lại (lần 2) thì sẽ hiển thị thời gian vào ô E mà thời gian hiện ở ô C trước đó không thay đổi.

Cám ơn các Bạn nhiều!
Không khó lắm! Thuật toán như sau:
- Nếu cell nhập liệu = rổng thì không làm gì cả
- Nếu cell nhập liệu có dữ liệu thì nhập giá trị ngày tháng vào bên phải của cell cuối cùng có dữ liệu (tính theo hàng)
Vậy thôi ---> Chỉ là... End(xlToLeft)
 
Upvote 0
Không khó lắm! Thuật toán như sau:
- Nếu cell nhập liệu = rổng thì không làm gì cả
- Nếu cell nhập liệu có dữ liệu thì nhập giá trị ngày tháng vào bên phải của cell cuối cùng có dữ liệu (tính theo hàng)
Vậy thôi ---> Chỉ là... End(xlToLeft)

Cám ơn sự chỉ dẫn của bạn.Bạn có thể viết code cụ thể cho mình được không?!
 
Upvote 0
Cám ơn sự chỉ dẫn của bạn.Bạn có thể viết code cụ thể cho mình được không?!
Dựa vào file ở bài #5, sửa code lại như sau:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  With Range("C6:C26")
    If Not Intersect(Target, .Cells) Is Nothing Then
      If Target <> "" Then Range("IV" & Target.Row).End(xlToLeft).Offset(, 1) = Now
    End If
  End With
End Sub
 

File đính kèm

  • AutoAddDate_02.xls
    21 KB · Đọc: 249
Upvote 0
Cho em hỏi thêm 1 chút, em muốn khóa luôn các ô ngày tháng và các ô nhập liệu thì em phải làm sao ạ? nghĩa là chỉ nhập liệu 1 lần thôi và sẽ cố định thời gian nhập liệu đó luôn ạ.
 
Upvote 0
Cho mình hỏi, mình cũng đang gặp trường hợp tương tự nhưng cột mà mình nhập số liệu vào là cột J cột cần hiễn thị thời gian là Cột T. trong trường hợp này không biết code viết như thế nào mới đúng, mình thử đi thủ lại mà không được
 
Upvote 0
Chào mọi người, mọi người có thể hướng dẫn chi tiết dùm e cách lập hàm để tự động hiển thị ngày h được k ah, e làm thử nhưng vẫn chưa đúng ah
Private Sub Worksheet_Change(ByVal Target As Range)On Error Resume Next
With Range("C6:C26")
If Not Intersect(Target, .Cells) Is Nothing Then
If Target <> "" Then Target.Offset(, 1) = Now
End If
End With
End Sub
 
Upvote 0
Cho em hỏi thêm 1 chút, em muốn khóa luôn các ô ngày tháng và các ô nhập liệu thì em phải làm sao ạ? nghĩa là chỉ nhập liệu 1 lần thôi và sẽ cố định thời gian nhập liệu đó luôn ạ.
Cho file cụ thể đi sẽ dễ thực hiện hơn.
Cho mình hỏi, mình cũng đang gặp trường hợp tương tự nhưng cột mà mình nhập số liệu vào là cột J cột cần hiễn thị thời gian là Cột T. trong trường hợp này không biết code viết như thế nào mới đúng, mình thử đi thủ lại mà không được
Bạn sử dụng code sau: (Mượn đỡ code của bác Ndu)
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  With Range("j6:j26")
    If Not Intersect(Target, .Cells) Is Nothing Then
      If Target <> "" Then Range("J" & Target.Row).Offset(, 10) = Now
    End If
  End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Cho file cụ thể đi sẽ dễ thực hiện hơn.

Bạn sử dụng code sau: (Mượn đỡ code của bác Ndu)
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  With Range("j6:j26")
    If Not Intersect(Target, .Cells) Is Nothing Then
      If Target <> "" Then Range("J" & Target.Row).Offset(, 10) = Now
    End If
  End With
End Sub
Bác giúp mình thêm code vào với, mình không biết làm sao, khi nào điền vào cột số CONTS thì nó sẽ tự nhiên thời gian bên cột TIME.
 

File đính kèm

  • PHAN-MEM-XUAT-TAU-7-SO (1).xlsx
    730.3 KB · Đọc: 29
Upvote 0
Dựa vào file ở bài #5, sửa code lại như sau:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  With Range("C6:C26")
    If Not Intersect(Target, .Cells) Is Nothing Then
      If Target <> "" Then Range("IV" & Target.Row).End(xlToLeft).Offset(, 1) = Now
    End If
  End With
End Sub

Nếu mình muốn mở 31 sheet tương ứng với 31 ngày và sheet nào cũng dùng format này thì phải sửa lại code như thế nào vậy bạn
 
Upvote 0
Nếu mình muốn mở 31 sheet tương ứng với 31 ngày và sheet nào cũng dùng format này thì phải sửa lại code như thế nào vậy bạn
Code này dành cho từng sheet, ko thể viết chung được nên bạn phải cop code này cho 31 sheets. Nếu bạn chưa tạo 31 sheets thì bạn copy code cho sheet đầu tiên rùi copy sheet cho đến khi đủ 31 sheet và đổi tên theo nhu cầu.
 
Upvote 0
Mình có nhu cầu khi cick vào cột Note lần 1 thì cột 1 số 1 của ngày đó sẽ hiển thị thời gian click. Click lần 2 thì cột số 2 sẽ hiển thị thời gian click. Mọi người xem file đính kèm giúp mình nhé. Cám ơn các bạn rất nhiều
 

File đính kèm

  • MAU.xlsx
    9.3 KB · Đọc: 23
Upvote 0
dùng thử code
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Application.Union([B3:B100], [E3:E100], [H3:H100], [K3:K100])
    If Not Intersect(Target, .Cells) Is Nothing Then
        If Target.Offset(, 1) = "" Then
            Target.Offset(, 1) = Now
        Else
            If Target.Offset(, 2) = "" Then Target.Offset(, 2) = Now
        End If
    End If
  End With
End Sub
 
Upvote 0
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Application.Union([F5:G70], [I5:J70], [L5:M70], [O5:p70], [R5:S70], [U5:V70], [X5:Y70])
If Not Intersect(Target, .Cells) Is Nothing Then
Target.Offset(, 0) = Now

End If
End With
End Sub
Mình sửa lại code như trên để khi mình click vô ô nào thì tự động nó sẽ hiển thị ngày giờ. Nhưng giờ lại thấy bất tiện là khi mình tô đen chọn ô thì nó hiện ra hết. Nên mình muốn chỉ khi nào đánh chữ X vào ô rồi enter thì ô đó mới hiển thị ngày giờ. Nhưng mình gà mờ quá, không biết sửa sao. Các bạn sửa lại giúp mình nhé. Cám ơn các bạn
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom