Code VBA giúp tự động gộp và copy có điều kiện nhiều file thành 1 file tổng hợp báo cáo

quangtro

Thành viên mới
Tham gia ngày
26 Tháng sáu 2020
Bài viết
21
Được thích
0
Điểm
13
Tuổi
30
Ah Sorry cái dzụ cost>0...
còn cái cost2; Cost3 là vì cái user của bạn lúc viết in lúc không viết in nên nó bị sai khi so sanh thôi!, nhưng mình viết code lại, cho dù in hay không in thì cũng đúng ....
cái trùng hay không trùng Data với cost4 bạn cho ví dụ đi mình viết cho nha.
Bạn coi file nha...
Vẫn chưa đúng bạn ơi.
- Kết quả đúng phải giống như cột cost2_đúng, cost3_đúng trong đính kèm mà mình đã dùng hàm so sánh.
- Khi nhấn "Get List File" -< hiện File Dialog -> chọn folder chứa các file cần lấy dữ liệu> cho nhìn thấy và chọn file cần lấy dữ liệu lun được không
- Cái cost4 nghĩa là khi dữ liệu được lấy về. Ứng với mỗi dòng nếu tìm 2 dòng giống nhau thì cột cost4 ở dòng thứ 2 sẽ lấy giá trị cột " unit price" ở dòng tương ứng đó. Tương tự phát hiện 3 dòng thì cột cost4 ở dòng thứ 2 và 3 sẽ lấy giá trị cột " unit price" ở dòng tương ứng đó.
- Cái trùng hay không trùng là khi mình nhấn "Get List File" và "Collect Data" 1 lần rồi. Khi bấm và chọn file đó 1 lần nữa thì nó sẽ báo đã nhập về rồi nên không copy về nữa ( cái này không làm cũng được).
- Nếu được thì làm thêm 1 cái button code để xóa dữ liệu được đỗ về gần nhất.
 

File đính kèm

thnghiachau

Thành viên tiêu biểu
Tham gia ngày
14 Tháng chín 2009
Bài viết
705
Được thích
560
Điểm
860
Vẫn chưa đúng bạn ơi.
- Kết quả đúng phải giống như cột cost2_đúng, cost3_đúng trong đính kèm mà mình đã dùng hàm so sánh.
bạn coi lại kỹ đi...
cái User / ID tối lấy theo yêu cầu đầu tiên là nếu có cột thì lấy theo cột, không thì lấy phần trước @ của địa chỉ mail mà???
nên mấy cái bạn thấy không đúng là tôi lấy trước @ của Email ah

- Cái cost4 nghĩa là khi dữ liệu được lấy về. Ứng với mỗi dòng nếu tìm 2 dòng giống nhau thì cột cost4 ở dòng thứ 2 sẽ lấy giá trị cột " unit price" ở dòng tương ứng đó. Tương tự phát hiện 3 dòng thì cột cost4 ở dòng thứ 2 và 3 sẽ lấy giá trị cột " unit price" ở dòng tương ứng đó.
- Cái trùng hay không trùng là khi mình nhấn "Get List File" và "Collect Data" 1 lần rồi. Khi bấm và chọn file đó 1 lần nữa thì nó sẽ báo đã nhập về rồi nên không copy về nữa ( cái này không làm cũng được).
Cái này này thì tôi không biết dc trừ phi bạn cho ví dụ minh họa rõ ráng mà thôi!!!

- Khi nhấn "Get List File" -> hiện File Dialog -> chọn folder chứa các file cần lấy dữ liệu> cho nhìn thấy và chọn file cần lấy dữ liệu lun được không
OK tôi đã chỉnh lại theo bạn muốn chọn file.
xem file đính kèm nha
 

File đính kèm

Lần chỉnh sửa cuối:

quangtro

