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
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

Bạn nào giúp mình với ạ
 
Upvote 0
Bạn nào giúp mình với ạ
Private Sub Worksheet_Change(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
if target.value = "x" then target.value = now
End If
End With
End Sub
 
Upvote 0
Private Sub Worksheet_Change(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
if target.value = "x" then target.value = now
End If
End With
End Sub
Mình có làm thử cái này rồi nhưng khi bôi đen ô rồi xóa đi thì nó lại báo lỗi 13. Làm sao để fix lỗi này vậy bạn
 
Upvote 0
Mình có làm thử cái này rồi nhưng khi bôi đen ô rồi xóa đi thì nó lại báo lỗi 13. Làm sao để fix lỗi này vậy bạn
Cái bạn nói là vùng(Range) chứ ko phải là ô (cell) bạn thêm dòng code này vào là dc:
If Target.Rows.Count = 1 And Target.Columns.Count = 1 Then
If Target.Value = "x" Then Target.Value = Now
End If
 
Upvote 0
có cách nào để code chạy trên file google trang tính không nhỉ ?
 
Upvote 0
Các bác cho em hỏi , khi em nhập code này khi nhập dữ liệu cột C thì cột D nhảy ngày giờ. Bây h em cần nhập cột E để cột F nhảy, cột G để H nhảy...thì câu lệnh như thế nào ạ :
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
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é
Thầy cho em hỏi nếu như em nhập từ cột bất kỳ (cột A đến cột Z) và cột AA em muốn hiển thị thời gian ngày giờ nhập, và dòng thì từ dòng 6 đến dòng 100 thì code không biết sửa như thế nào vậy thầy.
 
Lần chỉnh sửa cuối:
Upvote 0
Thầy cho em hỏi nếu như em nhập từ cột bất kỳ (cột A đến cột Z) và cột AA em muốn hiển thị thời gian ngày giờ nhập, và dòng thì từ dòng 6 đến dòng 100 thì code không biết sửa như thế nào vậy thầy.
Tôi chỉnh lại vùng nhập liệu A6:Z100, bạn tùy biến mà dùng nhé.

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    With Range("A6:Z100")
        If Not Intersect(Target, .Cells) Is Nothing Then
            If Target <> "" Then Target.Offset(, 27 - Target.Column()) = Now
        End If
    End With
End Sub
Bạn đừng gọi tôi bằng thầy nữa nhé, tôi cảm thấy ngại lắm.
 
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
Em muốn lúc nhập dữ liệu thì mới nhảy time ấy ạ. Còn code này mới chọn ô đã nhảy time rồi ạ
 
Upvote 0
Em muốn lúc nhập dữ liệu thì mới nhảy time ấy ạ. Còn code này mới chọn ô đã nhảy time rồi ạ
Sự kiện bạn đang bảo nó là Worksheet_SelectionChange thì nó thực hiện đúng vậy còn gì. Nếu muốn nhập liệu nó nhảy thì thay đổi sự kiện Worksheet_SelectionChange thành Worksheet_Change nhé
 
Upvote 0
Tôi chỉnh lại vùng nhập liệu A6:Z100, bạn tùy biến mà dùng nhé.

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    With Range("A6:Z100")
        If Not Intersect(Target, .Cells) Is Nothing Then
            If Target <> "" Then Target.Offset(, 27 - Target.Column()) = Now
        End If
    End With
End Sub
Bạn đừng gọi tôi bằng thầy nữa nhé, tôi cảm thấy ngại lắm.
Dạ, vâng ạ. Em xin cảm ơn Hai Lúa Miền Tây rất nhiều ạ.
 
Upvote 0
Bác Hai Lúa Miền Tây giúp em tiếp được không ạ
Em có các cột J cột N cột R hiển thị thời gian cần cấp vật liệu
Dùng code nào để hiển thị màu đối với các ô khi đến giờ cấp bác nhỉ.
Ví dụ ô J4 là giờ cấp. Ô K4 là số lượng cấp. Nếu ô K4 chưa có dữ liệu thì ô J4 sẽ hiển thị màu đỏ ạ
 
Lần chỉnh sửa cuối:
Upvote 0
Bác Hai Lúa Miền Tây giúp em tiếp được không ạ
Em có các cột J cột N cột R hiển thị thời gian cần cấp vật liệu
Dùng code nào để hiển thị màu đối với các ô khi đến giờ cấp bác nhỉ.
Ví dụ ô J4 là giờ cấp. Ô K4 là số lượng cấp. Nếu ô K4 chưa có dữ liệu thì ô J4 sẽ hiển thị màu đỏ ạ
Bạn thử với:
+> Code cho Sheet
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    If Not Intersect(Target, Range("J4:K100")) Is Nothing Then
        abc
    ElseIf Not Intersect(Target, Range("N4:O100")) Is Nothing Then
        abc
    ElseIf Not Intersect(Target, Range("R4:S100")) Is Nothing Then
        abc
    End If
End Sub
+> Code cho Module:
PHP:
Option Explicit
Sub abc()
    Dim i, j, LRJ, LRN1, LRR
    LRJ = Range("J" & Rows.Count).End(xlUp).Row
    LRN1 = Range("N" & Rows.Count).End(xlUp).Row
    LRR = Range("R" & Rows.Count).End(xlUp).Row
    For i = 4 To LRJ
        With Columns(10)
            If IsDate(Cells(i, 10)) And Cells(i, 11).Value = Empty Then
                Cells(i, 10).Interior.ColorIndex = 3
            Else
                Cells(i, 10).Interior.ColorIndex = xlNone
            End If
        End With
    Next
    For i = 4 To LRN1
        With Columns(14)
            If IsDate(Cells(i, 14)) And Cells(i, 15).Value = Empty Then
                Cells(i, 14).Interior.ColorIndex = 3
            Else
                Cells(i, 14).Interior.ColorIndex = xlNone
            End If
        End With
    Next
    For i = 4 To LRR
        With Columns(18)
            If IsDate(Cells(i, 18)) And Cells(i, 19).Value = Empty Then
                Cells(i, 18).Interior.ColorIndex = 3
            Else
                Cells(i, 18).Interior.ColorIndex = xlNone
            End If
        End With
    Next
End Sub
 
Upvote 0
Bạn thử với:
+> Code cho Sheet
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    If Not Intersect(Target, Range("J4:K100")) Is Nothing Then
        abc
    ElseIf Not Intersect(Target, Range("N4:O100")) Is Nothing Then
        abc
    ElseIf Not Intersect(Target, Range("R4:S100")) Is Nothing Then
        abc
    End If
End Sub
+> Code cho Module:
PHP:
Option Explicit
Sub abc()
    Dim i, j, LRJ, LRN1, LRR
    LRJ = Range("J" & Rows.Count).End(xlUp).Row
    LRN1 = Range("N" & Rows.Count).End(xlUp).Row
    LRR = Range("R" & Rows.Count).End(xlUp).Row
    For i = 4 To LRJ
        With Columns(10)
            If IsDate(Cells(i, 10)) And Cells(i, 11).Value = Empty Then
                Cells(i, 10).Interior.ColorIndex = 3
            Else
                Cells(i, 10).Interior.ColorIndex = xlNone
            End If
        End With
    Next
    For i = 4 To LRN1
        With Columns(14)
            If IsDate(Cells(i, 14)) And Cells(i, 15).Value = Empty Then
                Cells(i, 14).Interior.ColorIndex = 3
            Else
                Cells(i, 14).Interior.ColorIndex = xlNone
            End If
        End With
    Next
    For i = 4 To LRR
        With Columns(18)
            If IsDate(Cells(i, 18)) And Cells(i, 19).Value = Empty Then
                Cells(i, 18).Interior.ColorIndex = 3
            Else
                Cells(i, 18).Interior.ColorIndex = xlNone
            End If
        End With
    Next
End Sub
Em cảm ơn bác nhiều ạ
 
Lần chỉnh sửa cuối:
Upvote 0
Bác phulien1902 ơi em nhờ tý được không ạ
Cột J4 , N4 , R4 ... là cột thời gian cấp . Dùng code nào để khi trước thời gian cấp 15 phút thì ô đó sẽ hiển thị màu không ạ
Hiện tại là 17h00
Thì cột J4 , N4 ... sẽ hiển thị màu vào lúc 16h45 ấy ạ
và khi cột K4 , O4 có dữ liệu cấp vật liệu thì J4 , N4 ... sẽ không hiển thị màu nữa ạ
Có gì mong bác giúp đỡ ạ !
 
Upvote 0
Bác nào giúp em với , khi em dùng 2 code cho 1 sheet thì báo lỗi ạ :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Application.Union([K3:K100], [O3:O100], [S3:S100])
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

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Not Intersect(Target, Range("J4:K100")) Is Nothing Then
abc
ElseIf Not Intersect(Target, Range("N4:O100")) Is Nothing Then
abc
ElseIf Not Intersect(Target, Range("R4:S100")) Is Nothing Then
abc
End If
End Sub
 
Upvote 0
Bác nào giúp em với , khi em dùng 2 code cho 1 sheet thì báo lỗi ạ :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Application.Union([K3:K100], [O3:O100], [S3:S100])
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

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Not Intersect(Target, Range("J4:K100")) Is Nothing Then
abc
ElseIf Not Intersect(Target, Range("N4:O100")) Is Nothing Then
abc
ElseIf Not Intersect(Target, Range("R4:S100")) Is Nothing Then
abc
End If
End Sub
Lỗi do bạn không chép Sub abc vào Module.
 
Upvote 0
Bác phulien1902 ơi em nhờ tý được không ạ
Cột J4 , N4 , R4 ... là cột thời gian cấp . Dùng code nào để khi trước thời gian cấp 15 phút thì ô đó sẽ hiển thị màu không ạ
Hiện tại là 17h00
Thì cột J4 , N4 ... sẽ hiển thị màu vào lúc 16h45 ấy ạ
và khi cột K4 , O4 có dữ liệu cấp vật liệu thì J4 , N4 ... sẽ không hiển thị màu nữa ạ
Có gì mong bác giúp đỡ ạ !
Bác giúp em vấn đề này với ạ
 
Upvote 0
Web KT

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

Back
Top Bottom