Tự động lấy ngày giờ hệ thống trong excel (1 người xem)

Liên hệ QC

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

nhatquyelec

Thành viên mới
Tham gia
17/12/10
Bài viết
48
Được thích
2
Nghề nghiệp
Elec Engineer
Chào các bạn, tôi có một vấn đề như thế này trong excel :
Giả sử tôi có 4 cột A,B,C,D trong excel
tôi muốn khi tôi nhập dữ liệu vào 3 cột A,B,C thì cột thứ 4 - cột D sẽ tự động lấy ngày giờ của hệ thống hiển thị thời điểm mà tôi nhập dữ liệu vào 3 ô đó.
Tôi đã nhập vào cột D công thức sau : =IF(A1&B1&C1="","",TODAY())
nhưng nó hiện một dãy số : 40550 gì đó tùy thời điểm,
cái tôi muốn là nó hiển thị ngày giờ vd : 12/01/2011 8h30am
Có ai biết phương pháp làm xin chỉ giúp , cám ơn !
 
Chào các bạn, tôi có một vấn đề như thế này trong excel :
Giả sử tôi có 4 cột A,B,C,D trong excel
tôi muốn khi tôi nhập dữ liệu vào 3 cột A,B,C thì cột thứ 4 - cột D sẽ tự động lấy ngày giờ của hệ thống hiển thị thời điểm mà tôi nhập dữ liệu vào 3 ô đó.
Tôi đã nhập vào cột D công thức sau : =IF(A1&B1&C1="","",TODAY())
nhưng nó hiện một dãy số : 40550 gì đó tùy thời điểm,
cái tôi muốn là nó hiển thị ngày giờ vd : 12/01/2011 8h30am
Có ai biết phương pháp làm xin chỉ giúp , cám ơn !
Bạn nhập công thức tại D1
=if(counta(A1:C1)=3;now();"")
 
chào bạn tôi đã thử cách của bạn cũng chỉ là một cách viết khác cách của tôi thôi, tôi cũng đã thử nhưng nó cũng chỉ hiện một dãy số 40564 ( tùy thời điểm số này có thể khác ), nó là dạng số của thời gian
Vấn đề là ở đây làm sao biến dãy đó thành vd : 22/12/2011 8h30 ấy
Xin giúp đỡ, cám ơn !
 
chào bạn tôi đã thử cách của bạn cũng chỉ là một cách viết khác cách của tôi thôi, tôi cũng đã thử nhưng nó cũng chỉ hiện một dãy số 40564 ( tùy thời điểm số này có thể khác ), nó là dạng số của thời gian
Vấn đề là ở đây làm sao biến dãy đó thành vd : 22/12/2011 8h30 ấy
Xin giúp đỡ, cám ơn !
Trời... bạn không biết vào Format\Cells để định dạng lại sao? Cơ bản quá mà
 
vào fomat địn dạng lại cái ô đó là date, rồi custom thành dd/mm/yy
 
Mình cũng có yêu cầu giống bác chủ topic; đã thực hiện theo công thức trên nhưng gặp 1 số khó khăn như sau:

KHÓ KHĂN CỦA CÔNG THỨC HIỆN TẠI

KHI THAY ĐỔI GIÁ TRỊ NÀO TRONG SHEET GIÁ TRỊ TẠI Ô THỜI GIAN XÁC NHẬN TÌNH TRẠNG ĐƠN HÀNG CŨNG THAY ĐỔI THEO


YÊU CẦU

1.KHI CÓ GIÁ TRỊ TẠI Ô TÌNH TRẠNG ĐƠN HÀNG THÌ Ô XÁC NHẬN TÌNH TRẠNG ĐƠN HÀNG HIỂN THỊ NGÀY VÀ GIỜ XÁC NHẬN.

2.KHI GIÁ TRỊ TẠI Ô TÌNH TRẠNG ĐƠN HÀNG THAY ĐỔI THÌ NGÀY GIỜ ĐƯỢC CẬP NHẬT LẠI
 

File đính kèm

Mình cũng xem qua mấy bài trước thấy chỉ có phương pháp xài VBA, vậy code VBA thế nào để giải quyết vấn đề này?
 
Mình cũng xem qua mấy bài trước thấy chỉ có phương pháp xài VBA, vậy code VBA thế nào để giải quyết vấn đề này?
Dùng code này cho sheet1 thử xem:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B4:B9]) Is Nothing Then
    If Target.Rows.Count = 1 Then
        If Target = "" Then
            Target.Offset(, 1).Value = ""
        Else
            Target.Offset(, 1).Value = Now()
        End If
    End If
End If
End Sub
 
Cho em hỏi các bác 1 chút: Em muốn 1 cell hiện thị ra giờ hệ thống định dạng [h]:mm:ss. Em tìm hàm chi co today nhưng lại trả về cả ngày và giờ, không như mong muốn. Em sử dụng công thức =TIME(HOUR(TODAY()),MINUTE(TODAY()),SECOND(TODAY())) cũng không được.
 