Thành viên mới
Tham gia ngày
26 Tháng sáu 2020
Bài viết
21
Được thích
0
Điểm
13
Tuổi
30
bạn coi lại kỹ đi...
cái User / ID tối lấy theo yêu cầu đầu tiên là nếu có cột thì lấy theo cột, không thì lấy phần trước @ của địa chỉ mail mà???
nên mấy cái bạn thấy không đúng là tôi lấy trước @ của Email ah
Mình không hiểu ý của bạn luôn. 2 người hiểu ý nhau thôi mà đã rắc rối rồi nhỉ.:)))
Mình không biết bạn lấy giá trị so sánh sao nhưng kết quả ra không đúng rồi.
- Nhưng chỉ xét cột user name/id sau khi lấy dữ liệu về để so sánh với sheet "staff" nhé. kết quả cột cost2,cost3 phải đúng như "cost2_đúng", "cost3_đúng" mới đúng nhé.
- Còn cột User name/ID mình có nói lấy dữ liệu giá trị cột User name ở các file con. Nếu file con nào không có cột "user name" thì lấy giá trị ở cột email. Nhưng chỉ lấy giá trị trước "@". vd : loi.dangvan@bc" thì chỉ lấy "loi.dangvan".
- Ngoài ra mình có thêm một cột " PC Name" ở file tổng để chứa giá trị PC name ở các file con ( nếu có).
Đính kèm là code của bạn Maika8008 mà mình đã tùy biến lại giá trị cần lấy. Bạn tham khảo nhé
 

File đính kèm

thnghiachau

Thành viên tiêu biểu
Tham gia ngày
14 Tháng chín 2009
Bài viết
705
Được thích
560
Điểm
860
- Nhưng chỉ xét cột user name/id sau khi lấy dữ liệu về để so sánh với sheet "staff" nhé. kết quả cột cost2,cost3 phải đúng như "cost2_đúng", "cost3_đúng" mới đúng nhé.
- Còn cột User name/ID mình có nói lấy dữ liệu giá trị cột User name ở các file con. Nếu file con nào không có cột "user name" thì lấy giá trị ở cột email. Nhưng chỉ lấy giá trị trước "@". vd : loi.dangvan@bc" thì chỉ lấy "loi.dangvan".
bạn coi lại cột User / ID đi
2005046016Autodesk SoftwareVNM-SMJOPC116chung.phamanh@bcd
1,500​
1
1,500​
1,500​
trong sheet"Staff" bạn có gì là "VNM-SMJOPC116" này không???????????????
nó chỉ toàn là phần trước @ của mail thôi!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
và tôi không lấy "VNM-SMJOPC116" kiểm tra là lấy trước @ Email kiểm tra!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Bài đã được tự động gộp:

- Ngoài ra mình có thêm một cột " PC Name" ở file tổng để chứa giá trị PC name ở các file con ( nếu có).
Thiệt hết nói nỗi với bạn luôn... người ta làm đã đời tới giờ mới nói có thêm cột trong sheet "Data"...
thôi...tôi làm cho bạn cái khung rùi... bạn cứ tùy biến đi nha.
 
Lần chỉnh sửa cuối:

quangtro

Thành viên mới
Tham gia ngày
26 Tháng sáu 2020
Bài viết
21
Được thích
0
Điểm
13
Tuổi
30
bạn coi lại cột User / ID đi
2005046016Autodesk SoftwareVNM-SMJOPC116chung.phamanh@bcd
1,500​
1
1,500​
1,500​
trong sheet"Staff" bạn có gì là "VNM-SMJOPC116" này không???????????????
nó chỉ toàn là phần trước @ của mail thôi!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
và tôi không lấy "VNM-SMJOPC116" kiểm tra là lấy trước @ Email kiểm tra!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Bạn ơi. bất đắc dĩ mình lấy "VNM-SMJOPC116" ở User name/ID là do file con "2005 MR-001 (Autodesk Software)" không có cột "user name" nên ban đầu mình kêu lấy tạm giá trị ở cột "PC Name" trong file "2005 MR-001 (Autodesk Software)". Sau này mình mới mới kêu lấy giá trị ở cột Email trong file "2005 MR-001 (Autodesk Software)" cho User name/ID ở file tổng nhưng chỉ lấy giá trị trước "@".

Nếu được bạn cho mình xin add zalo để mình nói rõ hơn chứ cứ viết qua lại 2 người không thật sự hiểu nhau để đạt kết quả đúng.
-trong sheet"Staff" bạn có gì là "VNM-SMJOPC116" này không???????????????
=> trong sheet "staff" không có "VNM-SMJOPC116 " thì khi so sánh với dữ liệu cột user name/id hiện tại thì cost2 để trống, cost3 lấy giá trị cột unit price.
 

