Lưu thời gian nhập dữ liệu??? (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

hailong

Thành viên mới
Tham gia
6/1/07
Bài viết
28
Được thích
6
Nghề nghiệp
Thiết kế điện kỹ thuật
Chào cả nhà.

Công việc mình hay nhập số liệu

Rất mong cả nhà giúp đỡ cho mình công việc sau:

VD Nhập liệu tại ô A5 thì ô C5 hiện ngày nhập hiện tại và lưu cố định ngày nhập.

Chúc cả nhà Năm mới 2008 vui vẻ.

HAILONG - NHA TRANG
 
Bạn làm thế này
Bấm Alt+F11 chọn sheet1 (chẳng hạn) bên trái rồi copy code sau vào, trở lại Excel giờ gõ vào ô A5 , C5 sẽ ghi lại thời điểm DL thay đổi
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect([A5], Target) Is Nothing Then Range("C5").Value = Now()
End Sub
]

chúc thành công
 
Nếu bạn muốn nhập từ A5 đến A100 và tương ứng bên cột C sẽ nhập ngày tháng thì sửa lại code chút: (và nhân tiện chỉnh lại Format cells luôn cho đẹp)
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Range("A5:A100"), Target) Is Nothing Then
         Cells(Target.Row, 3).Value = Now()
         Cells(Target.Row, 3).NumberFormat = "dd/mm/yyyy"
   End If
End Sub
 
anhtuan1066 đã viết:
Nếu bạn muốn nhập từ A5 đến A100 và tương ứng bên cột C sẽ nhập ngày tháng thì sửa lại code chút: (và nhân tiện chỉnh lại Format cells luôn cho đẹp)
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Range("A5:A100"), Target) Is Nothing Then
         Cells(Target.Row, 3).Value = Now()
         Cells(Target.Row, 3).NumberFormat = "dd/mm/yyyy"
   End If
End Sub

TO: THEO HƯỠNG DẪN CỦA BÁC , SAO EXCEL KHÔNG HIỂU
BÁC VUI LÒNG HƯỠNG DẪN CHI TIẾT.

CODE CỦA EM

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("F7:H3000"), Target) Is Nothing Then
Cells(Target.Row, 7).Value = Now()
Cells(Target.Row, 7).NumberFormat = "dd/mm/yyyy"
End If
End Sub
 
Bạn chưa nói rõ muốn nhập ngày tháng vào cột nào, nhưng theo code bạn ghi thi bạn đã đặt điều kiện nếu từ F7:H3000 có nhập liệu thì sẽ nhập ngày tháng năm vào... Vậy có lẽ ngày tháng tự động phải dc nhập vào cột khác cột F, cột G và H chứ nhỉ?
Bạn xem lại Cells(Target.Row, 7).Value = Now() có nghĩa là bạn đang muốn ngày tháng tự động nhập vào cột thứ 7 đấy.. mà cột thứ 7 chính là cột G... Lý nào lại thế? Vừa nhập gì đó vào G7, lập tức G7 biến thành ngày tháng năm sao? Vậy cần nhập làm gì cho mất công ???
Giờ như thế này nhé: bạn hãy nói rõ vùng nhập liệu của bạn từ đâu đến đâu? Và bạn muốn ngày tháng năm sẽ dc tự động nhập vào cột nào?
Gữi file này cho bạn tham khảo: vùng nhập liệu vẫn như của bạn... còn cột ngày tháng là cột I, tức cột thứ 9
ANH TUẤN
 

File đính kèm

Lần chỉnh sửa cuối:
Code không chạy khi thay đổi Now() thành today()

