Tự động copy cột dữ liệu và xoá những hàng trùng (2 người xem)

Liên hệ QC

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

Chào các anh chị
mình có 2 cột dữ liệu ban đầu nhập tay vào là cột A và cột B
Thao tác hàng ngày mình sẽ copy 2 cột A và B sang cột D E và dùng Remove duplicate để xoá các hàng trùng trên 2 cột đó.

trong Excel mình có hàm nào làm công việc trên một cách tự động khi mình có thêm dữ liệu ở cột A hoặc cột B sẽ tự động cập nhật vào cột D E tương ứng,
Xin cám ơn,
1/ Bạn tham khảo File, code chỉ nằm gọn trong Worksheet, tại cột B bạn gõ nội dung vào và nhấn Enter sẽ nhận được kết quả.
2/ Cột D và E bạn không cần đá động gì đến nó, nếu bạn xóa cột cột A và B thì Cột D và E tự động thay đổi theo.
 

File đính kèm

Lần chỉnh sửa cuối:
Mình gửi lại file ở bài #23 rồi đấy.

1/ Bạn tham khảo File, code chỉ nằm gọn trong Worksheet, tại cột B bạn gõ nội dung vào và nhấn Enter sẽ nhận được kết quả.
2/ Cột D và E bạn không cần đá động gì đến nó, nếu bạn xóa cột cột A và B thì Cột D và E tự động thay đổi theo.
file ở bài số 24 chạy đc rồi bạn ơi, file name Thay_Doi.xlsm thành công rồi, cám ơn bạn nhiều
Bài đã được tự động gộp:

Quên mất, chờ mình chút nhé.
Đây rồi bạn ơi.
file số 23 ko dc nha ban, cám ơn bạn nhiều, file ở bài số 24 dc rồi bạn ơi, cám ơn bạn rất rất nhiều
 
Bạn ơi không được ở chỗ nào cho mình biết nhé.
File bài #24 mình thấy khi xóa đoạn giữa cột B thì vẫn giống trường hợp mà bạn bảo mình sửa lại đó thôi..
mình chọn 2 cột AB xoá hết thì cột DE đã xoá theo, mình nhập lại bên AB thì bên DE đã xuất hiện đúng .

file của bạn xoá AB thì DE xoá OK

nhưng nhập lại là bị như hình,

dsgsd
dgsghhhh
fsfgjjj
dsgsd
hhhh
jjj
 
mình chọn 2 cột AB xoá hết thì cột DE đã xoá theo, mình nhập lại bên AB thì bên DE đã xuất hiện đúng .
file của bạn xoá AB thì DE xoá OK
nhưng nhập lại là bị như hình,

dsgsd
dgsghhhh
fsfgjjj
dsgsd
hhhh
jjj
Mình chạy sao không thấy lỗi nhỉ, bạn chụp lơ lửng thế này thì hình dung sao đây.
 
Lần chỉnh sửa cuối:
Bạn ơi không được ở chỗ nào cho mình biết nhé.
File bài #24 mình thấy khi xóa đoạn giữa cột B thì vẫn giống trường hợp mà bạn bảo mình sửa lại đó thôi..
Cột A và B người ta chỉ nhập và xóa dòng cuối khi nhập liệu bị sai, còn đoạn giữa chỉ sửa mà không xóa, nếu muốn xóa mà không bị khoảng trống thì phải thêm 1 dòng code xóa dòng trống nữa.
 
Cột A và B người ta chỉ nhập và xóa dòng cuối khi nhập liệu bị sai, còn đoạn giữa chỉ sửa mà không xóa, nếu muốn xóa mà không bị khoảng trống thì phải thêm 1 dòng code xóa dòng trống nữa.
Vâng anh, ở bài #11 là bạn chủ bài có nêu điều kiện xóa đoạn giữa cột B đó anh ạ.
 
Bạn xem có đúng theo ý bạn ko nhé
 

File đính kèm

không thấy công thức copy chổ nào bạn ơi
Bài đã được tự động gộp:

nhảy không đúng thứ tự bạn ơi, nhảy loạn xạ hà hihihiih
Bạn gõ cột A Dòng cuối là "gì đấy" và cũng dòng ấy bên cột B là "gì gì đấy" xem sao. Tôi đã đặt chức năng tự động lọc cho cột D và E không trùng khi nhập mới, Nếu A(n) &B(n) không trùng vói bất kỳ D(z) và E(z) nào từ đươc hập vào D(cuối của E) và E(cuối)

Mã:
Sub NapDic()
Dim dic As Object
  Set dic = CreateObject("Scripting.Dictionary")
