Hỏi về hàm tìm kiếm. Khó quá...

  • Thread starter Thread starter tuvn254
  • Ngày gửi Ngày gửi
Liên hệ QC
Tớ làm theo yêu cầu của bạn rồi đấy
Tạo thêm cột phụ cho dế, nhưng bạn hãy dùng validation đi

Chứ tớ thấy bạn đặt link như vậy mệt lắm


Có nhiều cách bố trí dữ liệu hay hơn đó

ST
bạn ơi,ý của tớ là khi tớ đánh đúng ký hiệu định mức vào thì tất cả các ô sẽ tìm theo tham chiếu trong sheet DM ý. Ví dụ nhé: tớ đánh ở ô B9 là AA.32212 thì ở dưới dòng vật liệu sẽ tìm ra các loại vật liệu tương ứng: Tà vẹt gỗ, ôxy, acetylen. Và ở cột đơn vị sẽ nhảy tiếp đơn vị tương ứng, và ở cột định mức sẽ nhảy tiếp định mức tương ứng và ô vật liệu khác cũng nhảy như thế. Các tài nguyên tương ứng của Nhân công và Máy cũng nhảy theo. Bạn xem lại cho mình nhé. Thanks!!!
 
bạn ơi,ý của tớ là khi tớ đánh đúng ký hiệu định mức vào thì tất cả các ô sẽ tìm theo tham chiếu trong sheet DM ý. Ví dụ nhé: tớ đánh ở ô B9 là AA.32212 thì ở dưới dòng vật liệu sẽ tìm ra các loại vật liệu tương ứng: Tà vẹt gỗ, ôxy, acetylen. Và ở cột đơn vị sẽ nhảy tiếp đơn vị tương ứng, và ở cột định mức sẽ nhảy tiếp định mức tương ứng và ô vật liệu khác cũng nhảy như thế. Các tài nguyên tương ứng của Nhân công và Máy cũng nhảy theo. Bạn xem lại cho mình nhé. Thanks!!!

Tham khảo cách làm này xem có đựoc không nhé
(Nếu được sẽ phát triển và hoàn thiện tiếp)
 

File đính kèm

bác ơi ý em như thế đó, nhưng bác cố gắng giữ cho đúng fom của e trong DGCT nhé.Thanks bác nhìu!!!

Về cơ bản vẫn như mẫu của bạn, có thay đổi gì đâu


  1. Chả nhẽ tại A9 bạn muốn hiện STT à? (nếu liệt kê hết tất cả thì mới cần STT, mà liệt kê hết tất cả thì sang sheet DM mà nhòm, cần gì đến DGCT)
    => A9 không dùng để điền STT. Hay là bạn muốn để trống ô này
  2. Theo mẫu cũ của bạn thì không cần hiện Hạng mục như mình đã cho hiện tại dòng 4 à? nếu không cần thì bạn có thể xóa công thức dòng 4 đi là được
Vào Insert \ Name \ Define...

  1. vt2 =IF('DG CT'!$D$3=MAX(Num),ROWS(Ma),MATCH(INDEX(Ma,SMALL(Num,'DG CT'!$D$3+1)-5),Ma,0))
    Sửa thành (chỗ màu đỏ)
    vt2 =IF('DG CT'!$D$3=COUNT(Num),ROWS(Ma),MATCH(INDEX(Ma,SMALL(Num,'DG CT'!$D$3+1)-5),Ma,0))
  2. Xoa bớt 1 Name thừa Data
 
Về cơ bản vẫn như mẫu của bạn, có thay đổi gì đâu


  1. Chả nhẽ tại A9 bạn muốn hiện STT à? (nếu liệt kê hết tất cả thì mới cần STT, mà liệt kê hết tất cả thì sang sheet DM mà nhòm, cần gì đến DGCT)
    => A9 không dùng để điền STT. Hay là bạn muốn để trống ô này
  2. Theo mẫu cũ của bạn thì không cần hiện Hạng mục như mình đã cho hiện tại dòng 4 à? nếu không cần thì bạn có thể xóa công thức dòng 4 đi là được
