Tạo Master Document List

Liên hệ QC

xuananh712

Thành viên mới
Tham gia
30/3/21
Bài viết
12
Được thích
3
Xin chào các cao thủ VBA 4r GFE,

Mình có 1 file Master Document List. Mục đích là cập nhật trạng thái mới nhất của tài liệu được phát hành.

Ví dụ tài liệu phát hành lần đầu thì file sẽ cập nhật các thông tin liên quan của lần issue đầu. Khi tài liệu phát hành lần thứ 2, các thông tin liên quan của lần phát hành thứ 2 sẽ được tự động cập nhật.

Mình đã thực hiện được chức năng này bằng cách sử dụng nhiều hàm IF lồng nhau. Tuy nhiên cách này làm công thức tương đối cồng kềnh, khó theo dõi, sửa chữa và cũng có một số hạn chế khác, nên mình muốn chuyển sang sử dụng VBA. Mong được sự giúp đỡ các cao thủ VBA của GPE

Ý tưởng của mình là:
1) So sánh ngày phát hành của các revision
2) Tìm ngày phát hành mới nhất
3) Lưu các thông tin liên quan của tài liệu phát hành mới nhất vào 1 mảng
4) Điền dữ liêu của mảng vào các ô thể hiện kết quả cuối cùng

Mình đang tập tành VBA nên code không nổi, nhờ các cao thủ giaiphapexcel hỗ trợ.
Mình cảm ơn. Trân trọng
 

File đính kèm

  • Document master list.xlsx
    1.1 MB · Đọc: 26
Cần 1 cột làm bằng tay thể hiện rõ kết quả mong muốn (kèm giải thích rõ) chứ nhìn vào như đống bùi nhùi thế thì biết đường nào mà lần.
 
Upvote 0
Xin chào @Maika8008 ,

Kết quả bằng hàm IF mình đã làm và thể hiện ở sheet "Subcons" rồi.

Giải thích về kết quả mong muốn mình có viết trong bài viết đầu tiên. Mình xin mô tả rõ ràng hơn như sau. Ví dụ với tài liệu đầu tiên (ở dòng 14).

Khi tài liệu chưa được phát hành. (Ảnh 1)
Khi tài liệu được phát hành lần đầu (Ảnh 2)
Khi tài liệu được phát hành lần 2 (Ảnh 3)
v.v. (cứ như vậy)
Khi tài liệu được phát hành lần 6 (Ảnh 4)

Nói ngắn gọn là khi tài liệu được phát hành mới và các thông tin liên quan đến lần phát hành mới nhất được nhập vào file excel thì các thông tin này sẽ được tự động cập nhật vào các cột từ F đến L.

Hàm IF mình làm đã thực hiện được yêu cầu này nhưng cồng kềnh, khó theo dõi, sửa chữa cũng như có một số hạn chế khác nên mình muốn chuyển sang VBA.
Mình mới tập tành VBA nên code không nổi. Mong các cao thủ VBA của GPE giúp đỡ.

Ý tưởng về thuật toán của mình là:
1) So sánh ngày phát hành của các revision
2) Tìm ngày phát hành mới nhất (có giá trị quy đổi sang số lớn nhất)
3) Lưu các thông tin liên quan của lần phát hành mới nhất vào 1 mảng
4) Điền dữ liêu của mảng vào các ô từ F đến L để thể hiện kết quả cuối cùng

Xin cảm ơn. Trân trọng
 

File đính kèm

  • 1.PNG
    1.PNG
    11.3 KB · Đọc: 14
  • 2.PNG
    2.PNG
    95.6 KB · Đọc: 11
  • 3.PNG
    3.PNG
    59.2 KB · Đọc: 9
  • 4.PNG
    4.PNG
    70.1 KB · Đọc: 11
  • Document master list.xlsx
    1.1 MB · Đọc: 6
Lần chỉnh sửa cuối:
Upvote 0
Xin chào @Maika8008 ,

Kết quả bằng hàm IF mình đã làm và thể hiện ở sheet "Subcons" rồi.

Giải thích về kết quả mong muốn mình có viết trong bài viết đầu tiên. Mình xin mô tả rõ ràng hơn như sau. Ví dụ với tài liệu đầu tiên (ở dòng 14).

Khi tài liệu chưa được phát hành. (Ảnh 1)
Khi tài liệu được phát hành lần đầu (Ảnh 2)
Khi tài liệu được phát hành lần 2 (Ảnh 3)
v.v. (cứ như vậy)
Khi tài liệu được phát hành lần 6 (Ảnh 4)

Nói ngắn gọn là khi tài liệu được phát hành mới và các thông tin liên quan đến lần phát hành mới nhất được nhập vào file excel thì các thông tin này sẽ được tự động cập nhật vào các cột từ F đến I và S đến U.

Hàm IF mình làm đã thực hiện được yêu cầu này nhưng cồng kềnh, khó theo dõi, sửa chữa cũng như có một số hạn chế khác nên mình muốn chuyển sang VBA.
Mình mới tập tành VBA nên code không nổi. Mong các cao thủ VBA của GPE giúp đỡ.

Ý tưởng về thuật toán của mình là:
1) So sánh ngày phát hành của các revision
2) Tìm ngày phát hành mới nhất (có giá trị quy đổi sang số lớn nhất)
3) Lưu các thông tin liên quan của lần phát hành mới nhất vào 1 mảng
4) Điền dữ liêu của mảng vào các ô từ F đến L để thể hiện kết quả cuối cùng

Xin cảm ơn. Trân trọng
Tôi vẫn không biết thông tin điền vào các cột F đến I, S đến U đó lấy từ đâu? Ở trên, tôi nói giải thích rõ là giải thích việc này. Nhìn dữ liệu của bạn thấy khiếp rồi, làm sao đi dò xem lấy cái gì, từ đâu để điền vào đâu.
 
Upvote 0
Tôi vẫn không biết thông tin điền vào các cột F đến I, S đến U đó lấy từ đâu? Ở trên, tôi nói giải thích rõ là giải thích việc này. Nhìn dữ liệu của bạn thấy khiếp rồi, làm sao đi dò xem lấy cái gì, từ đâu để điền vào đâu.
Sorry, để câu hỏi rõ ràng hơn mình sửa lại format một chút như file đính kèm.

Chức năng của file sẽ là: Update tự động thông tin liên quan đến lần phát hành mới nhất của một tài liệu vào các cột từ E -> M

1) Khi tài liệu chưa phát hành thì các cột E đến M là trống
2) Khi tài liệu phát hành lần đầu. Các thông tin liên quan đến lần phát hành đầu sẽ được điền tay vào cột từ O -> W. File sẽ update tự động dữ liệu từ các cột O->W vào cột E->M
3) Khi tài liệu phát hành lần 2. Các thông tin liên quan đến lần phát hành đầu sẽ được điền tay vào cột từ X -> AF. File sẽ update tự động dữ liệu từ các cột X->AF vào cột E->M.

Cứ như vậy, mỗi khi có thông tin liên quan đến lần phát hành mới nhất được nhập vào thì file sẽ tự động update thông tin của lần phát hành mới nhất vào cột E->M

Hàm IF mình làm đã thực hiện được yêu cầu này nhưng cồng kềnh, khó theo dõi, sửa chữa cũng như có một số hạn chế khác nên mình muốn chuyển sang VBA.
Mình mới tập tành VBA nên code không nổi. Mong mọi người giúp đỡ.

Ý tưởng về thuật toán của mình là:
1) So sánh ngày phát hành của các revision
2) Tìm ngày phát hành mới nhất (có giá trị quy đổi tương đương sang số là lớn nhất)
3) Lưu các thông tin của lần phát hành mới nhất vào 1 mảng
4) Điền dữ liêu của mảng vào các cột từ E đến M để thể hiện kết quả cuối cùng

Xin cảm ơn. Trân trọng
 

