Đồng bộ dữ liệu từ 2 file excel qua mạng LAN

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài
Theo tôi nghĩ, File nguồn cho thể dựa vào sự kiện OnChange để gọi và chạy macro của file đích (thay vì file đích phải chạy timer để kiểm tra onChange). Macro file đích là cập nhật dữ liệu.
Tại sao file nguồn phải đóng mới ghi dữ liệu được?
Anh giúp dùm em viết sự kiện Onchange để gọi và chạy macro để cập nhật dữ liệu
Em cám ơn và xin hậu tạ anh
Bài đã được tự động gộp:

Excel có thể kết nối vào cơ sở dự liệu để lấy dữ liệu liên tục mỗi khi có dữ liệu mới trên cơ sở dữ liệu được không các anh, em cám ơn
 
Anh giúp dùm em viết sự kiện Onchange để gọi và chạy macro để cập nhật dữ liệu
Em cám ơn và xin hậu tạ anh
Bài đã được tự động gộp:

Excel có thể kết nối vào cơ sở dự liệu để lấy dữ liệu liên tục mỗi khi có dữ liệu mới trên cơ sở dữ liệu được không các anh, em cám ơn
Theo yêu cầu của bạn tôi thấy dùng Power Query đỡ mất công code và nhanh, gọn :) ..
(Thay vì phải dùng ADBODB kết nối, kiểm tra có thay đổi không, copy dữ liệu ghi đè...)
Đối với dạng tự động đồng bộ dữ liệu này thì có dùng cơ sở dữ liệu nào (Access, SQL Server...) đều phải có cái bước Refresh/ Requery dữ liệu thì nó mới cập nhật chứ mở file lên rồi để đó thì nó không tự động cập nhật dữ liệu khi có thay đổi dữ liệu nguồn đâu.

Tôi có làm file mẫu test thử đính kèm bên dưới. Cách thức xử lý là ở FileDich, định kỳ (chạy timer) Refresh dữ liệu từ kết nối của Power Query (PQ).
- Thực ra trong PQ có sẳn thiết lập định kỳ làm mới (đồng bộ) dữ liệu nhưng tôi không dùng mà dùng code VBA là để thêm tính năng "Dừng việc đồng bộ" theo ý muốn chứ để nó chạy hoài đôi khi cũng phiền lúc làm việc.
- Code VBA chỉ cần Refesh cái PQ, không cần code kiết dùng thư viện ADODB.
- Từ cái Sheet dữ liệu của PQ đó bạn có thể Vlookup gì đó cho bảng dữ liệu của bạn.
- Một lưu ý trong việc khai báo đường dẫn qua mạng LAN là tôi dùng cái tên PC luôn chứ không dùng địa chỉ IP. Vì nếu Cty cấp phát IP động thì khi khởi động lại máy nó lại nhảy IP khác --> kết nối không còn đúng nữa.

vVmzTqel.png


Code thì chỉ đơn giản mấy dòng như hình:

yECKzuHl.png



synPQ.gif
 

File đính kèm

  • FileNguon.xlsx
    8.3 KB · Đọc: 5
  • FileDich.xlsm
    26.4 KB · Đọc: 5
Lần chỉnh sửa cuối:
Theo yêu cầu của bạn tôi thấy dùng Power Query đỡ mất công code và nhanh, gọn :) ..
(Thay vì phải dùng ADBODB kết nối, kiểm tra có thay đổi không, copy dữ liệu ghi đè...)
Đối với dạng tự động đồng bộ dữ liệu này thì có dùng cơ sở dữ liệu nào (Access, SQL Server...) đều phải có cái bước Refresh/ Requery dữ liệu thì nó mới cập nhật chứ mở file lên rồi để đó thì nó không tự động cập nhật dữ liệu khi có thay đổi dữ liệu nguồn đâu.

Tôi có làm file mẫu test thử đính kèm bên dưới. Cách thức xử lý là ở FileDich, định kỳ (chạy timer) Refresh dữ liệu từ kết nối của Power Query (PQ).
- Thực ra trong PQ có sẳn thiết lập định kỳ làm mới (đồng bộ) dữ liệu nhưng tôi không dùng mà dùng code VBA là để thêm tính năng "Dừng việc đồng bộ" theo ý muốn chứ để nó chạy hoài đôi khi cũng phiền lúc làm việc.
- Code VBA chỉ cần Refesh cái PQ, không cần code kiết dùng thư viện ADODB.
- Từ cái Sheet dữ liệu của PQ đó bạn có thể Vlookup gì đó cho bảng dữ liệu của bạn.
- Một lưu ý trong việc khai báo đường dẫn qua mạng LAN là tôi dùng cái tên PC luôn chứ không dùng địa chỉ IP. Vì nếu Cty cấp phát IP động thì khi khởi động lại máy nó lại nhảy IP khác --> kết nối không còn đúng nữa.

vVmzTqel.png


Code thì chỉ đơn giản mấy dòng như hình:

yECKzuHl.png



View attachment 297503
Em cám ơn anh, để e test thử, sẽ báo kết quả lại a
 
Theo yêu cầu của bạn tôi thấy dùng Power Query đỡ mất công code và nhanh, gọn :) ..
(Thay vì phải dùng ADBODB kết nối, kiểm tra có thay đổi không, copy dữ liệu ghi đè...)
Đối với dạng tự động đồng bộ dữ liệu này thì có dùng cơ sở dữ liệu nào (Access, SQL Server...) đều phải có cái bước Refresh/ Requery dữ liệu thì nó mới cập nhật chứ mở file lên rồi để đó thì nó không tự động cập nhật dữ liệu khi có thay đổi dữ liệu nguồn đâu.

Tôi có làm file mẫu test thử đính kèm bên dưới. Cách thức xử lý là ở FileDich, định kỳ (chạy timer) Refresh dữ liệu từ kết nối của Power Query (PQ).
- Thực ra trong PQ có sẳn thiết lập định kỳ làm mới (đồng bộ) dữ liệu nhưng tôi không dùng mà dùng code VBA là để thêm tính năng "Dừng việc đồng bộ" theo ý muốn chứ để nó chạy hoài đôi khi cũng phiền lúc làm việc.
- Code VBA chỉ cần Refesh cái PQ, không cần code kiết dùng thư viện ADODB.
- Từ cái Sheet dữ liệu của PQ đó bạn có thể Vlookup gì đó cho bảng dữ liệu của bạn.
- Một lưu ý trong việc khai báo đường dẫn qua mạng LAN là tôi dùng cái tên PC luôn chứ không dùng địa chỉ IP. Vì nếu Cty cấp phát IP động thì khi khởi động lại máy nó lại nhảy IP khác --> kết nối không còn đúng nữa.

vVmzTqel.png


Code thì chỉ đơn giản mấy dòng như hình:

yECKzuHl.png



View attachment 297503
Khi em sửa nội dung FileNguon.xlsx lại là dạng dữ liệu bât kỳ thì không lưu được

1702431943280.png


File nay đồng bộ với file khác như thế nào a, em change được đường dẫn tới FileNguon.xlsx nhưng khi thay đổi đường dẫn thì báo lỗi

1702432045594.png tại FileDich.xlsx


em muốn được đồng bộ tới 1 file xlsx bất kỳ trên đường dẫn mạng, mong anh hướng dẫn em test, em xem macro chỉnh sửa thời gian cập nhật được


1702432201232.png

em mong muốn chỉ cập nhật dữ liệu về 1 cột A của file nguồn để cho nhẹ khi cập nhật,

1702432401902.png
Bài đã được tự động gộp:

Anh giúp em làm FileDich tùy ý không chọn hiển thị "Col_1", nội dung cập nhật tùy ý em

em dốt code mong anh thông cảm
 
Lần chỉnh sửa cuối:
Khi em sửa nội dung FileNguon.xlsx lại là dạng dữ liệu bât kỳ thì không lưu được

File nay đồng bộ với file khác như thế nào a, em change được đường dẫn tới FileNguon.xlsx nhưng khi thay đổi đường dẫn thì báo lỗi

View attachment 297522 tại FileDich.xlsx

em muốn được đồng bộ tới 1 file xlsx bất kỳ trên đường dẫn mạng, mong anh hướng dẫn em test, em xem macro chỉnh sửa thời gian cập nhật được

em mong muốn chỉ cập nhật dữ liệu về 1 cột A của file nguồn để cho nhẹ khi cập nhật,

Bài đã được tự động gộp:

Anh giúp em làm FileDich tùy ý không chọn hiển thị "Col_1", nội dung cập nhật tùy ý em

em dốt code mong anh thông cảm
Căng nhỉ. Cái này liên quan đến Power Query chứ không dính code VBA gì cả. Trong code chỉ thay đổi mỗi cái tên "Connection" nếu bạn tạo connection khác thôi.
Giờ bạn tạo cái Query Connection mới theo đúng file dữ liệu nguồn của bạn thôi chứ sửa chi khi đã không biết gì về nó.
- Trong FileDich, vào PQ tạo kết nối tới FileNguon thực tế của bạn. Chọn cột mà bạn muốn --> Load.
- Cái Table do PQ tạo ra bạn để riêng nó trong sheet dữ liệu, nó chỉ là trung gian, còn cái bảng biểu mà bạn xử lý có công thức gì đó thì liên kết để Table của PQ (Vlooklup, paste link...)
- Sau khi tạo Query mới thì vô đây lấy tên Query để sửa trong code VBA.

CleanShot 2023-12-13 at 11.19.48@2x.jpg. CleanShot 2023-12-13 at 11.21.13@2x.jpg
 
anh cho em xin thông tin liên hệ trực tiếp với em cám ơn, em không chat hay mail với anh trong diễn đàn được
 
Web KT
Back
Top Bottom