Chép từ nhiều workbook sang 01 workbook khác. (1 người xem)

Liên hệ QC

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

changngoc

Thành viên chính thức
Tham gia
27/4/09
Bài viết
93
Được thích
0
Chào các Anh/ Chị,

Mình có một yêu cầu nhờ các AC giúp như sau:
- Mình có 04 file tương ứng với 04 người.
- File tổng hợp >tại sheet 'data' > nhấn vào tên của người nào ( có thể làm một button) thì dữ liệu của file người tương ứng đổ qua. Mõi lần ấn thì cứ chép đè vào).

Thanks.
 

File đính kèm

Lần chỉnh sửa cuối:
Dữ liệu của bạn có vẽ không thật nên không biết có sử dụng được hay không. Bạn bấm vào nút và chon những files nào cần cập nhật là được rồi.
 

File đính kèm

Upvote 0
Dữ liệu của bạn có vẽ không thật nên không biết có sử dụng được hay không. Bạn bấm vào nút và chon những files nào cần cập nhật là được rồi.

Hi anh,

Cái nút cập nhật của anh thật là hay và tiện nữa. Chỉ cần ấn và chọn file cần cập nhật qua thay vì phải tạo từng nút gán áp vào từng file kia. Rất hay.

Em định dùng file anh để phát triển file công việc của mình, nhưng chưa làm được. Nhu cầu của em như file đính kèm. Anh xem và làm giúp em. Cụ thể

- file nhân viên gửi về theo định kỳ có 2 sheet: 'nhap' và 'data' => dữ liệu luôn thay đổi.
- file tổng hợp gồm 2 sheet 'tong hop' và 'data'
Yêu cầu:
- Tại file tổng hợp > sheet data > ấn nút để cập nhật số liệu từng nhân viên từ file nhân viên > sheet 'data' đổ qua.
- Tại file tổng hợp > sheet tổng hợp > ấn nút để cập nhật số liệu từng nhân viên từ file nhân viên > sheet 'nhap' đổ qua ( dữ liệu của từng nhân viên nối tiếp nhau)

Anh xem file em gửi kèm sẽ dễ hình dung hơn.

Cảm ơn anh.
 

File đính kèm

Upvote 0
Lúc đầu gởi file có dữ liệu đúng thì chỉ làm 1 lần thôi

Bạn xem files
 

File đính kèm

Upvote 0
Hi anh,

- Sheet data thì đã đáp ứng yêu cầu.
- Sheet 'tong hop' thì chưa đáp ứng vì: sheet 'nhap' của file nhân viên thì dữ liệu (số dòng) nhiều ít khác nhau, tức số dòng có thể từ 1 đến hàng trăm dòng. Hiện tại chỉ có thể update có 3 dòng. Anh edit lại giúp em.

Thanks.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn kiểm tra kỹ lại đi. Mình lấy đk theo côt A của sheet nhap, nếu mã KH không tồn tai thì sẽ tư động thêm vào sheet tong hop mà. Hoặc bạn đưa file có dữ liệu gần đúng với du lieu thật thì sẽ chắc ăn hơn
 
Lần chỉnh sửa cuối:
Upvote 0
Giả sử đang có dữ liệu như trong sheet 'tong hop'
NV A, B, C gửi về có dữ liệu mới như trong sheet 'nhap'. Giờ ấn vào cập nhật thì dữ liệu của NV không đổ về hết mà chỉ đổ về có 03 dòng. Anh Hải kiểm tra là sẽ thấy ngay. (file đính kèm)

Lưu ý: file nhân viên được gửi về mõi tuần để tổng hợp số liệu mới.

Thanks.
 

File đính kèm

Upvote 0
Bạn xem coi đúng ý chưa, file này sẽ xóa hết du liệu cũ và cập nhật tât cả file mới
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Và thêm 1 file nữa đây. File này có thể câp nhât những nhân viên nào bạn muốn cập nhât thông tin

PS: trong code có 1 dòng lệnh Msgbox dk, nếu không thích thì xóa đi nhé
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Nếu dữ liệu của file nguồn và file đích của em bắt đầu từ vùng [A27] đến [R] và cột nhân viên chuyển sang cột [C] thì đoạn code bên dưới em edit lại sót chổ nào ạ. Thanks.

