Trang 1 của 3 123 CuốiCuối
Kết quả 1 đến 10 của 23

Chủ đề: Xin giúp đỡ 1 đoạn code vb copy có điều kiện trong excel.

  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    0

    Xin giúp đỡ 1 đoạn code vb copy có điều kiện trong excel.

    Xin chào anh em trong diễn đàn, mình thành viện mới đang nghiêu cứu ngôn ngữ VB. đang gặp khó khăn xin nhờ các bật tiền bối hổ trợ giúp 1 đoạn mã này.

    Lấy dữ liệu từ workbook2-(CHI_TIET) qua workbook1-(KETQUA) có 2 điều kiện như sau:

    a) Đâu tiên sẽ lấy dữ liệu của 3 cột (A4:A147 & B4:B147 & C4:C147) qua workbook KETQUA. 3 cột này tham chiếu qua KETQUA nếu trùng dữ liệu với 3 cột A & B & C (3 cột này phải trùng nhau tương ứng A=A,B=B,C=C) thì không copy, chỉ copy những dữ liệu mới và Paste nối tiếp phiá dưới. (không dán đè lên dữ liệu có sẵn)

    b) Lấy các cột SỐ LƯỢNG, sẽ tìm từ E4:M147 của workbook CHI_TIET dán qua (E & M) của KETQUA tương ứng với 3 cột A,B,C.

    mình ngồi ngâm cứu mãi chỉ được có tí thế này, không đáp ứng được điều kiện, xin các bật tiền bối của diễn đàng cứu giúp, minh xin chân thành cảm ơn.

  2. #2
    dienlanh_hanoi Guest
    Có code VB nào để nghiên cứu?Tôi có thấy code nào đâu nhỉ?

    nên nhớ có nhiều cách làm không nhất thiết phải cứ VB code nhé

  3. #3
    anhnt227 Guest
    Trích dẫn Gửi bởi tuanbonus
    dear anh Hoàng,
    vì workbook KETQUA sẽ là database, nhiều người sẽ dùng chung & update thường xuyên từ workbook CHI_TIET. thao tác thủ công mất rất nhiều thời gian.

    em có đính kèm lại code anh xem chỉ giáo giúp, nếu có cách khác hay hơn xin anh mách giúp.
    cái khó của em khi make code là copy & update dữ liệu vào KETQUA có điều kiện, như 1 hàm VLOOKUP trả về khi thoả điều kiện, ở đây nếu trùng nhau ở 3 cột (VT, MAU, QUI CÁCH) thì chỉ copy dữ liệu qua thôi.
    Xem thử file này, sau khi cập nhật dữ liệu xong thì xoá số liệu bên sheet chi tiết để khỏi sợ bấm nút nhiều lần sẽ cộng dồn lên nhiều lần.
    Nhớ Enable Macros.

  4. #4
    thangtnpt0021 Guest
    dear a.Hoang.
    1. yes, đúng thế aHoàng vì bảng CHI TIẾT này có thể có đến 5 bảng để tập hợp vào KETQUA Bảng KQ này như 1 DATABASE được update thường xuyên.

    2.Bảng CHI-TIET này được cập nhật thủ công của nhân viên, mổi người 1 bảng, và sao khi nó được Copy or Cut qua KETQUA rồi thi bảng CHI TIẾT sẽ là "CLEAR CONTENTS" cho tất cả các dữ liệu để nhập tiếp dữ liệu mới.

    3.Từ 2 ý trên (#1, #2) lần cập nhật (update) tiếp theo thì bảng CHI TIET có 3 cột (VT, MÀU, Q.CÁCH) sẽ có dữ liệu mới và cả dữ liệu củ,
    (vd: ở 2 bảng CHI TIET & KETQUA có 1 dòng (row) trong đó có 3 cells VT: có cùng 1 chủng loại "Leather". MÀU: có cùng 1 chủng loại "white". ĐVT: có cùng 1 chủng loại "44" thì mới gọi là trùng nhau, còn lại 1 trong 3 cells này khác nhau thì khác nhau).

    Nếu là trùng nhau thì khi Copy hoặc Cut dán đè lên 3 cái cells củ ở bảng KQ cũng được, còn những dữ liệu mới (không trùng nhau) thì dán tiếp phía dưới, không được dán đè lên dữ liệu đang có ở bảng KETQUA.

    Tiếp theo đến phần lấy các cột SỐ LƯỢNG, từ cột E trở về sau là những cột SLượng những cells như (E2:E3, F2:F3, G2:G3.....) là tên một mặt hàng khi cập nhật mới cũng sẽ có tên mới và tên củ nếu 2 bảng CHI TIET & KQ có E2:E3 trùng nhau thì nó sẽ xoá SLượng đang có ớ cột đó ở bảng KQ rồi tham chiếu 2 chiều như hàm Excel để update lại SL mới cho cột đó từ bảng CHI TIET (tham chiếu giữa tên mặt hàng (E2:E3, F2:F3....) với 3 cột VT, MÀU, QUY CACH để gán số lượng)

    Còn những cột của mặt hàng mới, thì nó lấy cột rỗng (empty column) kế tiếp để copy tên mặt hàng mới rồi tham chiếu 2 chiều để gán SỐ LƯỢNG.

    bảng CHI TIET thì mặt định chó 9 columns số lượng thôi.
    Sao khi hoàn tất các bước ỏ bảng CHI TIET sẽ là Clear những dữ liệu vừa lấy. chuẩn bị cho lần update kế tiếp.

    HY VỌNG ANH HIỂU Ý EM VÀ GIÚP EM HOÀN THÀNH TỐT VIỆC NÀY, EM CẢM ƠN.

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Ba Tê
    Xem thử file này, sau khi cập nhật dữ liệu xong thì xoá số liệu bên sheet chi tiết để khỏi sợ bấm nút nhiều lần sẽ cộng dồn lên nhiều lần.
    Nhớ Enable Macros.
    em tks anh BaTe,
    nhưng em có mấy điều kiện em nêu phía dưới nữa anh mách giúp em vài đoạn nữa đi anh, em cám ơn anh

  6. #6
    thuytrang128 Guest
    Trích dẫn Gửi bởi tuanbonus
    em tks anh BaTe,
    nhưng em có mấy điều kiện em nêu phía dưới nữa anh mách giúp em vài đoạn nữa đi anh, em cám ơn anh
    Còn vài đoạn nữa là gì, bạn giải thích rõ kèm theo ví dụ cụ thể thì dễ hiểu hơn. Đọc cả bài #7 bên trên thật tình tôi cũng mơ mơ hồ hồ.
    Thử hiểu như vầy nhé: Lấy dữ liệu từ sheet ChiTiet qua sheet KetQua, Nếu cùng mã (A & B & D) thì lấy số liệu mới đè lên số liệu cũ, nếu không thì giữ nguyên số liệu cũ đã có ở sheet KetQua. Nếu mã này chưa có bên sheet Ketqua thì chép nguyên dữ liệu của mã này vào dòng kế tiếp trong sheet Ketqua. Đúng không?

  7. #7
    dinhtuann123 Guest
    dear anh Hoàng,
    vì workbook KETQUA sẽ là database, nhiều người sẽ dùng chung & update thường xuyên từ workbook CHI_TIET. thao tác thủ công mất rất nhiều thời gian.

    em có đính kèm lại code anh xem chỉ giáo giúp, nếu có cách khác hay hơn xin anh mách giúp.
    cái khó của em khi make code là copy & update dữ liệu vào KETQUA có điều kiện, như 1 hàm VLOOKUP trả về khi thoả điều kiện, ở đây nếu trùng nhau ở 3 cột (VT, MAU, QUI CÁCH) thì chỉ copy dữ liệu qua thôi.

  8. #8
    hungcong88 Guest
    dear anh Hoàng,
    vì workbook KETQUA sẽ là database, nhiều người sẽ dùng chung & update thường xuyên từ workbook CHI_TIET. thao tác thủ công mất rất nhiều thời gian.

    em có đính kèm lại code anh xem chỉ giáo giúp, nếu có cách khác hay hơn xin anh mách giúp.
    cái khó của em khi make code là copy & update dữ liệu vào KETQUA có điều kiện, như 1 hàm VLOOKUP trả về khi thoả điều kiện, ở đây nếu trùng nhau ở 3 cột (VT, MAU, QUI CÁCH) thì chỉ copy dữ liệu qua thôi.

  9. #9
    levouu Guest
    Một số ý kiến sau khi xem file đính kèm của bạn:
    1. Có phải bạn muốn tổng hợp số liệu vào WB KetQua từ nhiều nguồn (nhiều người nhập vào WB Chi_Tiet)?
    2. Khi đưa dữ liệu vào Chi_Tiet thì đưa thêm (bổ sung, nếu đã có bộ 3 mã) vào bên dưới hay là sửa lại dữ liệu đã có?
    3. Sau khi đã cập nhật dữ liệu, lần sau thì làm sao biết những bộ 3 mã này đã cập nhật trước đó rồi? Vì nếu không kiểm soát thì quá trình cập nhật sẽ tổng hợp lại dữ liệu đã cập nhật trước đó.
    4. Ở trên bạn có nói:


    ...thì không copy, chỉ copy những dữ liệu mới và Paste nối tiếp phiá dưới.
    không copy là không copy cái gì? đã không sao còn "chỉ copy..." - câu này rất khó hiểu ý bạn muốn nói gì?

  10. #10
    tanhaiha Guest
    Trích dẫn Gửi bởi Ba Tê
    Còn vài đoạn nữa là gì, bạn giải thích rõ kèm theo ví dụ cụ thể thì dễ hiểu hơn. Đọc cả bài #7 bên trên thật tình tôi cũng mơ mơ hồ hồ.
    Thử hiểu như vầy nhé: Lấy dữ liệu từ sheet ChiTiet qua sheet KetQua, Nếu cùng mã (A & B & D) thì lấy số liệu mới đè lên số liệu cũ, nếu không thì giữ nguyên số liệu cũ đã có ở sheet KetQua. Nếu mã này chưa có bên sheet Ketqua thì chép nguyên dữ liệu của mã này vào dòng kế tiếp trong sheet Ketqua. Đúng không?
    dear anh BaTe,
    Yes, đúng vậy đó anh BaTe, anh đã hiểu được ý em rồi, & em cám ơn anh rất nhiều nhiều anh cho em đoạn code tuyệt vời:

    còn khúc cuối nữa anh BaTe, anh add thêm cho em như ý anh ở trên:

    "Lấy dữ liệu từ sheet ChiTiet qua sheet KetQua, Nếu cùng mã (A & B & D) thì lấy số liệu mới đè lên số liệu cũ, nếu không thì giữ nguyên số liệu cũ đã có ở sheet KetQua. Nếu mã này chưa có bên sheet Ketqua thì chép nguyên dữ liệu của mã này vào dòng kế tiếp trong sheet Ketqua"

    và cộng thêm 1 điều kiện nữa là: anh nhình ở các Cells (E2&E3, F2&F3, G2&G3 đến M2&M3) của sheet CHITIET, đây là tên những mặt hàng, nếu nó trùng với bất kỳ cột nào của (E2&E3,F2&F3.........(N cell) của bảng KQ thì copy đè lên ở bảng KQ. Nếu không trùng nhau thì nó lấy cột rỗng tiếp theo của bảng KQ để gán số lượng. (không copy đè lên các mặt hàng đã có) vì mổi lần update là có mặt hàng mới, cũng có củ.

    nó giống như điều kiện anh nói ở trên nhưng đây là cột column.

    giúp em nhé anh BaTe ơi, sắp xong rồi.

Trang 1 của 3 123 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •