Đăng ký học Excel và VBA cùng GPE tháng 11 - TPHCM

Đăng ký học Excel và phân tích số liệu cùng GPE tháng 12 - TPHCM

Mua sách "VBA trong Excel - Cải thiện và tăng tốc" tái bản

Tách, gộp dữ liệu trên nhiều file

Thảo luận trong 'Các Add-ins cho excel' bắt đầu bởi huuthang_bd, 1 Tháng sáu 2011.

  1. huuthang_bd

    huuthang_bd Thay thái độ đổi cuộc đời

    Thấy có nhiều bạn hỏi về tách, gộp dữ liệu trên nhiều file Excel. Tôi xin gửi tặng các bạn file mà tôi đang dùng để thực hiện việc này.

    Bạn nào không rõ về cách sử dụng thì có thể hỏi tại topic này.
    Ai có nhu cầu sử dụng nhiều thì có thể save thành Add-in để dùng cho tiện.

    Mong nhận được nhiều ý kiến đóng góp để Add-in này được hoàn thiện hơn.
     

    Các file đính kèm:

    dohungmo thích bài này.
  2. Hai Lúa Miền Tây

    Hai Lúa Miền Tây Chuyên gia GPE Staff Member Super Moderator

    Khi mở form, click chọn Tab 2, xong click sang tab khác, chọn lại tab2 nó lỗi ở dòng sau:

    Mã:
    Private Sub CBSelectBookSh_Change()
    On Error Resume Next
    Dim Sh As Worksheet
      [COLOR=red][B]  Windows(CBSelectBookSh.Value).Activate[/B][/COLOR]
        LBDataSh.Clear
        For Each Sh In ActiveWorkbook.Sheets
            LBDataSh.AddItem Sh.Name
        Next
    End Sub
    
     
    dohungmo thích bài này.
  3. huuthang_bd

    huuthang_bd Thay thái độ đổi cuộc đời

    Tôi test nhiều lần vẫn không thấy xuất hiện lỗi như anh nói. Nhờ mọi người kiểm tra lại giùm.
     
  4. Hai Lúa Miền Tây

    Hai Lúa Miền Tây Chuyên gia GPE Staff Member Super Moderator

    Bạn xem cái lỗi nó nhé

    [video=youtube;u87_MfqE02g]http://www.youtube.com/watch?v=u87_MfqE02g[/video]
     
  5. nmhung49

    nmhung49 Thành viên tích cực

    Em không thấy lỗi này không biết sao nữa mà máy em không bị lỗi
    T0 huuthang sao mình test thì nó luôn cho ra workbook mới vậy mà với lại không đúng yêu cầu của mình nó chỉ gom dữ liệu vào 1 sheet thôi không phải từng sheet không biết sao nữa, bạn xem lại giúp nhen. Thanks
     
  6. huuthang_bd

    huuthang_bd Thay thái độ đổi cuộc đời

    Cái này là tôi viết chung, có thể dùng cho nhiều trường hợp nên kết quả sẽ được kết xuất ra một file mới. Và kết quả chỉ lưu vào 1 sheet. Nêu muốn áp dụng riêng cho trường hợp của bạn bạn phải sửa code lại theo nhu cầu của mình.
     
  7. nmhung49

    nmhung49 Thành viên tích cực

    Vậy Huuthang có thể giúp mình sửa code lại được không, thật sự nhìn vào đoạn code của bạn mình không hiểu bắt đầu từ đâu hết. Thanks
     
  8. huuthang_bd

    huuthang_bd Thay thái độ đổi cuộc đời

    Trường hợp của bạn thì tôi viết riêng cho bạn file này.

    Bạn cũng có thể dùng file ở bài #1 topic này gộp hết dữ liệu vào 1 sheet sau đó viết code để tách ra thành nhiều sheet theo nhu cầu của bạn.
     

    Các file đính kèm:

  9. nmhung49

    nmhung49 Thành viên tích cực

    Cái này mình sẽ nghiên cứu để viết code tách ra theo hướng này. Code bạn rất đúng với ý mình xin cảm ơn bạn Huuthang nhiều &&&%$R&&&%$R
     
  10. thaithien09

    thaithien09 Thành viên mới

    Trong thể Join data from multiple tất cả các sheet hiện lên. Mình muốn xóa vĩnh viễn 1 hoặc nhiều sheet này thì phải làm sao?. Xin tác giã hướng dẫn thêm.Xin cám ơn
     
  11. huuthang_bd

    huuthang_bd Thay thái độ đổi cuộc đời

    Công cụ này chỉ hỗ trợ việc tách và gộp dữ liệu, kết quả sẽ được tạo trên file mới. Không hỗ trợ xử lý dữ liệu trên file gốc.
    Nếu muốn xóa sheet thì bạn xóa bằng tay, cũng không mất nhiều thời gian đâu.
     
  12. thaithien09

    thaithien09 Thành viên mới

    Cám ơn Tác giã nhiều. Mình muốn cho nó Pro và tiện lợi chút đó mà.
     
  13. gakon001

    gakon001 Thành viên mới

    worksheets("ten sheet").delete
    Không biết xài dc không nhỉ?!

    Có lẽ bạn đang xài office 2007 đúng không? excel 2007 có lẽ có nhiều chổ cần dc bug lại, nhất là add-ins và macro, hai chổ này hay bị lỗi nhất. Để anh lành mà sống hạnh phúc thì nên trung thành với excel 2003 thì hơn :D
     
    Chỉnh sửa lần cuối bởi điều hành viên: 2 Tháng ba 2012
  14. minhcong.tckt

    minhcong.tckt Thành viên thường trực

    Anh ơi, em thấy đề tài này rất hay, em đã tải file đính kèm về, thấy toàn tiếng anh (mà em lại dốt ), vậy mong anh nói qua về cách sử dụng file đó được không ạ???
    Nhân tiện cho em hỏi, khi mình dùng 2 file excel , vậy có cách nào để 2file đó khi copy sang cách máy khác để mở luôn hiện cùng nhau không ạ (khi tích vào 1 file trung gian thì hiện 2 file đó trên màn hình cùng lúc)

    Chân thành cảm ơn!!!
     
  15. phuongqv

    phuongqv Thành viên mới

    Xin giúp đỡ (tổng hợp dữ liệu từ nhiều sheet khi tên sheet thay đổi)

    Chào anh huuthang_bd, em có 1 file excel trong file có nhiều sheet, tên sheet sẽ thay đổi theo nhu cầu sử dụng của từng mã hàng. Sau khi em tính toán xong em muốn kết quả của tất cả các sheet kia sẽ được tổng hợp trên sheet [TongHop]. (Thay vì em phải in ra tất cả các sheet để nộp thì em muốn tổng hợp lại sau đó chỉ nộp 1 bảng tổng hợp thôi cho dễ quan sát & kiểm tra.) Nếu như tên sheet không thay đổi em có thể làm dễ dàng nhưng khi tên sheet thay đổi em không làm được mong anh giúp đỡ. Xin cản ơn.
     

    Các file đính kèm:

  16. huuthang_bd

    huuthang_bd Thay thái độ đổi cuộc đời

    Tôi cũng dốt tiếng Anh thôi nhưng do có một số chỗ trên Form không viết tiếng Việt có dấu được nên đành dùng tiếng Anh hết. Tôi hướng dẫn sơ qua thế này:
    Thẻ 1: Gộp dữ liệu trong nhiều file vào 1 sheet
    - Add: Chọn những file sẽ gộp dữ liệu.
    -Delete: Xóa file đã chọn
    -Delete All: Xóa hết file đã chọn
    -All Sheets: Gộp hết các sheet có trong file
    -Sheet Index: Chỉ gộp sheet thứ n trong mỗi file (n được chọn từ Combobox bên cạnh)
    -Sheet Name: Chỉ gộp sheet tên abc trong mỗi file (abc được chọn từ Combobox bên cạnh)
    -First Cell: Ô đầu tiên của vùng dữ liệu sẽ gộp (Click vào Textbox bên cạnh để chọn)
    -End Column: Cột cuối cùng của dữ liệu sẽ gộp (Click vào Textbox bên cạnh để chọn)
    -End Row: Dòng cuối cùng của dữ liệu sẽ gộp (Click vào Textbox bên cạnh để chọn)
    -End Row of columns: Dòng cuối cùng của dữ liệu sẽ gộp là dòng cuối cùng có dữ liệu trong các cột x:y (Click vào Textbox bên cạnh để chọn)
    Thẻ 2: Gộp dữ liệu trong các sheet của cùng 1 file vào 1 sheet
    - Select Workbook: Chọn Workbook muốn ghép (nếu Workbook đã được mở)
    - Open: Mở Workbook muốn ghép (nếu Workbook chưa được mở)
    - Các tùy chọn và nút lệnh khác tương tự như trên
    Thẻ 3: Gộp các sheet trong nhiều file vào chung một file
    - New Sheet Name: Dùng để đặt tên mới cho các sheet:
    + File Name: Đưa tên file cũ vào tên Sheet mới
    + Delimiters: Dấu phân cách (Nhập vào Textbox bên cạnh)
    + 1,2,3...: Đặt tên Sheet theo số thứ tự
    + Old sheet name: Lấy lại tên sheet cũ
    - Các tùy chọn và nút lệnh khác tương tự như trên
    Thẻ 4: Tách các sheet trong 1 file thành nhiều file với mỗi file có 1 sheet của file cũ.
     
    Phan Thanh Quang thích bài này.
  17. vhn1511

    vhn1511 Thành viên mới

    Dear anh huuthang_bd,
    Cảm ơn Anh đã chi sẻ marco tách, gộp các sheet đặc biệt có cửa sổ tương tác rất thân thiện với người dùng. Nó thực sự rất hữu ích cho công việc của Em.
    Em vừa thử ghép nhiều sheet khác nhau trong cùng 1 file excel dữ liệu thấy vấn đề mong Anh trợ giúp.
    - Ở các sheet khác nhau thì số bản ghi/số dòng là khác nhau
    - Khi gộp sheet với. Kết quả luôn cố định số bản ghi được copy ở các sheet khác nhau. Điều này dẫn đến chúng ta phải mất công xóa số bản ghi trống đó.
    Cảm ơn Anh, chúc anh nhiều niềm vui trong công việc và cuộc sống
     
  18. huuthang_bd

    huuthang_bd Thay thái độ đổi cuộc đời

    Tôi có tùy chọn để người sử dụng tùy biến theo từng trường hợp mà. Nếu số dòng trong các sheet là khác nhau thì ở vùng End Row bạn chọn dòng End row of rồi chọn các cột dữ liệu của bạn.

    Ví dụ bạn chọn End row of A:Fthì code sẽ tự động lấy dữ liệu đến dòng cuối cùng có dữ liệu trong các cột từ A đến F của các Sheet.

    Bạn thử lại xem.
     
  19. thaihau2004

    thaihau2004 Thành viên mới

    Bạn ơi, mình cũng đang có 1 bài toán là copy nguyên 1 worksheet (ví dụ tên A) vào 1 file excel mẹ(ví dụ file B), đã thử đoạn code của bạn gữi cho nmhung49, nhưng đọc ko hiểu lắm, nên ko biết sửa từ đâu. -+*/ Bài toán của mình cũng gần giống yêu cầu của bạn nmhung49, nhưng cần giữ nguyên data trong worksheet A, và có thể move sheet A này lên thành sheet đứng đầu trong file B đc ko?

    Cám ơn bạn nhiều nhé
     
  20. huuthang_bd

    huuthang_bd Thay thái độ đổi cuộc đời

    Addin này để dụng chung cho nhiều trường hợp một cách tổng quát nên không thể sửa theo từng yêu cầu được nha bạn. Bạn có thể mở topic mới để hỏi về trường hợp của bạn.
     

Chia sẻ trang này