Cho em hỏi các bác 1 chút: Em muốn 1 cell hiện thị ra giờ hệ thống định dạng [h]:mm:ss. Em tìm hàm chi co today nhưng lại trả về cả ngày và giờ, không như mong muốn. Em sử dụng công thức =TIME(HOUR(TODAY()),MINUTE(TODAY()),SECOND(TODAY())) cũng không được.
Bạn tự tìm hiểu thêm về format\cell (bấm ^1). Nếu lười quá thì dùng hàm text thử xem:
 
Dùng code này cho sheet1 thử xem:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B4:B9]) Is Nothing Then
    If Target.Rows.Count = 1 Then
        If Target = "" Then
            Target.Offset(, 1).Value = ""
        Else
            Target.Offset(, 1).Value = Now()
        End If
    End If
End If
End Sub

Mình cũng gặp phải vấn đề này, bạn có thể chỉ rõ hơn cách dùng đoạn code trên được không? Thanks nhé!
 
hiện tại mình cũng đang gặp phải tình trạng này hjz mình có 4 ô A B C D , mình đặt công thức tại ô D là nếu cả 3 ô A-B-C đều đúng thì ô D sẽ bằng ngày của hệ thống (ngày 12/1/2013). Nhưng mình muốn nó lấy được ngày hệ thống xong thì ngừng lại chứ sang ngày tiếp theo thì nó lại chuyển thành ngày (13/1/2013). các bác, các anh, các chị nào có thể giải quyết được thì chỉ giùm em được không ạ?
Thân!
 
hiện tại mình đang gặp phải tình trạng này hjz mình có 4 ô A B C D , mình đặt công thức tại ô D là nếu cả 3 ô A-B-C đều đúng thì ô D sẽ bằng ngày của hệ thống (ngày 12/1/2013). Nhưng mình muốn nó lấy được ngày hệ thống xong thì ngừng lại chứ sang ngày tiếp theo thì nó lại chuyển thành ngày (13/1/2013). các bác, các anh, các chị nào có thể giải quyết được thì chỉ giùm em được không ạ?
Thân & cảm ơn !
Muốn vậy thì đừng dùng hàm TODAY. Hoặc là tính toán xong Paste Values lại vị trí cũ, hoặc là sử dụng sự kiện WorkSheet_Change để gán ngày hệ thống vào cột D là được.
 
nếu không dùng hàm today() thì có hàm khác có thể giải quyết được vấn đề của em không ạ, nếu paste values thì còn nói làm gì nữa ạ hjz
 
Không có công thức nào tự động Value giá trị dùm bạn được, trừ khi bạn dùng đến code (lập trình trong VBA).
 
rất cám ơn anh đã quan tâm và trả lời! vậy anh có thể cho em Code đó được không anh? chứ VBA thì em thực sự mù tịt hjz
Ghi lại thời gian sau 1 ô nhập liệu:
Alt+F11, coppy code:
[gpecode=vb]
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
With Range("A1:A100")
If Not Intersect(Target, .Cells) Is Nothing Then
If Target <> "" Then Target.Offset(, 1) = Now
End If
End With
End Sub[/gpecode]
Thử nhập giá trị bất kỳ vào vùng A1:A100
 
Ghi lại thời gian sau 1 ô nhập liệu:
Alt+F11, coppy code:
[gpecode=vb]
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
With Range("A1:A100")
If Not Intersect(Target, .Cells) Is Nothing Then
If Target <> "" Then Target.Offset(, 1) = Now
End If
End With
End Sub[/gpecode]
Thử nhập giá trị bất kỳ vào vùng A1:A100
cảm ơn anh rất nhiều ạ, vậy anh cho em hỏi thêm là thêm điều kiện để cột B đó hiện thị ngày tháng thì phải sửa code sao vậy anh hj
 
cảm ơn anh rất nhiều ạ, vậy anh cho em hỏi thêm là thêm điều kiện để cột B đó hiện thị ngày tháng thì phải sửa code sao vậy anh hj
Thì cột B đã hiển thị ngày tháng rồi mà?
Ý bạn là sao?
Nếu bạn muốn ghi ngày tháng thôi thì vào trong code thay Now bằng Date
 

File đính kèm

Lần chỉnh sửa cuối:
khi mình lưu rồi mở lại thì không còn tự động cập nhật ngày tháng nữa, xin hỏi làm cách nào để khi mở file thì ứng dụng tự chạy, mình xài exel 2007. Xin cảm ơn
 
quote_icon.png
Nguyên văn bởi smjler0109
cảm ơn anh rất nhiều ạ, vậy anh cho em hỏi thêm là thêm điều kiện để cột B đó hiện thị ngày tháng thì phải sửa code sao vậy anh hj
Thì cột B đã hiển thị ngày tháng rồi mà?
Ý bạn là sao?
Nếu bạn muốn ghi ngày tháng thôi thì vào trong code thay Now bằng Date
paperclip.png
Tập tin đính kèm

thay đổi nội dung bởi: leonguyenz, 12-01-13 lúc 04:33 PM

Code mặc định là gõ bên cột A thì bên cột B tự động hiện ngày tháng giờ. Có cách nào ngược lại ko bạn, nghĩa là khi mình gõ cột B thì nó tự động hiện ngày tháng giờ bên cột A. Đoạn code đây, ai rành code chỉ giúp mình, thanks

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
With Range("A1:A100")
If Not Intersect(Target, .Cells) Is Nothing Then
If Target <> "" Then Target.Offset(, 1) = Now
End If
End With
End Sub
 
Lần chỉnh sửa cuối:
Code mặc định là gõ bên cột A thì bên cột B tự động hiện ngày tháng giờ. Có cách nào ngược lại ko bạn, nghĩa là khi mình gõ cột B thì nó tự động hiện ngày tháng giờ bên cột A. Đoạn code đây, ai rành code chỉ giúp mình, thanks
Bạn sử dụng code này:
[GPECODE=vb]Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cll As Range
If Target.Column <> 2 Then Exit Sub
For Each Cll In Intersect(Target, [B:B])
If Cll = "" Then
Cll.Offset(, -1).ClearContents
Else
Cll.Offset(, -1) = Now
End If
Next
End Sub[/GPECODE]
 
Làm sao save lại cái đó bạn, mình nhập code vô thì sử dụng được và bấm save lại thì nó kêu chọn Macro gì đó. Xg rồi mình tắt file đi và mở lại thì nó k có lưu là sao các bạn.
 
Làm sao save lại cái đó bạn, mình nhập code vô thì sử dụng được và bấm save lại thì nó kêu chọn Macro gì đó. Xg rồi mình tắt file đi và mở lại thì nó k có lưu là sao các bạn.
Chắc bạn đang xài Excel 2007 (2010, 2013). Nếu đúng như vậy thì bạn nhấn F12 và lưu file với một trong các định dạng sau là được: Excel Macro-Enable Workbook (phần mở rộng .xlsm) hoặc Excel 97-2003 Workbook (phần mở rộng .xls)
 
Mà sao ngộ thiệt, khi mình save lại được thì mình chỉ xài dc trên máy tính có excel 2010, còn trên máy tính có excel 2007 thì nó ko hiện ngày giờ hệ thống ra.
 
Mà sao ngộ thiệt, khi mình save lại được thì mình chỉ xài dc trên máy tính có excel 2010, còn trên máy tính có excel 2007 thì nó ko hiện ngày giờ hệ thống ra.
Không chừng ở cái máy xài Excel 2007 đó chưa bật Enable Macro à nghen.
Nếu đã bật rồi mà code vẫn không chạy được thì cũng có thể do anh Excel 2007 "dở dở ương ương" này có vấn đề thật. Bạn thử lưu file về định dạng Excel 97-2003 (có phần mở rộng .xls) xem sao.
 
Macro Enable All rồi bạn. Cuối cùng thì chỉ có đuôi .xls của 98-2003 là xài dc macro này thôi, đuôi .xlsx, .xlsm thì ko xài được, hxhx. Mà khổ nổi mấy file liên kết của mình thì lại là đuôi .xlsx và mình thì xài office 2k7 nên mỗi khi save file đuôi .xls thì nó hiện lên thông báo kêu convert file mới nhức đầu. Với lại, các bạn cho mình hỏi chỉnh làm sao để link tự động cập nhật giữa các file excel với nhau, hiện tại mình mà muốn cập nhật là phải mở mấy file có link với nhau rồi save lại từng cái thì nó mới cập nhật.
 
Ghi lại thời gian sau 1 ô nhập liệu:
Alt+F11, coppy code:
[gpecode=vb]
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
With Range("A1:A100")
If Not Intersect(Target, .Cells) Is Nothing Then
If Target <> "" Then Target.Offset(, 1) = Now
End If
End With
End Sub[/gpecode]
Thử nhập giá trị bất kỳ vào vùng A1:A100
Mình cũng cần như vậy. Nhưng mình mùn ghi giá trị ngày tháng vào 1 ô được chỉ định thì có được không ?
Và code sẽ nhảy theo từng row. VD : mình kiểm tra Range (AZ6:BS6) có dữ liệu thì Ngày giờ sẽ đc cập nhật vào ô BT 6. Khi có dữ liệu tù AZ7: BS7 thì Ngày giờ tự động cập nhật vào ô BT7.
Theo nhu code của bạn thì ngày giờ tự động cập nhật vào tất cả các ô trống trong Range. Mình chỉ cần Ngày giờ cập nhật vào cột BT thôi.
 
Cho em xin hỏi, có thể sửa code để làm sao khi ta nhập một dữ liệu bất kỳ vào 1 ô thì excel tự động chép đè ngày tháng hiên hành vào chính ô đó được không ạ?
 
Em làm được rồi, cảm ơn các anh.
 
Dùng code này cho sheet1 thử xem:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B4:B9]) Is Nothing Then
    If Target.Rows.Count = 1 Then
        If Target = "" Then
            Target.Offset(, 1).Value = ""
        Else
            Target.Offset(, 1).Value = Now()
        End If
    End If
End If
End Sub
----------------
mình chưa hiểu lắm về cái này. giả sử mình có 1 sheet theo dõi tiến độ đăng kí. mình muốn điền tự động thời điểm tổ đó hoàn thành đăng kí thì làm như thế nào.
 

File đính kèm

----------------
mình chưa hiểu lắm về cái này. giả sử mình có 1 sheet theo dõi tiến độ đăng kí. mình muốn điền tự động thời điểm tổ đó hoàn thành đăng kí thì làm như thế nào.
Bạn sử dụng code sau cho sheet tien do:
[GPECODE=vb]Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cll As Range
If Target.Column <> 15 Then Exit Sub
For Each Cll In Target
If UCase(Cll) = "KHÁM XONG" Then
Cll.Offset(, -8) = Now
Else
Cll.Offset(, -8).ClearContents
End If
Next
End Sub[/GPECODE]
 
Bạn sử dụng code sau cho sheet tien do:
[GPECODE=vb]Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cll As Range
If Target.Column <> 15 Then Exit Sub
For Each Cll In Target
If UCase(Cll) = "KHÁM XONG" Then
Cll.Offset(, -8) = Now
Else
Cll.Offset(, -8).ClearContents
End If
Next
End Sub[/GPECODE]
mình không hiểu lắm về VBA, bạn có thể giải thích thêm không.
1/ Viết code đó ở đâu, rồi nhập vào ô nào, có thể làm ví dụ với files mình gởi kèm cho dễ hiểu tí.
2/ "<>15" có nghĩa gì vậy
cảm ơn bạn trước
 
Lần chỉnh sửa cuối:
có ai cho em hỏi cách lấy hàm ngày giờ hiện tại cho một biểu nhập vật tư theo ngày không, ví dụ như mình có một trang nhập vật tư có các cột STTlà A1 , Ngày Nhập Xuất là B1, Tên Vật Tư là C1 , Số Lượng là D1, ...thì em chỉ chỉ cần nhập vào C1 thì ở B1 sẽ lấy ngày hệ thống em làm như thế này ở ô B1 =IF(C1="","",NOW()) nếu hôm này là ngày 20 thì ô B1 hiện ngày 20 nhưng qua ngày hôm sau thì B1 lại hiện ngày 21 ai biết cách chỉ giúp em chỉ hiện ngày hiện tại theo từng ngày khi nhập tên vật tư ở ô C1
 
có ai cho em hỏi cách lấy hàm ngày giờ hiện tại cho một biểu nhập vật tư theo ngày không, ví dụ như mình có một trang nhập vật tư có các cột STTlà A1 , Ngày Nhập Xuất là B1, Tên Vật Tư là C1 , Số Lượng là D1, ...thì em chỉ chỉ cần nhập vào C1 thì ở B1 sẽ lấy ngày hệ thống em làm như thế này ở ô B1 =IF(C1="","",NOW()) nếu hôm này là ngày 20 thì ô B1 hiện ngày 20 nhưng qua ngày hôm sau thì B1 lại hiện ngày 21 ai biết cách chỉ giúp em chỉ hiện ngày hiện tại theo từng ngày khi nhập tên vật tư ở ô C1

bạn lồng ghép thêm hàm Day nữa là được ---> B1=IF(C1="","",DAY(NOW()))
 
bạn lồng ghép thêm hàm Day nữa là được ---> B1=IF(C1="","",DAY(NOW()))

DAY thì cứu vãn gì?
Hôm nay là 21-02-2014 thì NOW trả về 21-02-2014, lồng thêm DAY thì có 21. Ngày mai mở tập tin thì NOW trả về 22-02-2014, lồng thêm DAY thì có 22 ...
Dùng code thôi
 
DAY thì cứu vãn gì?
Hôm nay là 21-02-2014 thì NOW trả về 21-02-2014, lồng thêm DAY thì có 21. Ngày mai mở tập tin thì NOW trả về 22-02-2014, lồng thêm DAY thì có 22 ...
Dùng code thôi
nếu thêm DAY vào qua ngày 23 vẫn là ngày 23 bạn ah, có cách nào giúp mình được không, và hướng dẫn cho mình cái code, cám ơn cả nhà.
 
nếu thêm DAY vào qua ngày 23 vẫn là ngày 23 bạn ah, có cách nào giúp mình được không, và hướng dẫn cho mình cái code, cám ơn cả nhà.

