Tổng hợp dữ liệu từ nhiều file ở nhiều thư mục khác nhau về 1file tổng

Liên hệ QC

LuuGiaPhúc

Thành viên hoạt động
Tham gia
28/7/21
Bài viết
126
Được thích
47
Em nhờ các anh chị viết dùm e đoạn code để lấy dữ liệu từ nhiều file, mỗi file nằm ở 1 thư mục khác nhau (nhưng tất cà các thư mục này đều nằm trong 1 thư mục tổng
Hằng tháng, em tạo ra 1 thư mục tổng, ví dụ tháng này là T8.2021 và lưu nó lên trên ổ mạng chia sẻ cho các văn phòng trên toàn quốc cùng vào nhập dữ liệu.
Mỗi văn phòng sẽ tự tạo 1 thư mục con (ví dụ DBN1 , BHO1 ...) nằm trong thư mục tổng này. Trong thư mục tổng, em để sẵn 1 template PHIEU YEU CAU HKM - MUC - GIAY IN.xlsx.
Các văn phòng sẽ dùng file template này để nhập yêu cầu cung cấp văn phòng phẩm như giấy in, mực in, hàng khuyến mãi... mà văn phòng của họ cần sử dụng trong tháng.
Sau đó, em dùng file tổng hợp để tổng hợp số lượng, mã hàng , loại hàng.... của tất cả lại và đặt hàng.

Vấn đề là có khoảng 50 văn phòng như thế, nên quá trình tổng hợp bằng tay rất mất thời gian. Nhờ các anh chị viết dùm 1 đoạn code để mình nhấn nút import, chỉ đường dẫn đến thư mục T8.2021 thì nó sẽ tự động mở từng thư mục con, tìm đến file PHIEU YEU CAU HKM - MUC - GIAY IN.xlsx trong thư mục đó, copy sheet MUC - GIAY IN , paste value vào sheet MUC - GIAY IN của file tổng hợp. Lưu ý : nhìn tên thư mục để copy. Ví dụ : vào thư mục BHO1, copy thì phải paste vào phần VP BHO1 tương ứng.
Sheet PYC HKM cũng tương tự như vậy

1628389247103.png
1628388842791.png
1628389103079.png
 

File đính kèm

  • Thang 08-2021 (1).zip
    1.4 MB · Đọc: 50
  • 3. TONG HOP.xlsm
    19.9 KB · Đọc: 31
Lần chỉnh sửa cuối:
Chúc bạn ngày mới vui vẻ và giữ gìn sức khỏe vượt qua đại dịch
Cảm ơn bạn Maika8008 .
Tiếp tục với cái template mà bạn đã viết dùm đoạn code lần trước, lần này nhờ bạn xem giúp có cách nào làm nhanh hơn không ?
Nhìn vào sheet PYC HKM, hàng 4, nếu có bao nhiêu văn phòng thì qua sheet PXK HKM (phiếu xuất kho hàng khuyến mãi), tạo ra tương ứng bấy nhiêu trang

1629600940811.png

1629601170530.png

 

File đính kèm

  • 3. FORM TONG HOP.xlsm
    561.6 KB · Đọc: 3
Lần chỉnh sửa cuối:
Upvote 0
Sửa code có sẵn hay viết code mới? Tôi thấy bạn nói 'có cách nào làm nhanh hơn' thì có vẻ là có code rồi nhưng chạy chậm?
 
Upvote 0
Sửa code có sẵn hay viết code mới? Tôi thấy bạn nói 'có cách nào làm nhanh hơn' thì có vẻ là có code rồi nhưng chạy chậm?
Dạ không phải, em thì không biết về code, chỉ biết hàm thôi, nên em phải tạo sẵn luôn 50 trang, rồi dùng hàm cho nó nhìn qua sheet PYC HKM, ví dụ : trang 1 : hàm sẽ là : =IF(OR('PYC HKM'!H$4=0,'PYC HKM'!H$4=""),"",'PYC HKM'!H$4) kiểu như vậy nè, trang 2 sẽ là : =IF(OR('PYC HKM'!I$4=0,'PYC HKM'!I$4=""),"",'PYC HKM'!I$4)

Rồi em dùng CF ẩn đi nếu văn phòng nào = 0, nhưng thật tế như vậy nó quá thủ công, chưa kể sheet PXK HKM (phiếu xuất kho hàng khuyến mãi) em còn phải chuyển qua pdf ==> nó tạo ra mấy chục trang trắng.

Theo quy định, sau khi các văn phòng tự tạo thư mục tên văn phòng (nằm trong thư mục tháng 08.2021) và điền thông tin đặt hàng theo template mẫu của em, thì em dùng file tổng hợp để chạy code tổng hợp số lượng đặt hàng, xong e phải qua sheet PXK HKM để xuất file pdf (của những văn phòng nào có đặt hàng) ==> gởi mail cho họ file pdf này, họ ký tên xác nhận rồi chuyển bản hard copy có chữ ký về HO cho em lưu lại. ==> ý em muốn là sheet PXK HKM sẽ nhìn qua sheet PYC HKM, xem có bao nhiêu văn phòng đặt hàng trong tháng này thì sẽ in sẵn mẫu PXK HKM của văn phòng đó, điền tên văn phòng và số lượng đặt hàng vào cột D tương ứng.
Nên ở sheet PXK HKM, em muốn chỉ tạo sẵn 1 trang mẫu thôi, rồi viết 1 nút EXPORT PDF : khi click vào, nó sẽ nhìn qua sheet PYC HKM, xem có bao nhiêu văn phòng thì nó sẽ tạo ra bấy nhiêu trang mẫu tương ứng, điền tên văn phòng và số lượng đặt hàng vào cột D, rồi xuất ra thành 1 file PDF với số lượng trang = số lượng văn phòng có đặt hàng (ở sheet PYC HKM). ==> em sẽ gởi mail cho các văn phòng của toàn quốc ==> ai có đặt hàng thì tự vào, in trang của VP của họ rồi ký tên và chuyển bản giấy có chữ ký về cho em. thế là xong.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn có nghĩ nên xuất riêng mỗi VP chỉ 1 trang của VP đó rồi dùng kiểu gửi mail hàng loạt cho từng VP theo 1 danh sách điền sẵn thông tin người nhận chưa? Ứng dụng gửi mail hàng loạt bằng VBA trên GPE có sẵn bằng cả 2 cách: Outlook và Gmail
 
Upvote 0
Bạn có nghĩ nên xuất riêng mỗi VP chỉ 1 trang của VP đó rồi dùng kiểu gửi mail hàng loạt cho từng VP theo 1 danh sách điền sẵn thông tin người nhận chưa? Ứng dụng gửi mail hàng loạt bằng VBA trên GPE có sẵn bằng cả 2 cách: Outlook và Gmail
Dạ không được anh. vấn đề chính là theo quy định, em sẽ phải gởi 1 FILE PDF (trong file này có nhiều trang, mỗi trang tương đương với 1 văn phòng có đặt hàng). 1 file này sẽ được gởi vào mail group OA toàn quốc (Group OA là group mail của những người quản lý của các văn phòng).
Trước giờ em vẫn làm theo cách em nói ở trên : tức là em tạo ra sẵn 50 trang (tương đương với 50 văn phòng toàn quốc), rồi dùng công thức cho nó nhìn qua sheet PYC HKM, hàng thứ 4 xem có văn phòng nào có đặt hàng thì đưa thông tin qua , ví dụ tháng này có 10 văn phòng có đặt hàng thì 10 trang đầu tiên sẽ có nội dung, 40 trang còn lại thì dùng CF ẩn nội dung đi rồi dùng code xuất ra file PDF ==> nó sẽ ra 50 trang với 10 trang đầu có nội dung, 40 trang sau là trang trắng, rồi em lại dùng Acrobat Pro để cắt bỏ 40 trang trắng kia đi, giữ lại 10 trang đầu có nội dung ==> lưu file lại và gởi cho group mail.
Nhưng giờ thấy anh viết được đoạn code tổng hợp nhiều thư mục như thế, em lại nghĩ chắc chắn có cách viết code cho nó nhìn xem sheet PYC HKM có bao nhiêu văn phòng đặt hàng thì chỉ lấy thông tin đưa qua sheet PXK HKM ==> như vậy sẽ không cần tốn thêm thao tác cắt bớt trang trống nữa.
 
Lần chỉnh sửa cuối:
Upvote 0
Dạ không được anh. vấn đề chính là theo quy định, em sẽ phải gởi 1 FILE PDF (trong file này có nhiều trang, mỗi trang tương đương với 1 văn phòng có đặt hàng). 1 file này sẽ được gởi vào mail group OA toàn quốc (Group OA là group mail của những người quản lý của các văn phòng).
Trước giờ em vẫn làm theo cách em nói ở trên : tức là em tạo ra sẵn 50 trang (tương đương với 50 văn phòng toàn quốc), rồi dùng công thức cho nó nhìn qua sheet PYC HKM, hàng thứ 4 xem có văn phòng nào có đặt hàng thì đưa thông tin qua , ví dụ tháng này có 10 văn phòng có đặt hàng thì 10 trang đầu tiên sẽ có nội dung, 40 trang còn lại thì dùng CF ẩn nội dung đi rồi dùng code xuất ra file PDF ==> nó sẽ ra 50 trang với 10 trang đầu có nội dung, 40 trang sau là trang trắng, rồi em lại dùng Acrobat Pro để cắt bỏ 40 trang trắng kia đi, giữ lại 10 trang đầu có nội dung ==> lưu file lại và gởi cho group mail.
Nhưng giờ thấy anh viết được đoạn code tổng hợp nhiều thư mục như thế, em lại nghĩ chắc chắn có cách viết code cho nó nhìn xem sheet PYC HKM có bao nhiêu văn phòng đặt hàng thì chỉ lấy thông tin đưa qua sheet PXK HKM ==> như vậy sẽ không cần tốn thêm thao tác cắt bớt trang trống nữa.
Bạn thử code nhé. Do trên file của bạn, khi Xóa định dạng (Clear Format) code chạy khá chậm (bị Not Responding) nên tôi chép dữ liệu sang 1 file mới để chạy thử, thấy nhanh hơn hẳn.

Tôi gửi cho bạn cả 2 file để bạn chạy thử.
 

File đính kèm

  • 3. FORM TONG HOP_LuuGiaPhuc_New.xlsm
    164.6 KB · Đọc: 11
  • 3. FORM TONG HOP.xlsm
    572.8 KB · Đọc: 12
Upvote 0
Bạn thử code nhé. Do trên file của bạn, khi Xóa định dạng (Clear Format) code chạy khá chậm (bị Not Responding) nên tôi chép dữ liệu sang 1 file mới để chạy thử, thấy nhanh hơn hẳn.

Tôi gửi cho bạn cả 2 file để bạn chạy thử.
Quá xuất sắc !. Vậy là bạn dùng cách tạo thêm 1 sheet phụ (sheet mau) để chứa trang mẫu, rồi sau đó, khi click vào nút chuyển PDF thì nó đếm số văn phòng có đặt hàng, rồi tạo ra đúng số trang mẫu tương ứng với các văn phòng đó. Đúng ý của mình rồi.
Tuy nhiên hình như bạn còn thiếu , chỗ cột D, bạn chưa đưa tên văn phòng vào (bạn mới đưa số lượng vào thôi, còn tên văn phòng bạn chưa đưa vào, bạn giúp mình chỉnh thêm 1 chút xíu chỗ tên văn phòng nữa là được nhé.
Cảm ơn bạn rất nhiều
 
Upvote 0
Quá xuất sắc !. Vậy là bạn dùng cách tạo thêm 1 sheet phụ (sheet mau) để chứa trang mẫu, rồi sau đó, khi click vào nút chuyển PDF thì nó đếm số văn phòng có đặt hàng, rồi tạo ra đúng số trang mẫu tương ứng với các văn phòng đó. Đúng ý của mình rồi.
Tuy nhiên hình như bạn còn thiếu , chỗ cột D, bạn chưa đưa tên văn phòng vào (bạn mới đưa số lượng vào thôi, còn tên văn phòng bạn chưa đưa vào, bạn giúp mình chỉnh thêm 1 chút xíu chỗ tên văn phòng nữa là được nhé.
Cảm ơn bạn rất nhiều
Haha, quên!
Bạn dùng file này thay cho file cùng tên bài #29 và chép code này sang file kia của bạn.
 

File đính kèm

  • 3. FORM TONG HOP_LuuGiaPhuc_New.xlsm
    166.4 KB · Đọc: 23
Upvote 0
Haha, quên!
Bạn dùng file này thay cho file cùng tên bài #29 và chép code này sang file kia của bạn.
Đỉnh của chóp luôn, cảm ơn bạn nhiều lắm lắm luôn nha, code của bạn hay thật, nó giúp cho công việc trở nên nhẹ nhàng và nhanh hơn rất nhiều.
 
Upvote 0
Bổ sung cho sheet CCKD.
Chú ý: Trong file nguồn tại BMT1 bạn quên đổi tên sheet thành CCKD nên code báo lỗi. Do đó khi chạy dữ liệu thực nếu có báo lỗi không tìm được vùng địa chỉ nguồn CCKDxxxxx thì là lỗi này. Lúc đó, bấm Debug và dựa theo biến VPName lúc code đang dừng để tìm đúng thư mục sửa lại.
Chào anh Maika8008!
Em cũng gặp trường hợp cần tổng hợp dữ liệu từ nhiều file về 1 file giống trường hợp trên, nhưng của e khác là các file e để trong 1 thư mục và tên của các file sẽ khác nhau ở stt file ví dụ như chi phi 1, chi phi 2, chi phi 3, ....Anh viết code giúp e tổng hợp dữ liệu từ các file khác tên được ko ạ.
Em cảm ơn anh nhiều!
 
Upvote 0
Chào anh Maika8008!
Em cũng gặp trường hợp cần tổng hợp dữ liệu từ nhiều file về 1 file giống trường hợp trên, nhưng của e khác là các file e để trong 1 thư mục và tên của các file sẽ khác nhau ở stt file ví dụ như chi phi 1, chi phi 2, chi phi 3, ....Anh viết code giúp e tổng hợp dữ liệu từ các file khác tên được ko ạ.
Em cảm ơn anh nhiều!
1. Hà tiện xưng hô, hà tiện viết tiếng Việt là sugar you, you go you go nhé.
2. Nếu đã hết hà tiện thì tôi không thể nhìn mấy con chữ mà làm được. File đâu, dữ liệu đâu, bạn hỡi?
 
Upvote 0
1. Hà tiện xưng hô, hà tiện viết tiếng Việt là sugar you, you go you go nhé.
2. Nếu đã hết hà tiện thì tôi không thể nhìn mấy con chữ mà làm được. File đâu, dữ liệu đâu, bạn hỡi?
em gửi file dữ liệu, mục đích là tìm kiếm dữ liệu ở các file trong thư mục "Thang 6-2022" bỏ vào file dữ liệu "DS TONG",kết quả thể hiện ở cột L-TEN, với điều kiện tìm kiếm ở các file là MNV, nếu ko có MNV thì tìm kiếm theo CMND,ko thoả 2 điều kiện thì bỏ trống, nếu được chỉ cho em NV đó thuộc file nào trong thư mục.
(để kết qủa như vậy để e còn dò lại tên của file DS TONG và file chi tiết có khớp nhau ko? do file thì viết tiếng việt, file thì viết ko dấu)
Do file thực không thể cung cấp nên e làm file mẫu mỗi file chỉ có vài dòng, chứ file thực mổi file đến 500.000 dòng, mà có tận 50 file thì em vlookup thủ công từng file ko biết khi nào mới xong. Nhờ anh viết code giúp em.
Cám ơn anh rất rất nhiều....
 

File đính kèm

  • DS TONG.xlsx
    42.3 KB · Đọc: 9
  • Thang 06-2022.zip
    308 KB · Đọc: 16
Upvote 0
Web KT

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

Back
Top Bottom