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

khuongvietphong

Be all you can be !
Tham gia ngày
6 Tháng bảy 2014
Bài viết
2,076
Được thích
1,432
Điểm
560
Tuổi
25
Nơi ở
Hà Nội
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

ddung9a

Thành viên mới
Tham gia ngày
9 Tháng sáu 2014
Bài viết
17
Được thích
0
Điểm
363
Tuổi
34
- 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 ạ
 

dungnvps

Thành viên chính thức
Tham gia ngày
8 Tháng bảy 2016
Bài viết
77
Được thích
5
Điểm
0
Tuổi
26
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
 

hoc341992

Thành viên chính thức
Tham gia ngày
27 Tháng bảy 2017
Bài viết
77
Được thích
1
Điểm
170
Tuổi
28
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

hotmylove

Thành viên mới
Tham gia ngày
20 Tháng ba 2008
Bài viết
2
Được thích
0
Điểm
0
Tuổi
35
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
 

dommvince

Thành viên mới
Tham gia ngày
3 Tháng sáu 2018
Bài viết
1
Được thích
1
Điểm
0
Tuổi
28
- 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?
 

tth03

Thành viên mới
Tham gia ngày
11 Tháng mười một 2008
Bài viết
8
Được thích
1
Điểm
365
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
 

phulien1902

GPE - My love
Tham gia ngày
6 Tháng bảy 2013
Bài viết
3,454
Được thích
4,315
Điểm
560
Nơi ở
Hải Phò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
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..
 

tth03

Thành viên mới
Tham gia ngày
11 Tháng mười một 2008
Bài viết
8
Được thích
1
Điểm
365
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

phulien1902

GPE - My love
Tham gia ngày
6 Tháng bảy 2013
Bài viết
3,454
Được thích
4,315
Điểm
560
Nơi ở
Hải Phòng
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
 

tth03

Thành viên mới
Tham gia ngày
11 Tháng mười một 2008
Bài viết
8
Được thích
1
Điểm
365
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.
 

0962489999

Thành viên mới
Tham gia ngày
29 Tháng bảy 2018
Bài viết
2
Được thích
0
Điểm
13
Tuổi
29
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
 

0962489999

Thành viên mới
Tham gia ngày
29 Tháng bảy 2018
Bài viết
2
Được thích
0
Điểm
13
Tuổi
29
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
 

tungshin90

Thành viên mới
Tham gia ngày
17 Tháng năm 2011
Bài viết
23
Được thích
1
Điểm
365
Tuổi
30
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
 

meochettiec9

Thành viên mới
Tham gia ngày
12 Tháng sáu 2018
Bài viết
8
Được thích
0
Điểm
163
- 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

nguahoangsad

Thành viên mới
Tham gia ngày
13 Tháng bảy 2010
Bài viết
20
Được thích
1
Điểm
365
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
 
Top Bottom