....
For Y = 1 To UBound(X)
Workbooks.Open X(Y)
dk = ActiveWorkbook.Sheets("nhap").[c65536].End(3).Value
MsgBox dk
Range([a27, [r65536].End(3)).AutoFilter 2, dk
Rows("27:3000").Delete
AutoFilterMode = 0
With ActiveWorkbook
With .Sheets("nhap")
.Range(.[a27, .[r65536].End(3)).Copy [a65536].End(3).Offset(1)
End With
.Close False
End With
Next
Range([a27], [r65536].End(3)).Sort key1:=[c27], header:=1
MsgBox " Da Cap Nhat Xong " & UBound(X) & " Files "
Application.ScreenUpdating = 1
 
Upvote 0
Nếu dữ liệu của file nguồn và file đích của em bắt đầu từ vùng [A27] đến [R] và cột nhân viên chuyển sang cột [C] thì đoạn code bên dưới em edit lại sót chổ nào ạ. Thanks.

....
For Y = 1 To UBound(X)
Workbooks.Open X(Y)
dk = ActiveWorkbook.Sheets("nhap").[c65536].End(3).Value
MsgBox dk
Range([a27, [r65536].End(3)).AutoFilter 2, dk
Rows("27:3000").Delete
AutoFilterMode = 0
With ActiveWorkbook
With .Sheets("nhap")
.Range(.[a27, .[r65536].End(3)).Copy [a65536].End(3).Offset(1)
End With
.Close False
End With
Next
Range([a27], [r65536].End(3)).Sort key1:=[c27], header:=1
MsgBox " Da Cap Nhat Xong " & UBound(X) & " Files "
Application.ScreenUpdating = 1
Code thi đã có sẵn rồi, bạn đọc từng dòng, hiểu nó rồi thì tự nhiên sẽ biết cách edit thôi.
Cày nhiều thì tự nhiên sẽ ngộ ra thôi
 
Upvote 0
hihi. bí cái sheet 'tong hop'. nhờ thầy cứu giúp để so sánh 2 cách => hiểu lệnh nhanh hơn. :)
 

File đính kèm

Upvote 0
Bạn sai ở câu này
Range([a27], [h65536].End(3)).AutoFilter 3, dk
 
Upvote 0
Bạn sai ở câu này
Range([a27], [h65536].End(3)).AutoFilter 3, dk

Có một lỗi test kỹ mới thấy là: Nếu chọn nhiều file nhân viên thì okies. Nhưng sau đó:
- Hoặc nếu update lại của nhân viên B thì dữ liệu ở hàng đầu tiên của nhân viên A bị xoá.
- Hoặc nếu update lại của nhân viên A thì dữ liệu ở dòng đầu tiên của nhân viên B bị đẩy lên trên dữ liệu của nhân viên A.
 
Upvote 0
Thử lại code xem sao, hinh như còn sai vài chỗ nữa
 

File đính kèm

Upvote 0
1. Lại làm phiền anh thêm 01 lần nữa là khi mở rộng với tới cột Q thì okies còn tới cột R thì nó copy không đúng (chỉ copy đến tiêu đề).
2. Trong sheet dùng nhiều công thức và định tên, vậy khi update có cách nào cho nó đừng hiển thị hộp thông báo ko.
3. Khi update thì công thức dòng Total mõi lần nhảy mõi khác, không sum 2000 cố định được.

Anh sắp xếp t/g xem giúp em ạ.
thanks anh.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Trong code có dòng lệnh: Msgbox dk
Xóa dòng này sẽ không còn xuất hiện thông báo nữa.
Còn những vấn đề khác thì mình không hiểu vì file bạn up lên mình không xem được. Mình sử dụng Excel 2003 nhé.
PS: File bạn gởi khác quá nhiều so với yêu cầu ban đầu, như vậy sẽ khó làm chính xác lắm
 
Upvote 0
Em gửi lại anh. Anh xem file tổng hợp nhé.
Thực tế em chỉ mở rộng thêm cột, cấu trúc không thay đổi. Em nghĩ là ráp vào file thực tế sẽ ổn nhưng phát sinh nhiều quá.

thanks anh.
 

File đính kèm

Upvote 0
1. Do bạn không hiểu rõ các dòng code nên edit sai nhiều
2. Nếu dùng công thức thì phải kết hợp với offset mới không sai giá tri. Tuy nhiên đã viết code thì viết code luôn cho rồi.
Hy vọng lần này đã đáp ứng được yêu cầu của bạn. Sau bài này mình lại có thêm tí kinh nghiệm

Thân
 

File đính kèm

Upvote 0
Cảm ơn anh đã hướng dẫn tận tình. Rất hữu ích.

Thân chào anh,
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom