Tự động lấy ngày giờ hệ thống trong excel

Liên hệ QC
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

  • theo doi tien do.xlsx
    16.2 KB · Đọc: 85
----------------
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à.
 
Web KT
Back
Top Bottom