Thế các bài viết từ đầu topic đến giờ vẫn không giúp được gì cho bạn à? Hay bạn chưa đọc? Hoặc đọc mà không hiểu?
 
nếu thêm DAY vào qua ngày 23 vẫn là ngày 23 bạn ah, có cách nào giúp mình được không, và hướng dẫn cho mình cái code, cám ơn cả nhà.
- Cái code đây:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C4:C1000]) Is Nothing Then
    If Target.Rows.Count = 1 Then
        If Target.Value <> Empty Then
            Target.Offset(, -2).Value = "=max(R3C1:R[-1]C1)+1"
            Target.Offset(, -1).Value = Date
        Else
            Target.Offset(, -2).Resize(, 2).ClearContents
        End If
    End If
End If
End Sub
- Hướng dẫn đây: Chỉ nhập từ C4:C1000, mỗi lần nhập hoặc xoá 1 ô code mới hoạt động.
- File đây:
 

File đính kèm

- Cái code đây:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C4:C1000]) Is Nothing Then
    If Target.Rows.Count = 1 Then
        If Target.Value <> Empty Then
            Target.Offset(, -2).Value = "=max(R3C1:R[-1]C1)+1"
            Target.Offset(, -1).Value = Date
        Else
            Target.Offset(, -2).Resize(, 2).ClearContents
        End If
    End If
End If
End Sub
- Hướng dẫn đây: Chỉ nhập từ C4:C1000, mỗi lần nhập hoặc xoá 1 ô code mới hoạt động.
- File đây:
mình tải file đính kèm của bạn vể rồi mình sẽ dựa vào đó mà làm nhưng xin hỏi copy đoạn code dán vào đau và lưu như thế nào vậy bạn
 
Thế các bài viết từ đầu topic đến giờ vẫn không giúp được gì cho bạn à? Hay bạn chưa đọc? Hoặc đọc mà không hiểu?

cảm ơn bạn đã trả lởi mình , nói chung mình đọc nhưng không hiểu lắm về excel lắm, mình muốn các bạn chỉ là copy đoạn code vào đầu và làm thê nào để lưu code và tinh chỉnh Excel như thế nào để đoạn code hoạt động, mình kg biết nhiều về Excel lắm
 
cảm ơn bạn đã trả lởi mình , nói chung mình đọc nhưng không hiểu lắm về excel lắm, mình muốn các bạn chỉ là copy đoạn code vào đầu và làm thê nào để lưu code và tinh chỉnh Excel như thế nào để đoạn code hoạt động, mình kg biết nhiều về Excel lắm

Bạn chưa tìm hiểu những cái "Tối thiểu" nhất sao bạn có thể làm việc với VBA và vận dụng nó phù hợp với công việc được.
Bạn mở File Excel lên bấm ALT + F11 sau đó Insert--> Modul--> Copy--> Paste code vào.
 
cảm ơn bạn đã trả lởi mình , nói chung mình đọc nhưng không hiểu lắm về excel lắm, mình muốn các bạn chỉ là copy đoạn code vào đầu và làm thê nào để lưu code và tinh chỉnh Excel như thế nào để đoạn code hoạt động, mình kg biết nhiều về Excel lắm

đâu phải copy code vào file của bạn là chạy được liền đâu --=0 ---> phải chỉnh lại cho phù hợp với cái form của sheet mà bạn muốn áp dụng.
=> nếu ko biết cách sửa thì tốt nhất là up file lên, để mọi người có thể giúp bạn.

'- - - -
To Chuot0106:
Sự kiện ws_change phải gắn trực tiếp vào sheet chứ, chèn module làm gì.
 
Lần chỉnh sửa cuối:
View attachment 116715
cái này là file mình cần làm ai bổ sung giúp mình cái ngày tháng với

mình dựa theo code của bác Bate và có chỉnh sửa 1 chút, bạn xem thử có đúng ko nhé.

(để thấy được code dưới bạn chọn Tab sheet1 - Right_click --> view_code)
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C4:C1000")) Is Nothing Then
     'xay ra loi~ xoa' khi quet chon nhieu cot, nhieu hang
        If Target.Rows.Count = 1 And Target.Columns.Count = 1 Then
            If Target.Value <> Empty Then
                Target.Offset(, -1) = Date
            End If
        End If
    End If
End Sub

'- - -
to chuot0106: sao ko thấy bác ra tay làm các bài toán như thế này nhỉ --=0

Link: https://www.mediafire.com/?p3u4s2654q8751d
 
Lần chỉnh sửa cuối:
mình dựa theo code của bác Bate và có chỉnh sửa 1 chút, bạn xem thử có đúng ko nhé.

(để thấy được code dưới bạn chọn Tab sheet1 - Right_click --> view_code)
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C4:C1000")) Is Nothing Then
     'xay ra loi~ xoa' khi quet chon nhieu cot, nhieu hang
        If Target.Rows.Count = 1 And Target.Columns.Count = 1 Then
            If Target.Value <> Empty Then
                Target.Offset(, -1) = Date
            End If
        End If
    End If
