Lấy số dòng chứa giá trị nhỏ nhất

Liên hệ QC

bjboyn00b

Thành viên chính thức
Tham gia
17/12/10
Bài viết
84
Được thích
5
Gửi ACE
Mình có code 1 đoạn như sau, mục đích của mình là muốn tự đặt công thức ở cột V tự kéo xuống tới dòng có giá trị nhỏ nhất của sheet.
Sub Xoadulieu()
' Xoadulieu Macro
'

Dim i As Single
Dim j As Long

i = ActiveCell.FormulaR1C1 = "=MIN(C[-1])"
j = Sheet1.Range("H:H").Find("i").Row
Range("V1").Select
ActiveCell.FormulaR1C1 = "=MID(RC[-8],4,2)"
Selection.AutoFill Destination:=Range("V1:V" & j), Type:=xlFillDefault

End Sub

Mọi người xem giúp mình sai ở chỗ nào nhé.
 
Gửi ACE
Mình có code 1 đoạn như sau, mục đích của mình là muốn tự đặt công thức ở cột V tự kéo xuống tới dòng có giá trị nhỏ nhất của sheet.
Mọi người xem giúp mình sai ở chỗ nào nhé.
Sao tiêu đề và nội dung chẳng ăn khớp gì nhau gì vậy. Đoạn code kia có lỗi gì. File của bạn có thể đính kèm lên đây được không?
 
Upvote 0
Sao tiêu đề và nội dung chẳng ăn khớp gì nhau gì vậy. Đoạn code kia có lỗi gì. File của bạn có thể đính kèm lên đây được không?
Đây file ví dụ bạn nhé, mục địch của mình trong file này là sẽ tự động xóa tất các cả dòng mà chưa đến hạn thanh toán (cột N) ( ví dụ mình chọn tháng 5 thì sẽ xóa toàn bộ dữ liệu hạn thanh toán tháng 6 và 7)
Sau đó tự cộng tổng lại theo từng nhà cung cấp , file này mình lấy từ hệ thống ra ( yêu cầu cấp trên ko được xóa bất cứ dòng nào ngoài các dòng chưa đến hạn thanh toán)
Mình định viết bước đầu sẽ tự động kéo công thức MID số tháng đến dòng cuối, tức dòng tổng cộng của tất cả nhà cung cấp.
Sau đó sẽ xóa bỏ những cái không thuộc tháng tìm kiếm.
Tiếp đến là sẽ cộng lại từng NCC một.
Do mới đang tự tìm hiểu về VBA nên thấy khoai quá :) , bạn xem giúp mình đoạn code trên có gì sai với nhé.
 

File đính kèm

  • AP (2).xlsb
    21.8 KB · Đọc: 0
Upvote 0
Đây file ví dụ bạn nhé, mục địch của mình trong file này là sẽ tự động xóa tất các cả dòng mà chưa đến hạn thanh toán (cột N) ( ví dụ mình chọn tháng 5 thì sẽ xóa toàn bộ dữ liệu hạn thanh toán tháng 6 và 7)
Sau đó tự cộng tổng lại theo từng nhà cung cấp , file này mình lấy từ hệ thống ra ( yêu cầu cấp trên ko được xóa bất cứ dòng nào ngoài các dòng chưa đến hạn thanh toán)
Mình định viết bước đầu sẽ tự động kéo công thức MID số tháng đến dòng cuối, tức dòng tổng cộng của tất cả nhà cung cấp.
Sau đó sẽ xóa bỏ những cái không thuộc tháng tìm kiếm.
Tiếp đến là sẽ cộng lại từng NCC một.
Do mới đang tự tìm hiểu về VBA nên thấy khoai quá :) , bạn xem giúp mình đoạn code trên có gì sai với nhé.
Ủa file đang khóa mật khẩu bạn ơi.
 
Upvote 0
Hãy nói rõ 1 chút về logic cách làm. và kết quả mong muốn mình sẽ code lại cho bạn
Cảm ơn bạn nhé. Mình nói rõ hơn 1 chút như sau:
Yêu cầu từ cấp trên:
File dữ liệu này bao gồm của rất nhiều nhà cung cấp (mình đã giản lược bớt). Căn cứ theo cột N (hạn thanh toán) . Giả dụ hiện tại là phải thanh toán cho những hóa đơn đến hạn tháng 4, do vậy những hóa đơn đến hạn tháng 5 hoặc 6 sẽ xóa đi.
Sau khi xóa thì tổng số tiền cần thanh toán cho mỗi nhà cung cấp cũng thay đổi, do vậy phải tính tổng lại từng nhà cung cấp tại vị trí các ô đang chứa tổng trước đó.

