Tính trọng lượng ngay trên textbox theo nhiều điều kiện, và trả về sheet

Phuoctaifast

Thành viên mới
Tham gia ngày
4 Tháng bảy 2018
Bài viết
25
Được thích
3
Điểm
165
Tuổi
27
1606066653566.png

Xin chào các bạn cộng đồng GPE ,
Mình mong được sự giúp đỡ của các bạn ạ, thật sự cám ơn.
Trong file của mình đang gặp một số rắc rối như sau ạ :
- Tính tổng trọng lượng theo 3 điều kiện nếu chọn điều kiện theo combobox :
. combobox có 3 điều kiện khi lựa chọn :
+ DE : hàng đi bộ : cách tính
Dài * rộng *cao / 3000 (cm) = kg

+DF : hàng đi bay : cách tính
Dài * rộng * cao / 6000 (cm) = kg

+BT : hàng đi quốc tế : cách tính
Dài * rộng * cao / 9000 (cm) = kg

- những công thức này sẽ được lựa chọn và tính đúng vào ô textbox Trọng lượng ạ, cụ thể thì mình có hàm excel đã tính sẵn như sau :
1606066998311.png

- Ô textbox Thành tiền : trọng lượng đã quy đổi nhân với 15,000 nghìn ạ
vd : 1kg*15.000=15.000

Mong các bạn giúp đỡ mình ạ, thanks các bạn!
 

File đính kèm

ongke0711

Thành viên tiêu biểu
Tham gia ngày
7 Tháng chín 2006
Bài viết
772
Được thích
884
Điểm
860
Nơi ở
HCM
View attachment 249816

- Tính tổng trọng lượng theo 3 điều kiện nếu chọn điều kiện theo combobox :
...
Thiếu một textbox số kiện (vì sẽ có nhiều kiện cùng qui cách đóng gói). :)
Tôi cũng mới nhập một lô hàng qua đường hàng không, cũng tính thử trọng lượng để qui ra cước phí như vậy nhưng dùng tool của mấy trang web có sẳn.
 

huhumalu

Thành viên hoạt động
Tham gia ngày
20 Tháng mười 2009
Bài viết
137
Được thích
19
Điểm
670
Tuổi
32
PHP:
Slc = txt_loaihinh.Value
        If Slc = "DE" Then TT = 3000 Else:
        If Slc = "DF" Then TT = 6000 Else:
        If Slc = "BT" Then TT = 9000
    L = Me.txt_dai.Value
    W = Me.txt_rong.Value
    H = Me.txt_cao.Value
If L <> "" And W <> "" And H <> "" Then
    Me.txt_trongluong.Value = L * W * H / TT
    Me.txt_thanhtien.Value = 20000 * L * W * H / TT
End If
Thực ra có nhiều cách làm khác nhau, nhưng cũng chưa hiểu hết ý của bạn.
Bạn chỉ thuần túy muốn tính giá trị tại trọng lượng và thành tiền ? Hay là khi bạn lựa chọn thấy cao thấp gì đó thì lại thay đổi lựa chọn ?
Nếu bạn muốn thay đổi giá trị trong ô loaihinh thì tiền tự động thay đổi vì có thể bắt sự kiện.

PHP:
Private Sub txt_loaihinh_Change()
    Slc = txt_loaihinh.Value
            If Slc = "DE" Then TT = 3000 Else:
            If Slc = "DF" Then TT = 6000 Else:
            If Slc = "BT" Then TT = 9000
        L = Me.txt_dai.Value
        W = Me.txt_rong.Value
        H = Me.txt_cao.Value
    If L <> "" And W <> "" And H <> "" Then
        Me.txt_trongluong.Value = Round(L * W * H / TT, 2)
        Me.txt_thanhtien.Value = Round(20000 * L * W * H / TT, 2)
    End If
End Sub
Bạn nhập kích thước và thay đổi loại hình, thì trọng lượng và tiền sẽ tự nhảy.
 