Vào Insert \ Name \ Define...

  1. vt2 =IF('DG CT'!$D$3=MAX(Num),ROWS(Ma),MATCH(INDEX(Ma,SMALL(Num,'DG CT'!$D$3+1)-5),Ma,0))
    Sửa thành (chỗ màu đỏ)
    vt2 =IF('DG CT'!$D$3=COUNT(Num),ROWS(Ma),MATCH(INDEX(Ma,SMALL(Num,'DG CT'!$D$3+1)-5),Ma,0))
  2. Xoa bớt 1 Name thừa Data
ý của mình là như này bạn ơi:
- Những cái mẫu đó e sẽ cop xuống để làm các bảng khác nữa.
- Mẫu đã cho là fom của bọn mình nên không thể thay đổi được.
- Cột A9 chỉ là số thứ tự thuần túy, không cần công thức ở đây
- Mình chỉ cần khi đánh đúng SHĐM thì sẽ tự động truy tìm ra tài nguyên, đơn vị, định mức của vật liệu, vật liệu khác (%), nhân công, máy, máy khác (%) ứng với SHĐM trong sheet ĐM.
- Sheet ĐM của e còn rất nhiều, e fải cắt bớt đi để làm ví dụ thui ạ. Bác xây dựng công thức làm sao khi ở sheet DM e cop thêm các định mức khác thì công thức bên sheet DGCT vẫn có tác dụng. Và mẫu ở DGCT e cop xuống thì vẫn dùng được.
Bạn xem lại cho mình nhé. Thanks!!!
 
ý của mình là như này bạn ơi:
- Những cái mẫu đó e sẽ cop xuống để làm các bảng khác nữa.
- Mẫu đã cho là fom của bọn mình nên không thể thay đổi được.
- Cột A9 chỉ là số thứ tự thuần túy, không cần công thức ở đây
- Mình chỉ cần khi đánh đúng SHĐM thì sẽ tự động truy tìm ra tài nguyên, đơn vị, định mức của vật liệu, vật liệu khác (%), nhân công, máy, máy khác (%) ứng với SHĐM trong sheet ĐM.
- Sheet ĐM của e còn rất nhiều, e fải cắt bớt đi để làm ví dụ thui ạ. Bác xây dựng công thức làm sao khi ở sheet DM e cop thêm các định mức khác thì công thức bên sheet DGCT vẫn có tác dụng. Và mẫu ở DGCT e cop xuống thì vẫn dùng được.
Bạn xem lại cho mình nhé. Thanks!!!

sao lại thích như vậy nhỉ???


  1. Sheet DM của bạn có 65000 dòng thì bạn cũng copy đủ hết cả ở DGCT à?
  2. Như file trên, không cần copy cái gì cả, muốn in thì cứ như vậy mà in, muốn xem cái nào thì chọn Stt trong list có sướng không (nếu muốn copy hết cả sang sheet DGCT thì sao không sang DM mà nhìn cho gọn)
 
sao lại thích như vậy nhỉ???


  1. Sheet DM của bạn có 65000 dòng thì bạn cũng copy đủ hết cả ở DGCT à?
  2. Như file trên, không cần copy cái gì cả, muốn in thì cứ như vậy mà in, muốn xem cái nào thì chọn Stt trong list có sướng không (nếu muốn copy hết cả sang sheet DGCT thì sao không sang DM mà nhìn cho gọn)
Bạn chưa hiểu hết ý mình rùi. Thế này nhé:
- Bên sheet DGCT ý. Mình sẽ cop toàn bộ xuống. Sau đó sẽ xây dựng thêm một đơn giá nữa. Ví dụ: ở ô B9 mình đánh số thứ tự là 1, shđm là AA.32212 (sau khi đánh đúng mã hiệu vào sẽ truy tìm được VL, NC, M tương ứng trong sheet DM), ở ô A46 mình đánh số thứ tự là 2, ví dụ shđm là AB.36120 (sau khi đánh đúng mã hiệu vào sẽ truy tìm được VL, NC, M tương ứng trong sheet DM). Tương tự như thế ở các ô A83, A120... và rất nhiều các nữa sau khi xây dựng được công thức mình sẽ cop xuống.
- Mình in tất cả những gì mình làm trong sheet DGCT. Ví dụ trong ô DGCT đến STT thứ 200 thì mình cũng in hết.
- Bên sheet DM mình sẽ cop thêm những đinh mức khác vào nữa. Đây chỉ là ví dụ nên chỉ có một số thôi.
- Sheet DM chỉ là tham chiếu mình không in sheet này.
Bạn xem lại nha.
 
