Xin giúp VBA tự nhập thời gian khi giá trị 1 ô thay đổi (nhưng ô đó chứa công thức) (1 người xem)

Liên hệ QC

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

holynho

Thành viên mới
Tham gia
31/5/09
Bài viết
13
Được thích
0
Các anh giúp em với

Em có đoạn mã VBA như sau:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 On Error Resume Next
 Dim vung As Range
 Set vung = Application.Union(Range("H:H"), Range("L:L"), Range("P:P"), Range("P:P"), Range("T:T"), Range("X:X"), Range("AB:AB"), Range("AF:AF"), Range("AJ:AJ"))
 If Not Intersect(Target, vung) Is Nothing Then
 With Target
 If .Value = Target.Offset(0, -1) Then
 .Offset(, 2) = Time
 End If
 End With
 End If
 End Sub
Nếu em nhập dữ liệu vào ô cột H, giá trị bằng ô cột G thì Cột I tự chèn thời gian vào.
Nhưng nếu cột H đặt công thức = E F thì khi Macro không chạy để chèn thời gian.
Các anh giúp em làm sao cột H nhảy công thức mà giá trị bằng cột G và tự chèn thời gian dc ko ạ?
Em xin cám ơn
[TABLE="width: 393"]
[TR]
[TD]E[/TD]
[TD]F[/TD]
[TD]G[/TD]
[TD]H[/TD]
[TD]I[/TD]
[TD]I[/TD]
[/TR]
[TR]
[TD]Lần 1[/TD]
[TD]Lần 2[/TD]
[TD]Kế hoạch[/TD]
[TD]Tổng[/TD]
[TD][/TD]
[TD]Giờ[/TD]
[/TR]
[TR]
[TD]100[/TD]
[TD][/TD]
[TD]100[/TD]
[TD]100[/TD]
[TD][/TD]
[TD]2:11:54 PM[/TD]
[/TR]
[/TABLE]

* Em gửi lại file đính kèm và yêu cầu trong đó ạ

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau
 

File đính kèm

Lần chỉnh sửa cuối:
Thật là tiếc khi không thể mở file của bạn lên được. Không biết có ai mở được hông.

Em xin lỗi vì em đang ở cty, các file office đều bị mã hóa, em giải thích ở trên và có đoạn code rồi đó ạ, các anh paste vào file mới giúp em nhé ^^

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau
 
Lần chỉnh sửa cuối:
Upvote 0

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Em xin lỗi vì em đang ở cty, các file office đều bị mã hóa, em giải thích ở trên và có đoạn code rồi đó ạ, các anh paste vào file mới giúp em nhé ^^
File đã khoá thì kệ nó đó. Bạn có thể giả lập vài dòng ở bài #1 vào file rồi gửi kèm lên đây (tiện thể chèn code của bạn vào luôn).
Nhưng nếu cột H đặt công thức = E+F thì khi Macro không chạy để chèn thời gian.
Câu này tôi đọc không hiểu được... Nếu là thì khi đó Macro không chạy thì hiểu.
 
Upvote 0
Làm đại, bạn xem file xem đúng ý bạn không ?
Hình như chưa đúng lắm ạ.
nhập dữ liệu vào ô cột H, giá trị bằng ô cột G thì Cột I tự chèn thời gian vào.
Nên dòng:
If Target >= Target.Offset(, -1) Then
sửa thành:
If Target = Target.Offset(, -1) Then
 
Upvote 0
Làm đại, bạn xem file xem đúng ý bạn không ?
xin lỗi giangleloi nhé ! Lộn chủ topic

Chưa dc bạn ạ.
[TABLE="width: 403"]
[TR]
[TD]E[/TD]
[TD]F[/TD]
[TD]G[/TD]
[TD]H[/TD]
[TD]I[/TD]
[TD]I[/TD]
[/TR]
[TR]
[TD]Lần 1[/TD]
[TD]Lần 2[/TD]
[TD]Kế hoạch[/TD]
[TD]Tổng[/TD]
[TD] [/TD]
[TD]Giờ[/TD]
[/TR]
[TR]
[TD]100[/TD]
[TD]0[/TD]
[TD]100[/TD]
[TD]100[/TD]
[TD] [/TD]
[TD]2:11:54 PM[/TD]
[/TR]
[/TABLE]
cột G, kế hoach 100, điền tay vào cột H 100, thì cột I macro ra giờ.
Nhưng nếu mình đặt công thức H= E+F. Dù H =100 thì Macro cũng không ra giờ
 
Upvote 0
File đã khoá thì kệ nó đó. Bạn có thể giả lập vài dòng ở bài #1 vào file rồi gửi kèm lên đây (tiện thể chèn code của bạn vào luôn).