End Sub

'- - -
to chuot0106: sao ko thấy bác ra tay làm các bài toán như thế này nhỉ --=0
cảm ơn bạn đã giúp mình, cảm ơn cả nhà
 
mình có mẩu thẻ kho, để theo dõi, mình muốn khi nhập vào bất kỳ ở cột C12,hoặc D12,hoặc E12 thì ở cột B12 sẽ hiện thị ngày tháng của hệ thống, phucbugis giúp mình với
View attachment Mẫu Thẻ Kho 1.xls
 
mình có mẩu thẻ kho, để theo dõi, mình muốn khi nhập vào bất kỳ ở cột C12,hoặc D12,hoặc E12 thì ở cột B12 sẽ hiện thị ngày tháng của hệ thống, phucbugis giúp mình với
View attachment 116772

Tại ô B1, bạn gõ công thức:
=IF(OR(C12<>"",D12<>"",E12<>""),NOW(),"")
Sau đó copy xuông các ô còn lại.
Bạn lưu ý chọn định dạng ngày tháng dạng DD/MM/YYYY
 

File đính kèm

Lần chỉnh sửa cuối:
mình có mẩu thẻ kho, để theo dõi, mình muốn khi nhập vào bất kỳ ở cột C12,hoặc D12,hoặc E12 thì ở cột B12 sẽ hiện thị ngày tháng của hệ thống, phucbugis giúp mình với
View attachment 116772

bạn mở file xem, mình cài sẵn 3 cách, bạn muốn chọn cách nào cũng được --=0
'- - - -
To Chuot0106
bạn kia đang hỏi về Macro của #50 trước đó mà, chuot ko nhớ ah

Link: https://www.mediafire.com/?kloiaz5z3om720b
 
Lần chỉnh sửa cuối:
Bạn Chuot0106 ởi mình dựa vào cái Macro của phucbugic
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E12:E1000")) Is Nothing Then
'xay ra loi~ xoa' khi quet chon nhieu cot, nhieu hang
If Target.Rows.Count = 1 And Target.Columns.Count = 1 Then
If Target.Value <> Empty Then
Target.Offset(, -3) = Date
End If
End If
End If
End Sub
thì trong bản của mình khi nhập vào ô E12 thì nó hiện ở ngày tháng ở B12 giờ mình muốc từ macro này nếu nhập ở C12 hoặc D12 thì B12 sẽ hiện ngày tháng , chỉnh sao bạn
 
Cảm ơn bạn phucbugic nhiều mình đã làm được và chọn cách 1 đơn giản hơn,
 
Em đang muốn làm một bảng tính dùng để kiểm hàng nhập và xuất vào khoảng thời gian cụ thể nhưng không biết hàm nhờ các bác giúp em với ạ! ví dụ: lượt hàng về nhận lúc 8h30 sau đó giao hàng xong lúc 9h, khi nhập vào ô giao hàng thì giá trị trong ô thời gian đó đều phải được giữ nguyên là 8h30 và 9h ko được trả về 9h. thanks các bác
 
Làm đủ mọi cách nhưng vẫn ko được các bác ợ. khi nhập xong tất cả đều trở về ngày hiện tại của hệ thống chứ không lưu được thời gian của từng thời điểm nhập dữ liệu. _)()(-
 
Làm đủ mọi cách nhưng vẫn ko được các bác ợ. khi nhập xong tất cả đều trở về ngày hiện tại của hệ thống chứ không lưu được thời gian của từng thời điểm nhập dữ liệu. _)()(-
Bạn xem File này đúng ý không. Trong File hãy nhập liệu vào vùng [A6:E7] nha
 

File đính kèm

- Cái code đây:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C4:C1000]) Is Nothing Then
    If Target.Rows.Count = 1 Then
        If Target.Value <> Empty Then
            Target.Offset(, -2).Value = "=max(R3C1:R[-1]C1)+1"
            Target.Offset(, -1).Value = Date
        Else
            Target.Offset(, -2).Resize(, 2).ClearContents
        End If
    End If
End If
End Sub
- Hướng dẫn đây: Chỉ nhập từ C4:C1000, mỗi lần nhập hoặc xoá 1 ô code mới hoạt động.
- File đây:

anh cho em hỏi nếu thêm giờ và phút nữa thì phải làm thế nào ạ ? em cảm ơn ạ
 
Ghi lại thời gian sau 1 ô nhập liệu:
Alt+F11, coppy code:
[gpecode=vb]
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
With Range("A1:A100")
If Not Intersect(Target, .Cells) Is Nothing Then
If Target <> "" Then Target.Offset(, 1) = Now
End If
End With
End Sub[/gpecode]
Thử nhập giá trị bất kỳ vào vùng A1:A100