Bạn chưa hiểu hết ý mình rùi. Thế này nhé:
- Bên sheet DGCT ý. Mình sẽ cop toàn bộ xuống. Sau đó sẽ xây dựng thêm một đơn giá nữa. Ví dụ: ở ô B9 mình đánh số thứ tự là 1, shđm là AA.32212 (sau khi đánh đúng mã hiệu vào sẽ truy tìm được VL, NC, M tương ứng trong sheet DM), ở ô A46 mình đánh số thứ tự là 2, ví dụ shđm là AB.36120 (sau khi đánh đúng mã hiệu vào sẽ truy tìm được VL, NC, M tương ứng trong sheet DM). Tương tự như thế ở các ô A83, A120... và rất nhiều các nữa sau khi xây dựng được công thức mình sẽ cop xuống.
- Mình in tất cả những gì mình làm trong sheet DGCT. Ví dụ trong ô DGCT đến STT thứ 200 thì mình cũng in hết.
- Bên sheet DM mình sẽ cop thêm những đinh mức khác vào nữa. Đây chỉ là ví dụ nên chỉ có một số thôi.
- Sheet DM chỉ là tham chiếu mình không in sheet này.
Bạn xem lại nha.

Ẹc Ẹc Ẹc


  1. Khi bạn có A9 = 1 ; B9 = AB.36120 : ở các dòng của vật liệu, vật liệu khác, Công nhân, Máy, Máy khác bạn nhập đơn giá ... (bình thường thì không sao)
  2. Đến 1 lúc nào đó, do sự cố nào đó, một ai đó, ...(mà bạn không hay biết) làm thay đổi B9 <>AB.36120 , hoặc thay đổi giá trị ở sheet DM ... => ở các dòng của vật liệu, vật liệu khác, Công nhân, Máy, Máy khác sẽ bị thay đổi theo (do có công thức) còn giá mà bạn nhập vào thì không thay đổi (có công thức đâu mà thay đổi theo được) => lúc này sẽ ra sao nhỉ ???
  3. Nếu bạn muốn nhập đơn giá thì sao không nhập bên DM rồi dùng công thức cho hiện sang DGCT
  4. Quan điểm của mình (và mình khuyên bạn) là: sheet nhập số liệu là chỉ để nhập, nhập các loại cần nhập (ở đây là sheet DM); Sheet dùng công thức thì không nhập gì vào (công thức thì cho giá trị thay đổi, phần nhập cố định <=> dễ nhầm lẫn, sai sót)
---------------------------------------------------------------
Vài lời bộc bạch, nếu thấy không vừa ý thì cho xin 2 chữ "bỏ qua"
 
Ẹc Ẹc Ẹc


  1. Khi bạn có A9 = 1 ; B9 = AB.36120 : ở các dòng của vật liệu, vật liệu khác, Công nhân, Máy, Máy khác bạn nhập đơn giá ... (bình thường thì không sao)
  2. Đến 1 lúc nào đó, do sự cố nào đó, một ai đó, ...(mà bạn không hay biết) làm thay đổi B9 <>AB.36120 , hoặc thay đổi giá trị ở sheet DM ... => ở các dòng của vật liệu, vật liệu khác, Công nhân, Máy, Máy khác sẽ bị thay đổi theo (do có công thức) còn giá mà bạn nhập vào thì không thay đổi (có công thức đâu mà thay đổi theo được) => lúc này sẽ ra sao nhỉ ???
  3. Nếu bạn muốn nhập đơn giá thì sao không nhập bên DM rồi dùng công thức cho hiện sang DGCT
  4. Quan điểm của mình (và mình khuyên bạn) là: sheet nhập số liệu là chỉ để nhập, nhập các loại cần nhập (ở đây là sheet DM); Sheet dùng công thức thì không nhập gì vào (công thức thì cho giá trị thay đổi, phần nhập cố định <=> dễ nhầm lẫn, sai sót)