Bạn chưa nói rõ muốn nhập ngày tháng vào cột nào, nhưng theo code bạn ghi thi bạn đã đặt điều kiện nếu từ F7:H3000 có nhập liệu thì sẽ nhập ngày tháng năm vào... Vậy có lẽ ngày tháng tự động phải dc nhập vào cột khác cột F, cột G và H chứ nhỉ?
Bạn xem lại Cells(Target.Row, 7).Value = Now() có nghĩa là bạn đang muốn ngày tháng tự động nhập vào cột thứ 7 đấy.. mà cột thứ 7 chính là cột G... Lý nào lại thế? Vừa nhập gì đó vào G7, lập tức G7 biến thành ngày tháng năm sao? Vậy cần nhập làm gì cho mất công ???
Giờ như thế này nhé: bạn hãy nói rõ vùng nhập liệu của bạn từ đâu đến đâu? Và bạn muốn ngày tháng năm sẽ dc tự động nhập vào cột nào?
Gữi file này cho bạn tham khảo: vùng nhập liệu vẫn như của bạn... còn cột ngày tháng là cột I, tức cột thứ 9
ANH TUẤN
Tôi đang nghiên cứu các đoạn code đơn giản của các thành viên trên diễn đàn
hôm nay tình cờ xem đoạn code của anh tuấn thấy rấy hay và phù hợp cho công việc của mình, nên tò mò chỉnh sửa lại cho ưng ý nhưng gặp phải vấn đề mong các bác giúp đỡ
khi em sửa cột trong đoạn code thì vẫn chạy bình thường
nhưng khi sửa Now() thành today() thì báo lỗi
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Range("F7:H3000"), Target) Is Nothing Then Cells(Target.Row, 1).Value = Now()-----> bây giờ làm sao để sửa thành today(). vì khi tôi sửa thành today()thì code không chạy
Cells(Target.Row, 1).NumberFormat = "dd/mm/yyyy" End If End Sub
 
Tôi đang nghiên cứu các đoạn code đơn giản của các thành viên trên diễn đàn
hôm nay tình cờ xem đoạn code của anh tuấn thấy rấy hay và phù hợp cho công việc của mình, nên tò mò chỉnh sửa lại cho ưng ý nhưng gặp phải vấn đề mong các bác giúp đỡ
khi em sửa cột trong đoạn code thì vẫn chạy bình thường
nhưng khi sửa Now() thành today() thì báo lỗi
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Range("F7:H3000"), Target) Is Nothing Then Cells(Target.Row, 1).Value = Now()-----> bây giờ làm sao để sửa thành today(). vì khi tôi sửa thành today()thì code không chạy
Cells(Target.Row, 1).NumberFormat = "dd/mm/yyyy" End If End Sub
VBA làm gì có cái vụ TODAY() chứ
Đổi NOW thành DATE
 
Em muốn trong một sheet: nhập liệu từ A1 đến A54 thì cho thời gian tương ứng ra cột M, nhập từ B1 đến B54 thì cho thời gian tương ứng ra cột N... cứ như vậy cho nhiều cột nhập liệu khác nhau. Tóm lại nhập liệu vào một cell thì cho ra thời gian tương ứng ở một cell.
Rất mong các bác giúp, nếu có file ví dụ thì càng tốt.
Xin cảm ơn các bác trước
 
Các bác ơi, cái này e làm bình thường nhưng code này chỉ chạy được trên excell 2003 chứ chuyển file này sang xài trên office 2007 trở lên nó bị lỗi lúc chạy lúc không. Có ai giúp với được không.Mong được hồi âm sớm.
 
Các bác ơi, cái này e làm bình thường nhưng code này chỉ chạy được trên excell 2003 chứ chuyển file này sang xài trên office 2007 trở lên nó bị lỗi lúc chạy lúc không. Có ai giúp với được không.Mong được hồi âm sớm.
excel 2007 và 2010 thì bạn phải lưu ở dạng xlsm hoặc xlsb thì code mới chạy được.
 
Mình làm được rồi
Nhưng mình muốn nhập dữ liệu ở A5 thì giờ hiện ở C5
A6 thì giờ hiện ở C6
...
A100 thì giờ hiện C100
Vậy phải làm thế nào
 
Mình làm được rồi
Nhưng mình muốn nhập dữ liệu ở A5 thì giờ hiện ở C5
A6 thì giờ hiện ở C6
...
A100 thì giờ hiện C100
Vậy phải làm thế nào

Mình có đoạn code do anh Nghĩa Phúc trên này giúp mình, chia sẽ với bạn nhé:

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cll As Range
    If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
    For Each Cll In Intersect(Target, [A:A])
        If Cll <> "" Then
            Cll.Offset(, 2) = Format(Now, "hh:mm AM/PM")
        Else
            Cll.Offset(, 2).ClearContents
        End If
    Next
End Sub

Chúc bạn thành công!
 
Mình làm được rồi
Nhưng mình muốn nhập dữ liệu ở A5 thì giờ hiện ở C5
A6 thì giờ hiện ở C6
...
A100 thì giờ hiện C100
Vậy phải làm thế nào
Bạn sử dụng code này:
[GPECODE=vb]Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A5:A100]) Is Nothing Or Target.Count > 1 Then Exit Sub
Target.Offset(, 2) = Format(Now(), "HH:mm:ss")
End Sub[/GPECODE]
 
Web KT

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

Back
Top Bottom