thnghiachau

Thành viên tiêu biểu
Tham gia ngày
14 Tháng chín 2009
Bài viết
705
Được thích
560
Điểm
860
Bạn ơi. bất đắc dĩ mình lấy "VNM-SMJOPC116" ở User name/ID là do file con "2005 MR-001 (Autodesk Software)" không có cột "user name" nên ban đầu mình kêu lấy tạm giá trị ở cột "PC Name" trong file "2005 MR-001 (Autodesk Software)". Sau này mình mới mới kêu lấy giá trị ở cột Email trong file "2005 MR-001 (Autodesk Software)" cho User name/ID ở file tổng nhưng chỉ lấy giá trị trước "@".

Nếu được bạn cho mình xin add zalo để mình nói rõ hơn chứ cứ viết qua lại 2 người không thật sự hiểu nhau để đạt kết quả đúng.
-trong sheet"Staff" bạn có gì là "VNM-SMJOPC116" này không???????????????
=> trong sheet "staff" không có "VNM-SMJOPC116 " thì khi so sánh với dữ liệu cột user name/id hiện tại thì cost2 để trống, cost3 lấy giá trị cột unit price.
tôi nói với bạn:
1/ sức người có hạn, bạn không thể lúc nói này lúc nói khác, có thêm cái này có thêm cái khác bất cứ lúc nào
2/ người làm code, mỗi lần chỉnh không phải lúc nào cũng đơn giản đâu!, nếu nó đụng tới cái "xương chính" thì coi như phải ngồi làm lại từ đầu.
3/ người giúp bạn không phải ai cũng rảnh mà theo bạn suốt đâu.
4/ tôi đã cố gắng theo bạn mà bạn lại "thật sự không rõ vấn đề của mình" mặt dù tôi đã hỏi kỹ đủ thứ... hỏi tới bạn nói là "hỏi thì nhiều mà code đâu không thấy!!!" ???? tôi hỏi để bạn rõ vấn đề của bạn mà bạn còn chưa dc nữa đây.

vì thế ... xin lỗi tôi không có thời gian mà đợi bạn thay cái này rùi đế cái khác nữa đâu nha.
Vì thế theo cái khung mà tôi làm cho bạn, bạn hãy tự "tùy biến" đi nhá!
Chào tạm biệt
 

quangtro

Thành viên mới
Tham gia ngày
26 Tháng sáu 2020
Bài viết
21
Được thích
0
Điểm
13
Tuổi
30
tôi nói với bạn:
1/ sức người có hạn, bạn không thể lúc nói này lúc nói khác, có thêm cái này có thêm cái khác bất cứ lúc nào
2/ người làm code, mỗi lần chỉnh không phải lúc nào cũng đơn giản đâu!, nếu nó đụng tới cái "xương chính" thì coi như phải ngồi làm lại từ đầu.
3/ người giúp bạn không phải ai cũng rảnh mà theo bạn suốt đâu.
4/ tôi đã cố gắng theo bạn mà bạn lại "thật sự không rõ vấn đề của mình" mặt dù tôi đã hỏi kỹ đủ thứ... hỏi tới bạn nói là "hỏi thì nhiều mà code đâu không thấy!!!" ???? tôi hỏi để bạn rõ vấn đề của bạn mà bạn còn chưa dc nữa đây.

vì thế ... xin lỗi tôi không có thời gian mà đợi bạn thay cái này rùi đế cái khác nữa đâu nha.
Vì thế theo cái khung mà tôi làm cho bạn, bạn hãy tự "tùy biến" đi nhá!
Chào tạm biệt
Ok bạn. Dù sao cũng cảm ơn sự nhiệt tình của bạn.. Mình dùng code bạn Maika8008 cũng được rồi. chỉ lấy dữ liệu về sau đó dùng hàm so sánh với sheet "staff" để lấy giá trị cho cost2,cost3.
Mình thấy phần code "get list file" của bạn cũng khá hay mình sẽ tìm hiểu và kết hợp với code của bạn Maika8008 xem có hỗ trợ cho nhau được không. Chào bạn
 
Top Bottom