Hướng làm mình đang suy nghĩ :
Đầu tiên mình sẽ dùng Mid để tách tháng trong cột N, do các dòng không liền nhau, nên mình sẽ tìm kiếm dòng chứa giá trị lớn nhất ( dòng tổng số tiền phải trả của tất cả nhà cung cấp) rồi kéo công thức MID xuống tận dòng đó.
Sau đó filter những cái lớn hơn tháng 4 -> xóa dữ liệu.
Tiếp đó là tính tổng lại cho từng nhà cung cấp thì hơi khoai, mình chưa nghĩ ra :(

Cảm ơn bạn nhiều
 

File đính kèm

  • AP (2).xlsb
    21.8 KB · Đọc: 3
Upvote 0
Đây file ví dụ bạn nhé, mục địch của mình trong file này là sẽ tự động xóa tất các cả dòng mà chưa đến hạn thanh toán (cột N) ( ví dụ mình chọn tháng 5 thì sẽ xóa toàn bộ dữ liệu hạn thanh toán tháng 6 và 7)
Sau đó tự cộng tổng lại theo từng nhà cung cấp , file này mình lấy từ hệ thống ra ( yêu cầu cấp trên ko được xóa bất cứ dòng nào ngoài các dòng chưa đến hạn thanh toán)
Mình định viết bước đầu sẽ tự động kéo công thức MID số tháng đến dòng cuối, tức dòng tổng cộng của tất cả nhà cung cấp.
Sau đó sẽ xóa bỏ những cái không thuộc tháng tìm kiếm.
Tiếp đến là sẽ cộng lại từng NCC một.
Do mới đang tự tìm hiểu về VBA nên thấy khoai quá :) , bạn xem giúp mình đoạn code trên có gì sai với nhé.
Đúng ra nên giải thích thế này nè:
1/ Tháng tìm kiếm là tháng xx mà code sẽ hiển thị hộp thoại để em tự nhập vào (hoặc trên ô A1... của sheet abc nào đó)
2/ Mỗi nhà cung cấp có tên ở cột F, có dòng tương ứng dòng "Name" ở cột A (ví dụ ABC, BCD..)
3/ Ngày tháng cần đối chiếu với tháng tìm kiếm (ở mục 1) là cột N. Nếu tháng ở cột N lớn hơn tháng tìm kiếm thì xóa bỏ (Khuyên: thực ra không nên xóa bỏ ở data gốc mà nên copy giá trị thỏa mãn sang sheet khác, lúc cần có thể dò lại)
4/ Tính tổng giá trị các cột H, K theo từng nhà cung cấp (NCC nói tới ở mục 2)
 
Upvote 0
Cái cần là kết quả mong muốn của bạn như thế nào thì lại không thấy
Cái kết quả mong muốn của mình chính là phần cấp trên yêu cầu đó bạn.
Bài đã được tự động gộp:

Đúng ra nên giải thích thế này nè:
1/ Tháng tìm kiếm là tháng xx mà code sẽ hiển thị hộp thoại để em tự nhập vào (hoặc trên ô A1... của sheet abc nào đó)
2/ Mỗi nhà cung cấp có tên ở cột F, có dòng tương ứng dòng "Name" ở cột A (ví dụ ABC, BCD..)
3/ Ngày tháng cần đối chiếu với tháng tìm kiếm (ở mục 1) là cột N. Nếu tháng ở cột N lớn hơn tháng tìm kiếm thì xóa bỏ (Khuyên: thực ra không nên xóa bỏ ở data gốc mà nên copy giá trị thỏa mãn sang sheet khác, lúc cần có thể dò lại)
4/ Tính tổng giá trị các cột H, K theo từng nhà cung cấp (NCC nói tới ở mục 2)
Đúng rồi bạn, có cái mục 4 thì tổng phải ở đúng vị trí dưới từng NCC ở cột H ( cách 1 dòng ) :)
 
Upvote 0
Web KT

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

Back
Top Bottom