Code xoá dòng tự động (1 người xem)

Liên hệ QC

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

dungnvps

Thành viên chính thức
Tham gia
8/7/16
Bài viết
77
Được thích
6
Chào mọi người, mình có 1 file thông tin như thế này trong các sheet có cột ngày cập nhật, cột này sẽ tự động thêm ngày tháng khi sửa dữ liệu, nhưng mình gặp vấn đề là với những dòng ko có dữ liệu cột này vẫn chèn dữ liệu vào vậy có cách nào để nếu dòng đó không có dữ liệu thì ngày sẽ không cập nhật hoặc là khi thêm dữ liệu vào cột đó rồi xóa đi thì ngày ở cột "ngày cập nhật" bị mất đi luôn ko?
Chân thành cảm ơn đã xem qua!!
Capture.jpg
 

File đính kèm

Chào mọi người, mình có 1 file thông tin như thế này trong các sheet có cột ngày cập nhật, cột này sẽ tự động thêm ngày tháng khi sửa dữ liệu, nhưng mình gặp vấn đề là với những dòng ko có dữ liệu cột này vẫn chèn dữ liệu vào vậy có cách nào để nếu dòng đó không có dữ liệu thì ngày sẽ không cập nhật hoặc là khi thêm dữ liệu vào cột đó rồi xóa đi thì ngày ở cột "ngày cập nhật" bị mất đi luôn ko?
Chân thành cảm ơn đã xem qua!!
View attachment 168235

Nếu bạn đã biết 1 chút code thì cái này làm sao mà làm khó đc bạn nhỉ?
Bạn cho cần thêm 2 biến j và kt, 1 biến j để chạy xét các giá trị ở các cột (A - J), 1 biến kt kiểm tra xem tất các cột có trống hay không
Bạn chạy for next xét từng cells(i,j) có trông không rùi gán vào biên kt
Bạn thử làm coi.
 
Upvote 0
Chào mọi người, mình có 1 file thông tin như thế này trong các sheet có cột ngày cập nhật, cột này sẽ tự động thêm ngày tháng khi sửa dữ liệu, nhưng mình gặp vấn đề là với những dòng ko có dữ liệu cột này vẫn chèn dữ liệu vào vậy có cách nào để nếu dòng đó không có dữ liệu thì ngày sẽ không cập nhật hoặc là khi thêm dữ liệu vào cột đó rồi xóa đi thì ngày ở cột "ngày cập nhật" bị mất đi luôn ko?
Chân thành cảm ơn đã xem qua!!
View attachment 168235
Bạn thay Code cũ của bạn bởi Code dưới đây:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cll As Range
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        Application.EnableEvents = False
        For Each Cll In Intersect(Target, Range("A:I"))
            If Cll <> "" Then
                Range("J" & Cll.Row).Value = Date & " - " & Time
            Else
                Range("J" & Cll.Row).Clear
            End If
        Next Cll
        Application.EnableEvents = True
    End If
End Sub
 
Upvote 0
Nếu bạn đã biết 1 chút code thì cái này làm sao mà làm khó đc bạn nhỉ?
Bạn cho cần thêm 2 biến j và kt, 1 biến j để chạy xét các giá trị ở các cột (A - J), 1 biến kt kiểm tra xem tất các cột có trống hay không
Bạn chạy for next xét từng cells(i,j) có trông không rùi gán vào biên kt
Bạn thử làm coi.

Mình cũng ko hiểu code cho lắm, code mình toàn kiếm trên diễn đàn về cái nào mình biết chút chút thì sửa đc còn khó quá thì phải nhờ mọi người trên diễn đàn giúp

mình thử viết như này nhưng ko đúng, bạn xem qua giúp đc ko?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
Dim x As Range
Set x = Range("A3:J65000")
i = Target.Row
For Each a In x
If a <> "" Then
If Not Intersect(Target, Range("A3:I65000")) Is Nothing Then
Range("J" & i) = Date & " - " & Time
End If
ElseIf a = "" Then
If Not Intersect(Target, Range("A3:I65000")) Then
Range("J" & i) = ""
End If
End If
Next
End Sub
 

File đính kèm