Dim i&, d&
Dim Arr(), DK
With Sheet1
d = .Range("B" & Rows.Count).End(xlUp).Row
Arr = .Range("D2:E" & d).Value
End With
ReDim KQ(1 To UBound(Arr), 1 To 2)
For i = 1 To UBound(Arr)
                 DK = Trim(Arr(i, 1)) & "|" & Trim(Arr(i, 2))
        If Not dic.exists(DK) Then dic.Item(DK) = DK
Next i
End Sub

Sub KTRA()
Dim tmp
Dim dic As Object
  Set dic = CreateObject("Scripting.Dictionary")
tmp = Trim(Sheet1.[IY1]) & "|" & Trim(Sheet1.[IZ1])
        If dic.exists(tmp) Then
            MsgBox "Trùng "
        Else
            Range("D" & Range("E" & Rows.Count).End(3).Row).Offset(1, 0) = Sheet1.[IY1]
            Range("D" & Range("E" & Rows.Count).End(3).Row).Offset(1, 1) = Sheet1.[IZ1]
        End If
End Sub
Còn đây là code trong Sheet1
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 2 And Target.Column = 2 Then
        Chk = True
            Range("IY1:IZ1").clearcontents
            Range("IY1") = Target.Offset(0, -1)
            Range("IZ1") = Target
    Call KTRA
End If
End Sub

Private Sub Worksheet_Deactivate()
  If Chk Then
    NapDic
    Chk = False
  End If
End Sub
Cụ thể hơn là bạn thay dòng 2
Range("D" & Range("D" & Rows.Count).End(3).Row).Offset(1, 0) = Sheet1.[IY1]
Range("D" & Range("D" & Rows.Count).End(3).Row).Offset(0, 1) = Sheet1.[IZ1] trong modul2 (Sub KTRA) bằng 2 dòng

Range("D" & Range("E" & Rows.Count).End(3).Row).Offset(1, 0) = Sheet1.[IY1]
Range("D" & Range("E" & Rows.Count).End(3).Row).Offset(1, 1) = Sheet1.[IZ1]

Hoặc Bạn chép lại code SUB KTRA()..... và Paste modul 2 và thử lại nhé.
 

File đính kèm

Lần chỉnh sửa cuối:
1/ Bạn tham khảo File, code chỉ nằm gọn trong Worksheet, tại cột B bạn gõ nội dung vào và nhấn Enter sẽ nhận được kết quả.
2/ Cột D và E bạn không cần đá động gì đến nó, nếu bạn xóa cột cột A và B thì Cột D và E tự động thay đổi theo.
hi bạn,
mình mới dịch chuyển format file lại, nhưng macro không hiểu khi mình di chuyển cột,
mình đã di chuyển cột A B thành C D và cột D E thành cột N O, bạn chỉnh macro lại dùm mình nhe cám ơn bạn, xem file đính kèm dùm mình.
 

File đính kèm

hi bạn,
mình mới dịch chuyển format file lại, nhưng macro không hiểu khi mình di chuyển cột,
mình đã di chuyển cột A B thành C D và cột D E thành cột N O, bạn chỉnh macro lại dùm mình nhe cám ơn bạn, xem file đính kèm dùm mình.
1/ Bạn đưa File với tiêu đề đầy đủ đi để tôi biết mà viết lại code khác, vì File bài 1 bạn đưa có 2 cột, File bài 36 là 4 cột nên không biết có còn phát sinh nữa hay không?
2/ Nếu viết code xong mà bạn bổ sung thêm cột nữa thì code lại khác nữa.
3/ Nói chung tiêu đề cột có bao nhiêu thì đưa hết vào File tiêu đề là giả định cũng được, miễn sao bạn cho biết chính xác cột cần lấu dữ liệu là cột nào (tô màu tiều đề cột).
 
1/ Bạn đưa File với tiêu đề đầy đủ đi để tôi biết mà viết lại code khác, vì File bài 1 bạn đưa có 2 cột, File bài 36 là 4 cột nên không biết có còn phát sinh nữa hay không?
2/ Nếu viết code xong mà bạn bổ sung thêm cột nữa thì code lại khác nữa.
3/ Nói chung tiêu đề cột có bao nhiêu thì đưa hết vào File tiêu đề là giả định cũng được, miễn sao bạn cho biết chính xác cột cần lấu dữ liệu là cột nào (tô màu tiều đề cột).
Chính xác rồi đó bạn ơi. Mình đã cố định tất cả cột rồi,
Cám ơn bạn nhiều
 
Web KT

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

Back
Top Bottom