Định dạng kiểu số trên textbox
Chào ACE. Xin hổ trợ như sau:
Tôi tạo form xuất hóa đơn (10 dòng). Sau khi nhập SL-ĐG-TT thì format kiểu số OK, nhưng sang dòng 2 thì dòng tổng chỉ lấy giá trị trước dấu phân cách số dù đã dùng "CDbl" để chuyển trước khi tính.
Ví dụ: Dòng 1 số nhập 1000 – Dùng Format số sau update hiển thị 1,000 – Dòng tổng hiển thị 1,000
Dòng 2 số nhập 2000 – Dùng Format số sau update hiển thị 2,000 – Dòng tổng hiển thị 2,001
Nhờ ACE hổ trợ định dạng kiểu số sau khi nhập textbox cho dễ nhìn & phải tính tổng đúng.
Tôi chỉ giúp 1 lần thôi.
Thực ra ban đầu tôi còn không muốn xem. Thời nào rồi mà còn dùng VNI. Tôi rất dị ứng với những cái này.
408
Tôi viết nhanh, không suy nghĩ nhiều, không tìm cách tối ưu, chỉ giải quyết vấn đề duy nhất của bạn. Những thứ khác chờ ngời khác.
Tôi đề nghị
1. Xóa Sub DinhDangSo cũ, xóa ChuyenSo.
2. Nói nôm na thì giá trị số do người dùng nhập (dùng để tính toán) thì LƯU TRỮ trong thuộc tính TAG của mỗi textbox, còn giá trị sau khi định dạng thì chèn vào thuộc tính VALUE cho bàn dân thiên hạ chiêm ngưỡng.
Sub DinhDangSo(ByVal textbox_prefix As String, ByVal chiso As Long)
Dim k As Long, tatca As Double, thue As Double, tc As Double
With Me.Controls(textbox_prefix & chiso)
.Tag = .Value
.Value = Format(.Value, "#,###")
End With
With Me.Controls("TriGia" & chiso)
.Value = Round(Val(Me.Controls("SL" & chiso).Tag) * Val(Me.Controls("DG" & chiso).Tag), 2)
.Tag = .Value
.Value = Format(.Value, "#,###")
End With
For k = 1 To 10
tatca = tatca + Val(Me.Controls("TriGia" & k).Tag)
Next k
CONG.Value = Format(tatca, "#,###")
thue = Round((tatca * Val(VAT.Value)) / 100, 2)
ThueVAT.Value = Format(thue, "#,###")
tc = Round(tatca + (tatca * Val(VAT.Value)) / 100, 2)
TongCong.Value = Format(tc, "#,###")
BangChu.Value = USD(tc)
' If PT_TToan.Value = "Tieàn ñoàng" Then
' BangChu.Value = VND(tc)
' ThueVAT.Value = Format(Round((tatca * VAT.Value) / 100, 0), "#,###")
' End If
End Sub
Private Sub DG1_AfterUpdate()
On Error Resume Next
Call DinhDangSo("DG", 1)
End Sub
Private Sub SL1_AfterUpdate()
On Error Resume Next
Call DinhDangSo("SL", 1)
End Sub
Các DG2_AfterUpdate, DG3_AfterUpdate, …, DG10_AfterUpdate tương tự DG1_AfterUpdate
Các SL2_AfterUpdate, SL3_AfterUpdate, …, SL10_AfterUpdate tương tự SL1_AfterUpdate
www.giaiphapexcel.com/diendan/threads/%C4%90%E1%BB%8Bnh-d%E1%BA%A1ng-ki%E1%BB%83u-s%E1%BB%91-tr%C3%AAn-textbox.161113/
1. Cám ơn Bạn đã hổ trợ, code chạy OK. Sau khi ghi data vào file về nguyên tắc xóa trắng textbox nhưng các textbox "TriGia" không xóa (TriGia1.Value="")
2. Tôi cũng muốn dùng unicode nhưng label không cho (vni thì OK). Xin hổ trợ.
Không gõ trong cửa sổ Properties. Click 1 lần để chọn CommandButton hoặc Label -> click lần nữa để vào trạng thái chỉnh sửa Caption -> gõ để chỉnh sửa. Tất nhiên phải chọn phông chữ thích hợp trong cửa sổ Properties, vd. Times New Roman.
Cám ơn bạn Batman1. Đã dùng được unicode theo như bạn hướng dẫn. Chỉ còn textbox TriGia không xoá trắng để nhập phiếu mới dù đã có code TriGia1=“”
Bạn hỏi kiểu ấy tôi không đoán ý bạn đâu. Phài mô tả, liệt kê tất cả các thao tác kể từ khi hiện Form: trước tiên tôi gõ cái này vào đây …, sau đó lay lay cái kia, giật giật cái nọ, rồi tôi nhấn cái này để thực hiện code … Lẽ ra phải có TriGia1 RỖNG nhưng nó không rỗng.
Còn kiểu tôi CHO TriGia1="", nhưng chả biết trước đó có những gì, rồi CHO khi nào, CHO trong bối cảnh nào, cách CHO, thì ngồi đợi người khác nhé.
Chào Bạn Batman1 và các thành viên diễn đàn. (Dù đã quá tuổi & còn tí đam mê nhưng không học bài bản nên xin giúp đỡ cho trọn vẹn)
Trường hợp có nhiều sản phẩm nên phải chọn tìm kiếm từ listbox "LB" form "MaKhach" và sau khi click chọn thì giá trị tìm được phải gán vào textbox hiện hành "TenHH2" form F_Input.
Trân trọng.
Chắc bạn chưa tuổi hưu mà nhỉ; Vậy thì dịp khác hãy nên nói về tuổi tác,. . . . .
Khóa học Power PI – Ứng dung trong Nhân sự
TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...
Xem khóa học
Bình luận