File đính kèm

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

Phuoctaifast

Thành viên mới
Tham gia ngày
4 Tháng bảy 2018
Bài viết
25
Được thích
3
Điểm
165
Tuổi
27
PHP:
Slc = txt_loaihinh.Value
        If Slc = "DE" Then TT = 3000 Else:
        If Slc = "DF" Then TT = 6000 Else:
        If Slc = "BT" Then TT = 9000
    L = Me.txt_dai.Value
    W = Me.txt_rong.Value
    H = Me.txt_cao.Value
If L <> "" And W <> "" And H <> "" Then
    Me.txt_trongluong.Value = L * W * H / TT
    Me.txt_thanhtien.Value = 20000 * L * W * H / TT
End If
Thực ra có nhiều cách làm khác nhau, nhưng cũng chưa hiểu hết ý của bạn.
Bạn chỉ thuần túy muốn tính giá trị tại trọng lượng và thành tiền ? Hay là khi bạn lựa chọn thấy cao thấp gì đó thì lại thay đổi lựa chọn ?
Nếu bạn muốn thay đổi giá trị trong ô loaihinh thì tiền tự động thay đổi vì có thể bắt sự kiện.

PHP:
Private Sub txt_loaihinh_Change()
    Slc = txt_loaihinh.Value
            If Slc = "DE" Then TT = 3000 Else:
            If Slc = "DF" Then TT = 6000 Else:
            If Slc = "BT" Then TT = 9000
        L = Me.txt_dai.Value
        W = Me.txt_rong.Value
        H = Me.txt_cao.Value
    If L <> "" And W <> "" And H <> "" Then
        Me.txt_trongluong.Value = Round(L * W * H / TT, 2)
        Me.txt_thanhtien.Value = Round(20000 * L * W * H / TT, 2)
    End If
End Sub
Bạn nhập kích thước và thay đổi loại hình, thì trọng lượng và tiền sẽ tự nhảy.
cám ơn bạn nhiều mình đã làm được, cách thức mình thì chọn cái nào cao hơn sẽ lấy bạn ạ, do đó có thêm ô trọng lượng thực tế nhưng khi mình để vào thì giá trị nó trả ra nhiều số 0 quá mà không trả về giá trị là 2:
ví dụ :
dài : 20 * rộng 20 * cao 20
trọng lượng quy đổi : 2.67 kg
trọng lượng thực tế : 8000 kg ( không trả về giá trị đơn, vì nó đang hiểu là phép tính nhân : 20*20*20=8000)
Mong bạn chỉ giúp mình
1606122210553.png
 

huhumalu

Thành viên hoạt động
Tham gia ngày
20 Tháng mười 2009
Bài viết
137
Được thích
19
Điểm
670
Tuổi
32
Mình nhập thì thấy vẫn đúng mà bạn.
1606123318937.png
trọng lượng thực tế : 8000 kg ( không trả về giá trị đơn, vì nó đang hiểu là phép tính nhân : 20*20*20=8000)
--------
ủa cái này thì trong công thức của bạn là lấy Dài x rộng x cao sau đó chia cho tùy loại DE, DF, BT là các số 3000 | 6000 | 9000 mà.
bạn xem chỗ này nè.

PHP:
Me.txt_trongluong.Value = Round(L * W * H / TT, 2)
---------
p/s : Dài x Rộng x Cao thì mới là thể tích thôi, bạn phải nhân với trọng lượng riêng thì mới ra khối lượng chứ. ?
 

VetMini

Chuyên gia GPE
Tham gia ngày
21 Tháng mười hai 2012
Bài viết
10,384
Được thích
12,677
Điểm
1,560
txt_trongluong.Value = text_Dai.Value * text_Rong.Value * text_cao.Value / IIF(Slc = "DE", 3000, IIF(Slc = "DF", 6000, IIF(Slc = "BT", 9000, 1)))
txt_thanhtien.Value = Round(20000 * txt_trongluong.Value, 2)
txt_trongluong.Value = Round(txt_trongluong.Value, 2)
 