Câu này tôi đọc không hiểu được... Nếu là thì khi đó Macro không chạy thì hiểu.

Mọi người hiểu ý em như này ạ: nếu em nhập bằng tay vào cột H thì cột I macro ra dữ liệu. Nhưng nếu cột H là công thức, khi thay đổi giá trị do E, F thay đổi thì macro không ra dữ liệu.
( em làm ở Samsung, tất cả file đều bị mã hóa, nên ko gửi dc file nào lên ạ :()
 
Upvote 0
Mọi người hiểu ý em như này ạ: nếu em nhập bằng tay vào cột H thì cột I macro ra dữ liệu. Nhưng nếu cột H là công thức, khi thay đổi giá trị do E, F thay đổi thì macro không ra dữ liệu.
(em làm ở Samsung, tất cả file đều bị mã hóa, nên ko gửi dc file nào lên ạ :()

Xin phép mượn file bài #4, thêm điều kiện có chứa công thức hay không:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 Then
    If Target.Rows.Count = 1 Then
        If Target.HasFormula = False And Target = Target.Offset(, -1) Then
           Target.Offset(, 1) = Time
        End If
        'Else: Target.Offset(, 1) = ""
    End If
End If
End Sub
 

File đính kèm

Upvote 0
Xin phép mượn file bài #4, thêm điều kiện có chứa công thức hay không:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 Then
    If Target.Rows.Count = 1 Then
        If Target.HasFormula = False And Target = Target.Offset(, -1) Then
           Target.Offset(, 1) = Time
        End If
        'Else: Target.Offset(, 1) = ""
    End If
End If
End Sub
Đã định không tham gia nữa, nhưng lại buồn tay : Sao bạn không thêm If target.formula = True mà phải If Target.HasFormula = False nhỉ?
 
Lần chỉnh sửa cuối:
Upvote 0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
Lần chỉnh sửa cuối:
Upvote 0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
Lần chỉnh sửa cuối:
Upvote 0
Trời đất ơi ! xin lỗi ...các bạn . Nhờ xếp nào đi qua xóa giúp mấy bài thừa do không thấy bài , gửi đến mấy lần ! Không biết có ai bị như mình không ?
 
Lần chỉnh sửa cuối:
Upvote 0
Xin phép mượn file bài #4, thêm điều kiện có chứa công thức hay không:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 Then
    If Target.Rows.Count = 1 Then
        If Target.HasFormula = False And Target = Target.Offset(, -1) Then
           Target.Offset(, 1) = Time
        End If
        'Else: Target.Offset(, 1) = ""
    End If
End If
End Sub

Chưa đúng yêu cầu ạ, em gửi lại file đính kèm vào yêu cầu trong đó nhé

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Chưa đúng yêu cầu ạ, em gửi lại file đính kèm vào yêu cầu trong đó nhé

Nói thật là theo dõi bài này từ đầu đến giờ mình vẫn chẳng hiểu bạn muốn thế nào. File không thật thì có la tới mùa quýt năm sau cũng không có đáp án.
 
Upvote 0
Chưa đúng yêu cầu ạ, em gửi lại file đính kèm vào yêu cầu trong đó nhé
"Nếu nhập 100 bằng tay vào H3, thì J3 có hiện ra giờ
Nếu H4=E4+F4=100, J4 không hiện ra giờ -> Muốn hiện ra giờ ở J4 dù H4 có công thức."
Tôi thật sự không thể nào hiểu bạn yêu cầu gì.
Bạn có cái yêu cầu nào nêu hết ra, chi tiết và chính xác thì mọi người mới giúp bạn được.
Topic dài vậy rồi mà vẫn chưa giải quyết xong...
 
Upvote 0
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Sheet1.Columns("H")) Is Nothing Then
    Dim cll As Range
    For Each cll In Intersect(Target, Sheet1.Columns("H"))
        If cll.Value = cll.Offset(, -1).Value Then cll.Offset(, 2).Value = Time Else cll.Offset(, 2).Value = "sai roi cha noi"
    Next
End If
End Sub
 
Upvote 0
"Nếu nhập 100 bằng tay vào H3, thì J3 có hiện ra giờ
Nếu H4=E4 F4=100, J4 không hiện ra giờ -> Muốn hiện ra giờ ở J4 dù H4 có công thức."
Tôi thật sự không thể nào hiểu bạn yêu cầu gì.
Bạn có cái yêu cầu nào nêu hết ra, chi tiết và chính xác thì mọi người mới giúp bạn được.
Topic dài vậy rồi mà vẫn chưa giải quyết xong...
Sorry mọi người, hôm nay bận quá nên ko ngồi máy dc. Em up file lên rồi ạ
Yêu cầu thì em nói rõ rồi, em nghĩ mọi người đọc chưa kĩ thôi ạ.

Nếu nhập bằng vào ô cột H là 100 thì cột J nhảy ra thời gian
Nếu để công thức cột H = E F thì không nhảy ra thời gian. Em muốn giá trị cột H =100 do nhảy công thức, thì cột J ra thời gian vì em ko dc nhập tay vào cột H

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau
 

File đính kèm

  • Untitled.jpg
    Untitled.jpg
    13.9 KB · Đọc: 26
Lần chỉnh sửa cuối:
Upvote 0
Sorry mọi người, hôm nay bận quá nên ko ngồi máy dc. Em up file lên rồi ạ
Yêu cầu thì em nói rõ rồi, em nghĩ mọi người đọc chưa kĩ thôi ạ.

+ Nếu nhập bằng vào ô cột H là 100 thì cột J nhảy ra thời gian
+ Nếu để công thức cột H = E+F thì không nhảy ra thời gian. Em muốn giá trị cột H =100 do nhảy công thức, thì cột J ra thời gian vì em ko dc nhập tay vào cột H
căn cứ vào cái gì mà điền thời gian vô vậy bạn
chỉ cần dữ liệu cột H thay đổi là điền thời gian lúc thay đổi vào cột J tương ứng hay sao
 
Upvote 0
căn cứ vào cái gì mà điền thời gian vô vậy bạn
chỉ cần dữ liệu cột H thay đổi là điền thời gian lúc thay đổi vào cột J tương ứng hay sao

Bạn đọc kĩ nội dung bài của mình với ạ, mình có code VBA sẵn rồi mà.!$@!!

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau
 
Lần chỉnh sửa cuối:
Upvote 0
Các anh giúp em với

Em có đoạn mã VBA như sau:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 On Error Resume Next
 Dim vung As Range
 Set vung = Application.Union(Range("H:H"), Range("L:L"), Range("P:P"), Range("P:P"), Range("T:T"), Range("X:X"), Range("AB:AB"), Range("AF:AF"), Range("AJ:AJ"))
 If Not Intersect(Target, vung) Is Nothing Then
 With Target
 If .Value = Target.Offset(0, -1) Then
 .Offset(, 2) = Time
 End If
 End With
 End If
 End Sub
Nếu em nhập dữ liệu vào ô cột H, giá trị bằng ô cột G thì Cột I tự chèn thời gian vào.
Nhưng nếu cột H đặt công thức = E+F thì khi Macro không chạy để chèn thời gian.
Các anh giúp em làm sao cột H nhảy công thức mà giá trị bằng cột G và tự chèn thời gian dc ko ạ?
Em xin cám ơn
[TABLE="width: 393"]
[TR]
[TD]E[/TD]
[TD]F[/TD]
[TD]G[/TD]
[TD]H[/TD]
[TD]I[/TD]
[TD]I[/TD]
[/TR]
[TR]
[TD]Lần 1[/TD]
[TD]Lần 2[/TD]
[TD]Kế hoạch[/TD]
[TD]Tổng[/TD]
[TD][/TD]
[TD]Giờ[/TD]
[/TR]
[TR]
[TD]100[/TD]
[TD][/TD]
[TD]100[/TD]
[TD]100[/TD]
[TD][/TD]
[TD]2:11:54 PM[/TD]
[/TR]
[/TABLE]

* Em gửi lại file đính kèm và yêu cầu trong đó ạ

Tôi ứng dụng topic Thao tác trong hàm tự tạo. Áp dụng để tạo ra các hàm có chức năng đặt biệt
Bạn xem thử xem xài được không.
 

File đính kèm

Upvote 0
Dạ vâng ạ, làm đc đúng như ý của em.
Nhưng quả thật là hơi khó so với tầm hiểu biết của em
Bác có cách nào khác cho file gốc của em ko ạ, cả vùng Tartget để ra Time của em là nhiều khu vực khác nhau
Set vung = Application.Union(Range("H:H"), Range("L:L"), Range("P:P"), Range("P:P"), Range("T:T"), Range("X:X"), Range("AB:AB"), Range("AF:AF"), Range("AJ:AJ"))

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau
 
Lần chỉnh sửa cuối:
Upvote 0
Dạ vâng ạ, làm đc đúng như ý của em.
Nhưng quả thật là hơi khó so với tầm hiểu biết của em
Bác có cách nào khác cho file gốc của em ko ạ, cả vùng Tartget để ra Time của em là nhiều khu vực khác nhau
Cách khác thì bạn chờ người khác.
Còn dùng cách ở bài #23 thì cứ dùng công thức đó cho bất cứ ô nào bạn muốn.
Cú pháp:
Mã:
=KhiNao(Công thức,Điều kiện,Địa chỉ ô ghi thời gian)
 
Upvote 0

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

Back
Top Bottom