---------------------------------------------------------------
Vài lời bộc bạch, nếu thấy không vừa ý thì cho xin 2 chữ "bỏ qua"
cảm un bạn đã góp ý. Chắc là do mình chưa nói hết ý tưởng của mình:
- Ở trong sheet DGCT ý, mình chỉ muốn đặt công thức ở những ô tài nguyên Vật liệu, Nhân công, máy (cột C) và đơn vị (cột D) của chúng sẽ tương ứng với nó, và công thức ở ô Định mức (cột E) tương ứng với tài nguyên, cũng như % của vật liệu khác, máy khác. Và tất cả sẽ fụ thuộc vào ô B9(tức là ô SHĐM) đó bạn.
- Còn ở ô Đơn giá (cột F) thì mình sẽ dùng công thức tìm kiếm khác (cái này mình đã xây dựng được rồi nhưng không muốn đưa hết lên đây vì sợ rắc rối cho bạn). Ô thành tiền (cột G) chỉ là công thức nhân đơn giản thôi. Và các công thức toán học ở dưới bạn không cần để ý tới đâu vì đấy chỉ là công thức toán thuần túy thui.
- Trong sheet DM thì chỉ không có cột đơn giá nữa, mà đó chỉ là bảng tham chiếu sang bên sheet DGCT để ra tài nguyên, đơn vị, định mức của VL, NC, M. Sau này khi mình đánh thêm vào các định mức khác (sẽ rất nhiều): coi như đó là một thư viện vào sẽ khóa lạiẩn đi nên không lo có ai đó vô tình thay đổi.
- Khi mình làm trong sheet DGCT mình chỉ cần gõ đúng mã hiệu định mức thì sẽ hiện ra đầy đủ các tài nguyên như mình đã nói ở trên.
- STT chỉ là thuần túy đánh vào thui,ko có tác dụng như là tham số để truy tìm.
- Và đây là fom quy định của bọn mình nên mình không thay đổi khác được.
 
cảm un bạn đã góp ý. Chắc là do mình chưa nói hết ý tưởng của mình:
- Ở trong sheet DGCT ý, mình chỉ muốn đặt công thức ở những ô tài nguyên Vật liệu, Nhân công, máy (cột C) và đơn vị (cột D) của chúng sẽ tương ứng với nó, và công thức ở ô Định mức (cột E) tương ứng với tài nguyên, cũng như % của vật liệu khác, máy khác. Và tất cả sẽ fụ thuộc vào ô B9(tức là ô SHĐM) đó bạn.
1 - Còn ở ô Đơn giá (cột F) thì mình sẽ dùng công thức tìm kiếm khác (
cái này mình đã xây dựng được rồi nhưng không muốn đưa hết lên đây vì sợ rắc rối cho bạn). Ô thành tiền (cột G) chỉ là công thức nhân đơn giản thôi. Và các công thức toán học ở dưới bạn không cần để ý tới đâu vì đấy chỉ là công thức toán thuần túy thui.
2 - Trong sheet DM thì chỉ không có cột đơn giá nữa, mà đó chỉ là bảng tham chiếu sang bên sheet DGCT để ra tài nguyên, đơn vị, định mức của VL, NC, M. Sau này khi mình đánh thêm vào các định mức khác (sẽ rất nhiều): coi như đó là một thư viện vào sẽ khóa lạiẩn đi nên không lo có ai đó vô tình thay đổi.
- Khi mình làm trong sheet DGCT mình chỉ cần gõ đúng mã hiệu định mức thì sẽ hiện ra đầy đủ các tài nguyên như mình đã nói ở trên.
- STT chỉ là thuần túy đánh vào thui,ko có tác dụng như là tham số để truy tìm.

3 - Và đây là fom quy định của bọn mình nên mình không thay đổi khác được.

1 - Chính vì nghĩ như thế này mà nhiều lần gặp rắc rối (không hiểu hết ý của nhau) giữa người hỏi và người trả lời

2 - Ở trên mình chỉ đưa ra một vài khả năng (trong thực tế thì có tới 1001 ...). Nếu bạn đã lường được hết và có biện pháp ngăn chặn rồi thì tốt quá

3 - chẳng qua nó chỉ là cái mẫu dùng để in chi tiết để lãnh đạo xem hoặc đối tác xem và ... (như bạn nói thì thành vấn đề nghiêm trọng quá)
trong quá trình in, do sự cố nào đó mà bản in phóng to lên 105% hoặc thu nhỏ còn 90% thì có sao đâu (VD để option print page A4 hoặc Letter hoặc ...)

Do không chuyên ngành, không hiểu rõ ý đồ, mục đích ... nên mình chỉ biết đưa ra ý tưởng và cách xử lý để bạn tham khảo. Chúc bạn thành công
 