Phuoctaifast

Thành viên mới
Tham gia ngày
4 Tháng bảy 2018
Bài viết
25
Được thích
3
Điểm
165
Tuổi
27
txt_trongluong.Value = text_Dai.Value * text_Rong.Value * text_cao.Value / IIF(Slc = "DE", 3000, IIF(Slc = "DF", 6000, IIF(Slc = "BT", 9000, 1)))
txt_thanhtien.Value = Round(20000 * txt_trongluong.Value, 2)
txt_trongluong.Value = Round(txt_trongluong.Value, 2)
thanks bạn ạ, mình đã làm được
Bài đã được tự động gộp:

txt_trongluong.Value = text_Dai.Value * text_Rong.Value * text_cao.Value / IIF(Slc = "DE", 3000, IIF(Slc = "DF", 6000, IIF(Slc = "BT", 9000, 1)))
txt_thanhtien.Value = Round(20000 * txt_trongluong.Value, 2)
txt_trongluong.Value = Round(txt_trongluong.Value, 2)
Mình nhập thì thấy vẫn đúng mà bạn.
View attachment 249851
trọng lượng thực tế : 8000 kg ( không trả về giá trị đơn, vì nó đang hiểu là phép tính nhân : 20*20*20=8000)
--------
ủa cái này thì trong công thức của bạn là lấy Dài x rộng x cao sau đó chia cho tùy loại DE, DF, BT là các số 3000 | 6000 | 9000 mà.
bạn xem chỗ này nè.

PHP:
Me.txt_trongluong.Value = Round(L * W * H / TT, 2)
---------
p/s : Dài x Rộng x Cao thì mới là thể tích thôi, bạn phải nhân với trọng lượng riêng thì mới ra khối lượng chứ. ?
thanks bạn ạ, mình đã làm được
Bài đã được tự động gộp:

Thiếu một textbox số kiện (vì sẽ có nhiều kiện cùng qui cách đóng gói). :)
Tôi cũng mới nhập một lô hàng qua đường hàng không, cũng tính thử trọng lượng để qui ra cước phí như vậy nhưng dùng tool của mấy trang web có sẳn.
thanks bạn ạ, mình đã làm được
 

Phuoctaifast

Thành viên mới
Tham gia ngày
4 Tháng bảy 2018
Bài viết
25
Được thích
3
Điểm
165
Tuổi
27
Mình nhập thì thấy vẫn đúng mà bạn.
View attachment 249851
trọng lượng thực tế : 8000 kg ( không trả về giá trị đơn, vì nó đang hiểu là phép tính nhân : 20*20*20=8000)
--------
ủa cái này thì trong công thức của bạn là lấy Dài x rộng x cao sau đó chia cho tùy loại DE, DF, BT là các số 3000 | 6000 | 9000 mà.
bạn xem chỗ này nè.

PHP:
Me.txt_trongluong.Value = Round(L * W * H / TT, 2)
---------
p/s : Dài x Rộng x Cao thì mới là thể tích thôi, bạn phải nhân với trọng lượng riêng thì mới ra khối lượng chứ. ?
sau khi mình làm cho file chính thì có lỗi nó xảy ra nhờ bạn chỉ chỗ sai giúp mình với ạ.
1606278342409.png

1606278416679.png
 

File đính kèm

befaint

|||||||||||||
Tham gia ngày
6 Tháng một 2011
Bài viết
10,330
Được thích
12,129
Điểm
1,560
Dòng bôi vàng đổi thành:

If TT<>0 Then
me.txt_tlquydoi.value = application.round(L*W*H/TT,2)
Else
me.txt_tlquydoi.value = "#DIV/0!"
End If
 
Top Bottom