Giúp Code: lấy số liệu từ Sheet Tổng hợp và Sheet có liên quan.
Em chào Thầy cô & anh chị!
Xin vui lòng viết code giúp em: Trích dữ liệu từ Sheet Tổng hợp và Sheet có liên quan
Em có mô tả trong Sheet Yeucau
Em cảm ơn!
/(/ếu là mình, mình sẽ làm vầy:
Đổi tên trang 'T00' thành 'Ton' để lưu trữ sản lượng tồn của mọi tháng (Mỗi tháng 2 cột), bắt đầu từ T00 như bạn.
Các trang sau T01 bỏ đi; Trang T01 chuyển thành tên 'Report'
Khi nào bạn cần số liệu tháng nào thể hiện trên Report thì cho chạy macro từ CF có trên trang Report;
(/ì bạn ít nhiều đã biết VBA, nên mình khuyên bạn thế này:
Nếu dữ liệu CQ bạn đồ sộ thì fải nhờ đến mảng để xử lí, còn không thì bạn thử dùng AdvancedFillter xem sao;
Mỗi cách có ưu khuyết của nó; ví như xài mảng thì bạn cần học thêm để biết về cách xài mảng (Chẳng lẻ mỗi thay đổi chu trình QL bạn lại lên GPE nhờ chỉnh sửa sao?)
Xài AdvancedFilter tuy có chậm như dễ nắm bắt & bạn dễ chủ động trong chỉnh sửa, bảo trì & fát triển;
Sau đó có thêm thời gian thì nắm thêm cách xài mảng . . . .
Hi vọng không cảm thấy fiền lòng!
Cảm ơn sự góp ý của bạn.
Trước đây mình cũng có ý tạo một Trang Report, khi nào cần chỉ lọc số liệu "Từ ngày Đến ngày" là ra kết qủa, nhưng vì mỗi tháng còn fải lập định mức, so sánh giá vốn doanh thu của từng mặt hàng … để trình cho các sếp xem, vì các sếp muốn xem trực diện của từng tháng để so sánh hay làm gì đó … Nên mình ý tưởng lập thành các Sheet T01, …T12
Số liệu cũng khá nhiều, mình cũng đã viết code nhưng dựa trên công thức nên chạy khá chậm. Vì thế Nhờ thầy cô & anh chị viết giúp code này
Mình cũng đang lò mò code dạng mảng, nên cũng muốn các Thầy và anh chị giúp, và cũng từ đây mình có thể áp dụng nó vào một số bài thực tế khác có dạng tương tự
Em cảm ơn!
———————
P/S: Sự góp ý chính đáng có chi là fiền!
Thấy dạng bài này cũng "khoái" nhưng không phải trong nghề nên còn lờ mờ quá.
Để xem kỹ lại từng yêu cầu xem sao.
Thầy xem mà chưa hiểu chỗ nào thì em sẽ giải thích rõ ràng hơn
Em cảm ơn!
Bài này chắc cũng không khó lắm nhưng chưa hiểu rõ yêu cầu nên chưa biết khởi động thế nào
Số lượng dòng có thay đổi hay không? Dữ liệu từ cột A đến D có thay đổi không?
Nếu dựa vào công thức để viêt code chắc đơn giản thôi.
Bài này không khó, chỉ thử thách lòng kiên nhẫn của chúng ta thôi
Nếu xử lý trực tiếp trên sheet thì….dễ ẹct, nhưng nếu chơi mảng thì đúng là…..tra tấn
Anh Ba Tê & chú Quang Hải hổng biết làm kế toán dzồi, xem mình làm kế toán nè
Trong sheet tổng hợp phải đầy đủ các Mã Vật tư nhe bồ tèo, hổng đủ, code nó "tèo" dzáng chịu
Mình copy cái bảng qua kế bên để kiểm "cha" nhé, kết quả ở vùng A ==> N, bấm Ctrl + W chạy code
Hihi, viết xong cóc dám nhìn lại code, ghê quá. Kế toán rắc rối thật. Híc, xài được thì xài, còn không thì thôi, mình ngồi buồn viết đại, đừng hỏi tiếp
Thân
www.giaiphapexcel.com/diendan/threads/gi%C3%BAp-code-l%E1%BA%A5y-s%E1%BB%91-li%E1%BB%87u-t%E1%BB%AB-sheet-t%E1%BB%95ng-h%E1%BB%A3p-v%C3%A0-sheet-c%C3%B3-li%C3%AAn-quan.74570/
Khóa học Power PI – Ứng dung trong Nhân sự
TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...
Xem khóa học
Hihi, bài này bắt đầu vui rồi đây
Gần hiểu rồi
Bi giờ túm lại ( lần 1) nhé
1- "Cái sườn" ( lời của anh Ba Tê) là do bạn nhập
2- Sườn của tháng sau phải bằng hoặc nhiều hơn tháng trước, đương nhiên_ nhắc lại thôi ( nhưng lỡ tháng trước tồn bằng không (zero) vậy có mang qua tháng sau không Trời ??? )
Công việc:
1)- Lấy tồn tháng trước bỏ vào tháng sau
2)- Dò xuất nhập ở sheet TH bỏ vào sheet hiện hành
3)- Tính toán "lung sờ tung" theo một đống công thức của bạn
Theo mình, có 2 yêu cầu:
1– Trong sheet TH phải có đủ các Mã hàng hóa (H00..,L00….vv..) xuất hiện trong cái "sườn" của bạn theo từng tháng_ tức là trong bảng tổng hợp phải có đủ các Mã hàng hóa của Tồn đem qua, Xuất Nhập trong tháng_ "thú dzị": trong bài của bạn không có Mã D001 trong tháng T01 ( nếu không sẽ cực hơn tý tẹo )
2– Công ty bạn có 4 cái kho đó hay nhiều hơn ???? Nếu nhiều hơn thì phải có cái bảng chứa những em này (152 ==> KHO NGUYÊN VẬT LIỆU, 1561==>KHO HÀNG HÓA, 15 gì đó==> KHO "GÌO ĐÍ"……)
Híc, chắc phải túm lại vài lần & kiên nhẫn lắm mới hy vọng xử "em" này được. Cứ "Nhập Xuất Tồn" ….đau cả đầu
Thân
Tui không phải dân kế toán, nhưng với "công chuyện" của Excel thì tôi nghĩ như vầy:
_ Cửa hàng tui bán 100 mặt hàng.
_ Mỗi thàng tui thống kê 100 mặt hàng này, thằng nào giao dich bi nhiêu, bi nhiêu? (thằng nào không giao dịch trong tháng đó bỏ qua, không thống kê, không cho nó bằng 0, hổng phải là thống kê.)
_ Làm những chuyện không giống ai, híc! khó làm lắm!
(dù là cò già vẫn làm được)
_
Chắc ý bác Ba Tê muốn là các mục cột A B C D ở sheet kết quả T01 T02,…, là giống nhau và bao hàm tất cả các khoản mục lớn con và giống nhau, khi đó nếu khoản mục nào không có phát sinh trong tháng thì để 0 cái nào có thì đền vào
==> nếu được thế sẽ code nhanh hơn,
——————
bạn nên cho biết rõ phần cột A B C D – ở các sheet Kết quả T01,T02,… vv Thì là do bạn nhập vào trước hay là muốn code tự động liệt kê ra
-(dĩ nhiên T00 hoặc của tháng trước tháng bắt đầu phải luôn có sẵn cả số liệu)
+ Nếu bạn nhập trước thì phải đảm bảo list đủ các khoản mục phát sinh trong tháng đó
+ Nếu muốn code tự động – thì cần phải chỗ nào cung cấp dữ liệu vào là các tên cụ thể cho cột C (hay là để trống.
Nếu thế thì code của [URL='https://www.giaiphapexcel.com/forum/showthread.php?74570-Gi%C3%BAp-Code-l%E1%BA%A5y-s%E1%BB%91-li%E1%BB%87u-t%E1%BB%AB-Sheet-T%E1%BB%95ng-h%E1%BB%A3p-v%C3%A0-Sheet-c%C3%B3-li%C3%AAn-quan&p=457480#post457480'%5Dbác concogia ở trên #8 có thể ứng dụng được
bạn đã thử chưa, và còn muốn khác thế nào nữa? hay còn tồn tại gì?
Hihi, hiểu thêm tý tẹo
Thử bài này, không biết dữ liệu thật nhiều hông, làm kết quả trên sheet, phải làm đúng đã, có gì tính sau
Cái này vẫn chưa đủ bạn vodoi2x ạ vì những mã có trong cái sườn của bạn í mà cóc có trong bảng tổng hợp mới……. tèo chứ. Híc, kế với chả toán, chỉ tổ nhức đầu, Ba Tê trốn đâu mất tiêu dzồi, ra đây nhưc đầu chơi
Híc
Em tung code này ra chắc anh Cò và anh Bate lắc đầu ngao ngán đây. Viết xong hỏng dám đọc lại code, thấy ghê quá.
Bấm Ctrl + R để chạy code
Thêm một cái ghê nữa nè, cũng không dám nhìn lại code
Híc
Vậy giờ dám nhìn lại chính code đã sửa từ code chính của bác không
CODE này được phát triển từ code ver1 của bac concogia (nên công thức các cột tính toán độ chính xác có gì hỏi bác Concogia nhé), cảm ơn bác Concogia,
————
Hoàn thiện code hơn, đảm bảo
– cho phép kiểm soát lỗi: chỉ cho phép chạy macro khi đứng ở Sheet có tên T01,T02,…T12,
– báo lỗi khi không có dữ liệu, không có sheet T## trước đó, vv
– Bấm Ctrl+R để chạy chương trình
– Bấm Ctrl+Shift+R để xóa kết quả (khi muốn xem chạy lại)
————
Code đã tinh chỉnh lại:
– nhanh hơn , vì chỉ nhặt vào dic những số liệu từ tổng hợp ứng với tháng đang tính toán mà thui
– sử dụng Array tối đa, không sủ dụng hàm , công thức hay range khác
– Viết gọn code lại chút,
—————
cuối cùng chú ý:
Việc căn nhóm là dựa vào các ký tự chữ I II III,…. cột A của sheet kết quả –> vì thế chú ý khi nhập liệu cột A phải được chuẩn hóa là các Tài khoản (KHO) thì đánh số la mã (hoặc ký tự A B C…) còn các các mã mục nhỏ thì đánh số 1 2 3 …. như hiện tại, và đánh thứ tự liên tục (không có cell trống là tốt nhất )
Dù do code khác tạo ra, nhưng vẫn theo quy luật tôi viết trên, thì vẫn không vấn đề gì
———–
Còn muốn phân biệt KHO (khác so với các mã con) dựa vào cột B thì lấy file kèm sau,
Chú ý tại B chỉ có các tài khoản khó là 1 số (number) các khoản mục (mã) con đều là dạng chuỗi ký tự nhé (hiện luôn là ký tự vì bắt đầu bằng chữ cái: H , L…)
Mọi vấn đề khác giống như code trước đề cập bài trên với các bẫy lỗi đầy đủ
như thử bấm Ctrl+R chạy code ở sheet TH , TH00 hay bất cứ sheets nào không thuộc T01-T12 thì đều có báo lỗi và không chạy code
Code bên trong dễ như đám rừng vậy đó nên không có chỗ nào cần chú thích cả đâu nhé.
Sheet T13 thì có nút bấm, những sheet kia thì CTRL + R để chạy code
PS: Nhớ phản hồi xem cái đám rừng kia mần ăn gì được không nhé
Muốn học gì thì cứ túm co……..^^^^?cổ bác concogia nhe (hihiii) – vì code chính của bác ấy mà, tôi chỉ thêm mắm muối vào thôi và thêm chút bột ngọt nữa
Giờ không căn cứ vào giá trị số hay text của cột B (sheets kết quả) nữa, mà xem mã của cột B này có thuộc 4 tài khoản trong HẰNG SỐ tkChinh = "#1561#152#153#155#"
bấm Alt+F11 Mở code sẽ thấy 2 dòng này ngay module
Const tkChinh = "#1561#152#153#155#" 'hang so cho phep Thay doi tai khoan CHINH
Const stRow = 9 'hang so dong bat dau cho phan du lieu cua tat cac sheet du lieu, ket qua
Bạn có thể bổ sung TÀI KHOẢN CHÍNH vào đây khi cần tăng thêm KHO (dĩ nhiên cho dư cũng được, nhưng nhớ là không thiếu và trùng các mã con hàng hóa )
————-
Code vẫn thế chỉ sửa chút cho phép chạy ở sheet T13 – nên từ T01 ->T13 vẫn cứ bấm Ctrl+R để chạy và Ctrl+Shift+R để xóa
Mọi báo lỗi vẫn thế
Có ngon thì xóa cột C của sheet TH thì biết liền
Gần 1 tháng giờ mới phản hồi, hic….
H Van thử thay thế điều kiện ở cột C thành cột B coi được không. Dùng hàm Month(cot B) +100 rồi dùng hàm right lấy 2 ký tự cuối, kết hợp chữ T thì được rồi.
Dòng này khai báo kích thước bị thiếu
Sửa lại vầy coi sao
ReDim ArrNx(1 To UBound(TongHop)*2, 1 To 4)