Upvote 0
Bạn thay Code cũ của bạn bởi Code dưới đây:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cll As Range
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        Application.EnableEvents = False
        For Each Cll In Intersect(Target, Range("A:I"))
            If Cll <> "" Then
                Range("J" & Cll.Row).Value = Date & " - " & Time
            Else
                Range("J" & Cll.Row).Clear
            End If
        Next Cll
        Application.EnableEvents = True
    End If
End Sub

Cám ơn bạn nhưng cho mình hỏi là có cách nào khi nào xóa hết các dòng thì mới xóa luôn cell "ngày cập nhật" còn ngược lại nếu chỉ cần có 1 cell nào có dữ liệu thì không bị xóa ko??
 
Upvote 0
Mình cũng ko hiểu code cho lắm, code mình toàn kiếm trên diễn đàn về cái nào mình biết chút chút thì sửa đc còn khó quá thì phải nhờ mọi người trên diễn đàn giúp

mình thử viết như này nhưng ko đúng, bạn xem qua giúp đc ko?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
Dim x As Range
Set x = Range("A3:J65000")
i = Target.Row
For Each a In x
If a <> "" Then
If Not Intersect(Target, Range("A3:I65000")) Is Nothing Then
Range("J" & i) = Date & " - " & Time
End If
ElseIf a = "" Then
If Not Intersect(Target, Range("A3:I65000")) Then
Range("J" & i) = ""
End If
End If
Next
End Sub
Bạn coi code này đc ko?
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, j, kt As Boolean
i = Target.Row
    If Not Intersect(Target, Range("A3:I65000")) Is Nothing Then
        kt = True
        For j = 1 To 9
            If Cells(i, j) <> "" Then
                kt = False
                Exit For
            End If
        Next
        If kt Then
            Range("J" & i) = ""
        Else
            Range("J" & i) = Date & " - " & Time
        End If
    End If
End Sub
 
Upvote 0
Bạn coi code này đc ko?
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, j, kt As Boolean
i = Target.Row
    If Not Intersect(Target, Range("A3:I65000")) Is Nothing Then
        kt = True
        For j = 1 To 9
            If Cells(i, j) <> "" Then
                kt = False
                Exit For
            End If
        Next
        If kt Then
            Range("J" & i) = ""
        Else
            Range("J" & i) = Date & " - " & Time
        End If
    End If
End Sub

Cám ơn bạn nhiều!! __--__
 
Upvote 0
Bạn coi code này đc ko?
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, j, kt As Boolean
i = Target.Row
    If Not Intersect(Target, Range("A3:I65000")) Is Nothing Then
        kt = True
        For j = 1 To 9
            If Cells(i, j) <> "" Then
                kt = False
                Exit For
            End If
        Next
        If kt Then
            Range("J" & i) = ""
        Else
            Range("J" & i) = Date & " - " & Time
        End If
    End If
End Sub

Bạn cho mình hỏi mình có chèn thêm 1 dòng code để không cập nhật lại ngày của những ô có dữ liệu nhưng ko dc bạn xem qua giúp với

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, j, kt As Boolean
i = Target.Row
If Target.Cells.Count > 0 Then Exit Sub
If Not Intersect(Target, Range("A3:I65000")) Is Nothing Then
kt = True
For j = 1 To 9
If Cells(i, j) <> "" Then
kt = False
Exit For
End If
Next
If kt Then

Range("J" & i) = ""
Else
Range("J" & i) = Date & " - " & Time
End If
End If
End Sub
 
Upvote 0
Bạn cho mình hỏi mình có chèn thêm 1 dòng code để không cập nhật lại ngày của những ô có dữ liệu nhưng ko dc bạn xem qua giúp với

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, j, kt As Boolean
i = Target.Row
If Target.Cells.Count > 0 Then Exit Sub
If Not Intersect(Target, Range("A3:I65000")) Is Nothing Then
kt = True
For j = 1 To 9
If Cells(i, j) <> "" Then
kt = False
Exit For
End If
Next
If kt Then

Range("J" & i) = ""
Else
Range("J" & i) = Date & " - " & Time
End If
End If
End Sub
With Target.Offset(, 8)
If Not .Value <> 0 Then
.NumberFormat = "hh:mm"
.Value = Time
End If
End With
 
Upvote 0
Web KT

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

Back
Top Bottom