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

Liên hệ QC

Phuoctaifast

Thành viên mới
Tham gia
4/7/18
Bài viết
32
Được thích
9
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

  • Trongluong.xlsm
    23.2 KB · Đọc: 5
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.
 
Upvote 0
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

  • 201123 Trongluong.xlsm
    27.5 KB · Đọc: 15
Lần chỉnh sửa cuối:
Upvote 0
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
 
Upvote 0
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ứ. ?
 
Upvote 0
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)
 
Upvote 0
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
 
Upvote 0
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

  • 1606278359471.png
    1606278359471.png
    82.9 KB · Đọc: 2
  • Xây Dựng Báo Cáo - TCL vina.xlsm
    392 KB · Đọc: 6
Upvote 0
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
 
Upvote 0
Web KT
Back
Top Bottom