Bài này, bạn không nên mở thêm chủ đề mới nữa. Tôi đã gom hai bài thành một, vì vẫn là chuyện đó.

Thật sự, không phải là tôi không muốn giúp bạn, nhưng yêu cầu của bạn phức tạp quá, nên tôi làm không nổi. Và tôi nghĩ, nếu như có làm nổi, thì chưa chắc Excel đã chạy nổi, vì khi đó dung lượng file sẽ tăng lên rất nhiều, bởi phải tạo cho mỗi "bộ tra cứu" của bạn một nhóm Name riêng.

Nếu cho tôi góp ý, thì cũng như Boyxin, và cũng như tôi đã nói ở trên, sau khi ngưng loạt bài giúp bạn làm ra các bảng tra cứu (1 bộ mà thôi), là:... Sao bạn lại lại cố tình làm khó mình như vậy?

Nếu như thật tình, bạn có nhiều loại đơn giá khác nhau, thì thay vì bạn Copy xuống dưới, bạn nên Copy sang một Sheet khác, sẽ dễ xử lý hơn. Còn nếu tôi là bạn, thì tôi sẽ làm theo cách ma Boyxin đã nói: Nhập một đơn giá, in ra, sau đó nhập đơn giá khác, in ra,... cứ thế. Vừa nhanh, vừa gọn, mà bảng tính bớt nặng nề.

Vả lại, trước sau gì bạn cũng phải in ra mà, vậy tại sao bạn khăng khăng không chịu in từng "bộ tra cứu", mỗi bộ một đơn giá, mà muốn là làm cho hết các loại đơn giá rồi mới in một lần? Có khác gì nhau giữa in một lần tất cả và in nhiều lần, mỗi lần môt cái không ?

Vài lời chân thành góp ý.
 
Bài này, bạn không nên mở thêm chủ đề mới nữa. Tôi đã gom hai bài thành một, vì vẫn là chuyện đó.

Thật sự, không phải là tôi không muốn giúp bạn, nhưng yêu cầu của bạn phức tạp quá, nên tôi làm không nổi. Và tôi nghĩ, nếu như có làm nổi, thì chưa chắc Excel đã chạy nổi, vì khi đó dung lượng file sẽ tăng lên rất nhiều, bởi phải tạo cho mỗi "bộ tra cứu" của bạn một nhóm Name riêng.

Nếu cho tôi góp ý, thì cũng như Boyxin, và cũng như tôi đã nói ở trên, sau khi ngưng loạt bài giúp bạn làm ra các bảng tra cứu (1 bộ mà thôi), là:... Sao bạn lại lại cố tình làm khó mình như vậy?

Nếu như thật tình, bạn có nhiều loại đơn giá khác nhau, thì thay vì bạn Copy xuống dưới, bạn nên Copy sang một Sheet khác, sẽ dễ xử lý hơn. Còn nếu tôi là bạn, thì tôi sẽ làm theo cách ma Boyxin đã nói: Nhập một đơn giá, in ra, sau đó nhập đơn giá khác, in ra,... cứ thế. Vừa nhanh, vừa gọn, mà bảng tính bớt nặng nề.

Vả lại, trước sau gì bạn cũng phải in ra mà, vậy tại sao bạn khăng khăng không chịu in từng "bộ tra cứu", mỗi bộ một đơn giá, mà muốn là làm cho hết các loại đơn giá rồi mới in một lần? Có khác gì nhau giữa in một lần tất cả và in nhiều lần, mỗi lần môt cái không ?

Vài lời chân thành góp ý.
rất cảm ơn bạn đã góp ý.Nhưng sheet DGCT của mình rất nhiều. Ít nhất tầm 200 đơn giá. Nếu cứ cop sheet ra như thế, thì liệu excel có đủ nhỉ. Và mìnhl lại rất khó quản lý. Mình thấy bạn boyxin đang làm đúng đấy chứ. Mong bạn đừng đóng sớm topic này.Vì thật sự mình rất cần công thức này.Cảm ơn rất nhiều!!!
 
Nếu bạn vẫn muốn copy nhiều mẫu... Kiểm tra lại kết quả nhé
(VBA chỉ là để copy mẫu - copy bằng tay được thì có thể xoá VBA)​
 

File đính kèm