Bạn ơi cho mình hỏi, có cách nào thay vì sửa dữ liệu hay thêm mới thì ngày tháng tự cập nhật thay vào đó là tạo một button khi sửa dữ liệu xong bấm nút thì mới cập nhật ngày tháng, vì nếu khi sửa hay nhập mà chạy code thì sẽ không undo lại được
 
Private Sub Worksheet_Change(ByVal Target As Range)
Set rng = Intersect(Target, Range("G:G"))
If Not rng Is Nothing Then
Application.EnableEvents = True
For Each cell_ In rng
If cell_.Value <> "" Then
cell_.Offset(, -1).Value = Now
Else
cell_.Offset(, -1).Value = ""
End If
Next cell_
Application.EnableEvents = True
End If
End Sub

em có đoạn code tự động nhập thời gian vào F khi có dữ liệu nhập vào từ ô G
Nhưng khi e xóa ô F và G theo điều kiện thì ngày tháng tính sau ô bị xóa nó tiến lên nằm ngay ô bị xóa và thời gian được cập nhật lại làm sai dữ liệu của e. Mong mọi người giúp e sửa. em cảm ơn mọi người trước
( cụ thể khi chọn 1 sản phẩm trong listbox và bấm chọn "xuất kho" thì thời tại sheet2 sẽ thị thay đổi )
 

File đính kèm

hiện tại mình cũng đang gặp phải tình trạng này hjz mình có 4 ô A B C D , mình đặt công thức tại ô D là nếu cả 3 ô A-B-C đều đúng thì ô D sẽ bằng ngày của hệ thống (ngày 12/1/2013). Nhưng mình muốn nó lấy được ngày hệ thống xong thì ngừng lại chứ sang ngày tiếp theo thì nó lại chuyển thành ngày (13/1/2013). các bác, các anh, các chị nào có thể giải quyết được thì chỉ giùm em được không ạ?
Thân!
Mình cần công thức theo ngày như của bạn bạn cho mình xin đc ko
 
- Cái code đây:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C4:C1000]) Is Nothing Then
    If Target.Rows.Count = 1 Then
        If Target.Value <> Empty Then
            Target.Offset(, -2).Value = "=max(R3C1:R[-1]C1)+1"
            Target.Offset(, -1).Value = Date
        Else
            Target.Offset(, -2).Resize(, 2).ClearContents
        End If
    End If
End If
End Sub
- Hướng dẫn đây: Chỉ nhập từ C4:C1000, mỗi lần nhập hoặc xoá 1 ô code mới hoạt động.
- File đây:


Anh Ba Tê cho em hỏi: em áp dụng đoạn code của anh thấy ok lắm, nhập dữ liệu thì ô thời gian sẽ tự nhảy, khi xóa dữ liệu đi thì ô thời gian cũng bị cleared. Nhưng nếu như tại vùng dữ liệu, em không gõ dữ liệu vào mà xài một hàm excel, ví dụ vlookup, if,..., để lấy dữ liệu từ vùng khác, ví dụ vùng X, thì lúc dữ liệu tại vùng X đổi làm giá trị ở vùng dữ liệu đổi thì macro không tự cập nhật theo. Nếu muốn macro cập nhật, em phải vào từng cell trong vùng dữ liệu, edit, enter thì giá trị ngày tháng mới cập nhật.
Anh có cách nào để khắc phục vấn đề này không?
 
Cho em hỏi. nếu trong 1 sheet em có 2 cột tự động nhập ngày tháng năm và giờ tương ứng với 2 cột nhập liệu thì em phải làm sao?. Em cám ơn các bác
 
Cho em hỏi. nếu trong 1 sheet em có 2 cột tự động nhập ngày tháng năm và giờ tương ứng với 2 cột nhập liệu thì em phải làm sao?. Em cám ơn các bác
Bạn cần nêu vấn đề cụ thể hơn với các cột A,B,C..., nêu rõ là có đầu vào thế này, cần đầu ra thế này..
 
Bạn cần nêu vấn đề cụ thể hơn với các cột A,B,C..., nêu rõ là có đầu vào thế này, cần đầu ra thế này..
Nhu file mình gửi nếu mình nhập vào cột C thì cột D sẽ hiện ra ngày thang nam và giờ, Nếu mình nhập liệu vào cột G thì cột e sẽ hiện ra ngày thang nam và giờ
 

File đính kèm

Nhu file mình gửi nếu mình nhập vào cột C thì cột D sẽ hiện ra ngày thang nam và giờ, Nếu mình nhập liệu vào cột G thì cột e sẽ hiện ra ngày thang nam và giờ
Thử:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C3:C1000")) Is Nothing Then
        If Target.Count = 1 Then
            If Target <> Empty Then
                Target.Offset(, 1) = Now
            Else
                Target.Offset(, 1).ClearContents
            End If
        End If
    End If
    If Not Intersect(Target, Range("G3:G1000")) Is Nothing Then
        If Target.Count = 1 Then
            If Target <> Empty Then
                Target.Offset(, -2) = Now
            Else
                Target.Offset(, -2).ClearContents
            End If
        End If
    End If