File đính kèm

  • Document master list_Rev2.xlsx
    40.5 KB · Đọc: 5
Upvote 0
OK. Một khi đã biết ngõ ngách thì tất yếu giải được. Rảnh tôi sẽ làm cho nhưng nếu các thành viên khác có hứng thú và rảnh hơn thì họ sẽ làm trước giúp bạn.
 
Upvote 0
Sorry, để câu hỏi rõ ràng hơn mình sửa lại format một chút như file đính kèm.

Chức năng của file sẽ là: Update tự động thông tin liên quan đến lần phát hành mới nhất của một tài liệu vào các cột từ E -> M

1) Khi tài liệu chưa phát hành thì các cột E đến M là trống
2) Khi tài liệu phát hành lần đầu. Các thông tin liên quan đến lần phát hành đầu sẽ được điền tay vào cột từ O -> W. File sẽ update tự động dữ liệu từ các cột O->W vào cột E->M
3) Khi tài liệu phát hành lần 2. Các thông tin liên quan đến lần phát hành đầu sẽ được điền tay vào cột từ X -> AF. File sẽ update tự động dữ liệu từ các cột X->AF vào cột E->M.

Cứ như vậy, mỗi khi có thông tin liên quan đến lần phát hành mới nhất được nhập vào thì file sẽ tự động update thông tin của lần phát hành mới nhất vào cột E->M

Hàm IF mình làm đã thực hiện được yêu cầu này nhưng cồng kềnh, khó theo dõi, sửa chữa cũng như có một số hạn chế khác nên mình muốn chuyển sang VBA.
Mình mới tập tành VBA nên code không nổi. Mong mọi người giúp đỡ.

Ý tưởng về thuật toán của mình là:
1) So sánh ngày phát hành của các revision
2) Tìm ngày phát hành mới nhất (có giá trị quy đổi tương đương sang số là lớn nhất)
3) Lưu các thông tin của lần phát hành mới nhất vào 1 mảng
4) Điền dữ liêu của mảng vào các cột từ E đến M để thể hiện kết quả cuối cùng

Xin cảm ơn. Trân trọng
Tôi gửi lại file đã code. Ở bước 1 và 2 tôi không so sánh gì cả mà chỉ dò từ bên phải qua trái gặp dữ liệu thì xem như đó là lần phát hành cuối cùng và lấy thông tin lần đó luôn. Bạn xem thử tôi làm thế có đúng không, vì tôi nghĩ thực tế phải ghi thông tin phát hành tuần tự từ trái qua phải, không thể có việc lần cuối cùng mà ghi trước lần phát hành trước đó được?
 

File đính kèm

  • Document master list_Rev2_xuananh712.xlsm
    59.3 KB · Đọc: 6
Upvote 0
Tôi gửi lại file đã code. Ở bước 1 và 2 tôi không so sánh gì cả mà chỉ dò từ bên phải qua trái gặp dữ liệu thì xem như đó là lần phát hành cuối cùng và lấy thông tin lần đó luôn. Bạn xem thử tôi làm thế có đúng không, vì tôi nghĩ thực tế phải ghi thông tin phát hành tuần tự từ trái qua phải, không thể có việc lần cuối cùng mà ghi trước lần phát hành trước đó được?
Cảm ơn @Maika8008 .
Ý tưởng này rất hay, đơn giản và dễ hiểu hơn cách của mình. Từ hôm qua tới giờ, mình cũng lăn lóc vừa đọc sách, vừa google, vừa xem code mẫu của một số bài toán có những điểm tương tự. Mình share bản draft để các ae GPE review và góp ý. Đây là lần thứ 2 mình lên GPE xin hỗ trợ. Lần nào cũng nhận được hỗ trợ nhiệt tình của mn. Xin cảm ơn GPE . Trân trọng
 

File đính kèm

  • Document master list_Rev2.xlsb
    38.1 KB · Đọc: 5
Upvote 0
Web KT

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

Back
Top Bottom