Nếu bạn vẫn muốn copy nhiều mẫu... Kiểm tra lại kết quả nhé
(VBA chỉ là để copy mẫu - copy bằng tay được thì có thể xoá VBA)​
nhưng các ô đấy vẫn tìm kiếm theo ô số thứ tự. Mình chỉ muốn tìm kiếm theo ô Mã hiệu đơn giá thui. Còn ô STT thì đánh j vào cũng được thì làm như nào hả bạn. Cảm ơn bạn nhiều!!!/-*+/
 
nhưng các ô đấy vẫn tìm kiếm theo ô số thứ tự. Mình chỉ muốn tìm kiếm theo ô Mã hiệu đơn giá thui. Còn ô STT thì đánh j vào cũng được thì làm như nào hả bạn. Cảm ơn bạn nhiều!!!/-*+/

Xin lỗi vì mình lại phải nói câu này: SAO BẠN CỨ THÍCH TỰ LÀM KHÓ MÌNH

Trong công thức, thuật toán đặc biệt là dò tìm thì người ta thường đơn giản hoá vấn đề bằng mọi cách có thể thay giá trị tìm kiếm về dạng số (bất khả kháng thì đành phải chịu)

Từ Stt -> MHĐG thì được rồi, vậy MHĐG -> Stt để chương trình hoạt động không khó khăn lắm đâu. bạn tự làm được mà
 
Xin lỗi vì mình lại phải nói câu này: SAO BẠN CỨ THÍCH TỰ LÀM KHÓ MÌNH

Trong công thức, thuật toán đặc biệt là dò tìm thì người ta thường đơn giản hoá vấn đề bằng mọi cách có thể thay giá trị tìm kiếm về dạng số (bất khả kháng thì đành phải chịu)

Từ Stt -> MHĐG thì được rồi, vậy MHĐG -> Stt để chương trình hoạt động không khó khăn lắm đâu. bạn tự làm được mà
bạn ơi, nhưng khi mình làm thì số thứ tự của 2 bên là khác nhau mà. Bên DGCT, số thứ tự chỉ nhằm mục đích đánh số thứ tứ thuần túy. Vì mình làm có fải cứ có bao nhiêu định mức là mình bê vào đâu.Lấy định mức này, định mức khác. Cho nên mình mới fải truy tìm theo mã hiệu định mức mà.Chỉ cần đánh đúng tên mã hiệu giống hệt bên sheet DM là tài nguyên tự truy tìm mà.
 
Phải VBA việc này mới xong!

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo LoiCT
 If Not Intersect(Columns("B:B"), Target) Is Nothing And IsNumeric(Target.Offset(, -1)) Then
   Dim RngVLK As Range, sRng As Range, RngVL As Range, Clls As Range
   Dim Rng As Range, RngNC As Range, RngM As Range, RngMK As Range
   Range(Target.Offset(2, 1), Target.Offset(2, 1).End(xlDown)).Resize(, 3).Clear
   With Sheets("DM")
      Set Rng = .Range(.[A5], .Cells(.[D65432].End(xlUp).Row, 1))
      Set sRng = Rng.Find(Target, LookIn:=xlValues, LOOKAT:=xlWhole).Offset(1, 2)
      If Not sRng Is Nothing Then _
            Set sRng = .Range(sRng, sRng.End(xlDown))
      For Each Clls In sRng
         If Clls.Value = "VL" Then
            If RngVL Is Nothing Then
               Set RngVL = Clls.Offset(, 1).Resize(, 3)
            Else
               Set RngVL = Union(RngVL, Clls.Offset(, 1).Resize(, 3))
            End If
         End If
         If Clls.Value = "VLK" Then Set RngVLK = Clls.Offset(, 1).Resize(, 3)
         If Clls.Value = "NC" Then Set RngNC = Clls.Offset(, 1).Resize(, 3)
         If Clls.Value = "M" Then
            If RngM Is Nothing Then
               Set RngM = Clls.Offset(, 1).Resize(, 3)
            Else
               Set RngM = Union(RngM, Clls.Offset(, 1).Resize(, 3))
            End If
         End If
         If Clls.Value = "MK" Then Set RngMK = Clls.Offset(, 1).Resize(, 3)
      Next Clls
      Target.Offset(2, 1).Resize(9, 3).Clear
      If Not RngVL Is Nothing Then _
         RngVL.Copy Destination:=Target.Offset(2, 1)
      If Not RngVLK Is Nothing Then _
         RngVLK.Copy Destination:=Target.Offset(12, 1)
      If Not RngNC Is Nothing Then _
         RngNC.Copy Destination:=Target.Offset(14, 1)
      Target.Offset(17, 1).Resize(8, 3).Clear
      If Not RngM Is Nothing Then _
         RngM.Copy Destination:=Target.Offset(17, 1)
      If Not RngMK Is Nothing Then _
         RngMK.Copy Destination:=Target.Offset(25, 1)
   End With
 End If