End Sub
 
Thử:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C3:C1000")) Is Nothing Then
        If Target.Count = 1 Then
            If Target <> Empty Then
                Target.Offset(, 1) = Now
            Else
                Target.Offset(, 1).ClearContents
            End If
        End If
    End If
    If Not Intersect(Target, Range("G3:G1000")) Is Nothing Then
        If Target.Count = 1 Then
            If Target <> Empty Then
                Target.Offset(, -2) = Now
            Else
                Target.Offset(, -2).ClearContents
            End If
        End If
    End If
End Sub

Em cám ơn bác, em đã làm được.
 
Các bác ơi giúp e với ạ, e đang dùng code này để khi viết vào cột C thì nó tự nhập thời gian sang cột A, E muốn thêm khi mình nhập vào cột M nó sẽ hiện thời gian ở cột L các bác giúp e với ạ, e cảm ơn hihi


Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, cell_ As Range
Set rng = Intersect(Target, Range("C:C"))
If Not rng Is Nothing Then
Application.EnableEvents = False
For Each cell_ In rng
If cell_.Value <> "" Then
cell_.Offset(, -1).Value = Now
Else
End If
Next cell_
Application.EnableEvents = True
End If
End Sub
 
Các bác ơi giúp e với ạ, e đang dùng code này để khi viết vào cột C thì nó tự nhập thời gian sang cột A, E muốn thêm khi mình nhập vào cột M nó sẽ hiện thời gian ở cột L các bác giúp e với ạ, e cảm ơn hihi


Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, cell_ As Range
Set rng = Intersect(Target, Range("C:C"))
If Not rng Is Nothing Then
Application.EnableEvents = False
For Each cell_ In rng
If cell_.Value <> "" Then
cell_.Offset(, -1).Value = Now
Else
End If
Next cell_
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C:C")) Is Nothing Then
If Target.Count = 1 Then
If Target <> Empty Then
Target.Offset(, -1) = Now
Else
Application.EnableEvents = True
End If
End If
End If
If Not Intersect(Target, Range("L:L")) Is Nothing Then
If Target.Count = 1 Then
If Target <> Empty Then
Target.Offset(, -1) = Now
Else
Application.EnableEvents = True
End If
End If
End If
End Sub
 
Dùng code này cho sheet1 thử xem:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B4:B9]) Is Nothing Then
    If Target.Rows.Count = 1 Then
        If Target = "" Then
            Target.Offset(, 1).Value = ""
        Else
            Target.Offset(, 1).Value = Now()
        End If
    End If
End If
End Sub
ANH ƠI CÓ CÁCH NÀO ĐỂ KHÔNG AI CÓ THỂ THAY ĐỔI CỘT THỜI GIAN TỰ ĐOỌNG ĐÓ BẰNG TAY ĐƯỢC KHÔNG
 
- Cái code đây:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C4:C1000]) Is Nothing Then
    If Target.Rows.Count = 1 Then
        If Target.Value <> Empty Then
            Target.Offset(, -2).Value = "=max(R3C1:R[-1]C1)+1"
            Target.Offset(, -1).Value = Date
        Else
            Target.Offset(, -2).Resize(, 2).ClearContents
        End If
    End If
End If
End Sub
- Hướng dẫn đây: Chỉ nhập từ C4:C1000, mỗi lần nhập hoặc xoá 1 ô code mới hoạt động.
- File đây:
a Pate cho e hỏi thêm. Ở trường hợp của e muốn đánh stt ở cột A trong 1 tháng, khi cột B qua tháng mới thì stt bên cột A bắt đầu reset lại là 1 và cứ như thế theo từng tháng trong năm được không a.
Mong a giúp e, e cảm ơn a nhiều ạ.
 

File đính kèm

Cần anh chị em giúp!

Đọc tất cả các bài của mấy anh em. mình cảm ơn đã chia sẽ!
hiện tại nhu câu mình như sau:
Mình cần modun riêng gần giống code này

Trích lại đoạn

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, [C4:C1000]) Is Nothing Then

If Target.Rows.Count = 1 Then

If Target.Value <> Empty Then

Target.Offset(, -2).Value = "=max(R3C1:R[-1]C1)+1"

Target.Offset(, -1).Value = Date

Else

Target.Offset(, -2).Resize(, 2).ClearContents

End If

End If

End If


End Sub

++++++++++

Mình không dùng cột số thứ tự

Mình chỉ cần cột giá trị ngày (mục đích cần giá trị ngày thực tại C1 là : if(B1<>””;valuedate;””) )

xin được chỉ giúp cảm ơn
 

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

Back
Top Bottom