Bảng kê vận chuyển bằng VBA

Liên hệ QC

tranphuson

Thành viên thường trực
Tham gia
14/8/09
Bài viết
269
Được thích
10
Giới tính
Nam
Mình có 1 file tính vận cước vận chuyển, trong file này công thức còn bị lỗi. Vui lòng hỗ trợ

1. Công thức Cột Y chưa đúng nên chưa thể hiện giá trị
2. Cột AA so sánh giữa Cột Z - Cột V

Nếu được thì chuyển qua VBA tính cũng được. Xin cảm ơn
 

File đính kèm

Mình có 1 file tính vận cước vận chuyển, trong file này công thức còn bị lỗi. Vui lòng hỗ trợ

1. Công thức Cột Y chưa đúng nên chưa thể hiện giá trị
2. Cột AA so sánh giữa Cột Z - Cột V

Nếu được thì chuyển qua VBA tính cũng được. Xin cảm ơn
Một số trọng lượng không có trong bảng tra nên lỗi.
Nếu A3:A171 sheet "Cost- Raw" gõ = tay thì công thức sẽ gọn hơn.
Mã:
Y4=INDEX('Cost- Raw'!$B$3:$AN$171,SUMPRODUCT(('Cost- Raw'!$A$3:$A$171=$P4)*ROW($3:$171))-2,MATCH($N4,'Cost- Raw'!$B$1:$AN$1,0)+MATCH($X4,'Cost- Raw'!$B$2:$J$2,0)-1)
 
Một số trọng lượng không có trong bảng tra nên lỗi.
Nếu A3:A171 sheet "Cost- Raw" gõ = tay thì công thức sẽ gọn hơn.
Mã:
Y4=INDEX('Cost- Raw'!$B$3:$AN$171,SUMPRODUCT(('Cost- Raw'!$A$3:$A$171=$P4)*ROW($3:$171))-2,MATCH($N4,'Cost- Raw'!$B$1:$AN$1,0)+MATCH($X4,'Cost- Raw'!$B$2:$J$2,0)-1)

Cảm ơn bạn đã hỗ trợ. Mình có thể chuyển công thức Excel bằng VBA được chứ, xin cảm ơn lần nữa
 
Cảm ơn bạn đã hỗ trợ. Mình có thể chuyển công thức Excel bằng VBA được chứ, xin cảm ơn lần nữa
Một số trọng lượng không có trong bảng tra nên rỗng.
Mã:
Sub CuocCP()
Dim GIA
Dim TK
Dim STT
Dim KQ
Dim i, j, k
With Sheet6
    k = .Range("A3").End(xlDown).Row
    TK = .Range("A3", "AA" & k)
End With
With Sheet7
    GIA = .Range("A1", .Range("AN2").End(xlDown))
    k = .Range("A3").End(xlDown) * 100
End With
ReDim STT(1 To k, 1 To 1)
For i = 3 To UBound(GIA)
    STT(GIA(i, 1) * 100, 1) = i
Next i
With CreateObject("Scripting.Dictionary")
    For i = 2 To UBound(GIA, 2) Step 10
        .Item(GIA(1, i)) = i
    Next i
    For j = 2 To 10
        .Item(GIA(2, j)) = j - 1
    Next j
    ReDim KQ(1 To UBound(TK) - 1, 1 To 1)
    For i = 2 To UBound(TK)
        If STT(TK(i, 16) * 100, 1) Then
            k = STT(TK(i, 16) * 100, 1)
            j = .Item(TK(i, 14)) + .Item(TK(i, 24)) - 1
            KQ(i - 1, 1) = GIA(k, j)
        End If
    Next i
End With
With Sheet6
    .Range("Y4").Resize(UBound(KQ), 1) = KQ
End With
End Sub
 
Một số trọng lượng không có trong bảng tra nên rỗng.
Mã:
Sub CuocCP()
Dim GIA
Dim TK
Dim STT
Dim KQ
Dim i, j, k
With Sheet6
    k = .Range("A3").End(xlDown).Row
    TK = .Range("A3", "AA" & k)
End With
With Sheet7
    GIA = .Range("A1", .Range("AN2").End(xlDown))
    k = .Range("A3").End(xlDown) * 100
End With
ReDim STT(1 To k, 1 To 1)
For i = 3 To UBound(GIA)
    STT(GIA(i, 1) * 100, 1) = i
Next i
With CreateObject("Scripting.Dictionary")
    For i = 2 To UBound(GIA, 2) Step 10
        .Item(GIA(1, i)) = i
    Next i
    For j = 2 To 10
        .Item(GIA(2, j)) = j - 1
    Next j
    ReDim KQ(1 To UBound(TK) - 1, 1 To 1)
    For i = 2 To UBound(TK)
        If STT(TK(i, 16) * 100, 1) Then
            k = STT(TK(i, 16) * 100, 1)
            j = .Item(TK(i, 14)) + .Item(TK(i, 24)) - 1
            KQ(i - 1, 1) = GIA(k, j)
        End If
    Next i
End With
With Sheet6
    .Range("Y4").Resize(UBound(KQ), 1) = KQ
End With
End Sub

Cảm ơn bạn rất nhiều - Công thức cột Y đã chuyển thành VBA.

Ngoài ra, làm phiền thêm là nếu chuyển công thức excel ở các cột W, X, Z, AA thành VBA luôn được chứ.

Xin cảm ơn
 
Cảm ơn bạn rất nhiều - Công thức cột Y đã chuyển thành VBA.

Ngoài ra, làm phiền thêm là nếu chuyển công thức excel ở các cột W, X, Z, AA thành VBA luôn được chứ.

Xin cảm ơn

Cho mình hỏi thêm là số lượng dòng tăng lên trong file này bị báo lỗi

1570446941640.png
Xin cảm ơn
 

File đính kèm

Bạn vẫn giữ nguyên code gốc?
Bài đã được tự động gộp:

Số liệu Sheet pop_up của bạn khác xa file mẫu đó bạn.

Mình có đánh nhầm thêm số 0 vào "STT(GIA(i, 1) * 100, 1) = i". Ngoài ra mình bổ sung thêm giá vận chuyển chi tiết thêm để Sheet "Pop-up" dò ra giá trị đúng.

Xin cảm ơn
 
Mình có đánh nhầm thêm số 0 vào "STT(GIA(i, 1) * 100, 1) = i". Ngoài ra mình bổ sung thêm giá vận chuyển chi tiết thêm để Sheet "Pop-up" dò ra giá trị đúng.

Xin cảm ơn
Vấn đề là tại sheet po_up
file bài 1: max cột P=33 < max weight của sheet cost_raw ( 55 )
file bài 6: max cột P=355 > max weight của sheet cost_raw ( 55 )
 
Anh ơi, sao anh dò được vùng hay vậy vì theo như em đc biết HCM đi An giang là vùng C mà An giang đi HCM lại là vùng D
 
Web KT

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

Back
Top Bottom