ErrCT:               Exit Sub
LoiCT:
   MsgBox Error, , Err

End Sub
 

File đính kèm

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo LoiCT
 If Not Intersect(Columns("B:B"), Target) Is Nothing And IsNumeric(Target.Offset(, -1)) Then
   Dim RngVLK As Range, sRng As Range, RngVL As Range, Clls As Range
   Dim Rng As Range, RngNC As Range, RngM As Range, RngMK As Range
   Range(Target.Offset(2, 1), Target.Offset(2, 1).End(xlDown)).Resize(, 3).Clear
   With Sheets("DM")
      Set Rng = .Range(.[A5], .Cells(.[D65432].End(xlUp).Row, 1))
      Set sRng = Rng.Find(Target, LookIn:=xlValues, LOOKAT:=xlWhole).Offset(1, 2)
      If Not sRng Is Nothing Then _
            Set sRng = .Range(sRng, sRng.End(xlDown))
      For Each Clls In sRng
         If Clls.Value = "VL" Then
            If RngVL Is Nothing Then
               Set RngVL = Clls.Offset(, 1).Resize(, 3)
            Else
               Set RngVL = Union(RngVL, Clls.Offset(, 1).Resize(, 3))
            End If
         End If
         If Clls.Value = "VLK" Then Set RngVLK = Clls.Offset(, 1).Resize(, 3)
         If Clls.Value = "NC" Then Set RngNC = Clls.Offset(, 1).Resize(, 3)
         If Clls.Value = "M" Then
            If RngM Is Nothing Then
               Set RngM = Clls.Offset(, 1).Resize(, 3)
            Else
               Set RngM = Union(RngM, Clls.Offset(, 1).Resize(, 3))
            End If
         End If
         If Clls.Value = "MK" Then Set RngMK = Clls.Offset(, 1).Resize(, 3)
      Next Clls
      Target.Offset(2, 1).Resize(9, 3).Clear
      If Not RngVL Is Nothing Then _
         RngVL.Copy Destination:=Target.Offset(2, 1)
      If Not RngVLK Is Nothing Then _
         RngVLK.Copy Destination:=Target.Offset(12, 1)
      If Not RngNC Is Nothing Then _
         RngNC.Copy Destination:=Target.Offset(14, 1)
      Target.Offset(17, 1).Resize(8, 3).Clear
      If Not RngM Is Nothing Then _
         RngM.Copy Destination:=Target.Offset(17, 1)
      If Not RngMK Is Nothing Then _
         RngMK.Copy Destination:=Target.Offset(25, 1)
   End With
 End If
ErrCT:               Exit Sub
LoiCT:
   MsgBox Error, , Err

End Sub
bạn ơi, sao khi mình thêm định mức vào thì bên kia không tìm được. Muốn mở rộng khoảng tìm kiếm thì điều chỉnh cái gì hả bạn.Mình mù tịt về VBA mà. Giá mà không dùng VBA thì tốt quá.Rất cảm ơn bạn.... ^^
 
bạn ơi, nhưng khi mình làm thì số thứ tự của 2 bên là khác nhau mà. Bên DGCT, số thứ tự chỉ nhằm mục đích đánh số thứ tứ thuần túy. Vì mình làm có fải cứ có bao nhiêu định mức là mình bê vào đâu.Lấy định mức này, định mức khác. Cho nên mình mới fải truy tìm theo mã hiệu định mức mà.Chỉ cần đánh đúng tên mã hiệu giống hệt bên sheet DM là tài nguyên tự truy tìm mà.

Chiều theo ý bạn đây: Lựa chọn MHĐG
kiểm tra lại kết quả nhé

(VBA chỉ là để copy mẫu - copy bằng tay được thì có thể xoá VBA)
 

File đính kèm

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

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

Back
Top Bottom