Tính toán trong UserForm

Liên hệ QC

taxi51

Thành viên mới
Tham gia
12/8/09
Bài viết
7
Được thích
12
Chào các bạn.
Tôi là thành viên mới nên trình độ VBA cũng chỉ là bước đầu tập tành. Tôi đang thử làm một số bài tập cơ bản nhưng gặp khó khăn chưa giải quyết được các bạn giúp tôi với cụ thể như sau. Giả sử trong 1 UserForm tôi có 3 Textbox chứa dữ liệu số tôi muốn kết quả của 3 textbox trên sau khi được tính toán (Cộng, trừ, nhân, chia...) được hiển thị kết quả ở textbox thứ tư và textbox thứ tư này code sẽ phải viết như thế nào?phải format ra sao là hợp lý và đúng nhất.
Mong các bạn giúp chỉ dùm.
Chân thành cám ơn các bạn trước.
 
Chào các bạn.
Tôi là thành viên mới nên trình độ VBA cũng chỉ là bước đầu tập tành. Tôi đang thử làm một số bài tập cơ bản nhưng gặp khó khăn chưa giải quyết được các bạn giúp tôi với cụ thể như sau. Giả sử trong 1 UserForm tôi có 3 Textbox chứa dữ liệu số tôi muốn kết quả của 3 textbox trên sau khi được tính toán (Cộng, trừ, nhân, chia...) được hiển thị kết quả ở textbox thứ tư và textbox thứ tư này code sẽ phải viết như thế nào?phải format ra sao là hợp lý và đúng nhất.
Mong các bạn giúp chỉ dùm.
Chân thành cám ơn các bạn trước.

Bạn phải thêm 1 số ComandButton nữa, ví dụ: Tôi chỉ cần 3 Textbox thôi:
Txt1: Nhập giá trị 1
Txt2: Nhập giá trị 2
Txt3: Kết quả
Cmd1: Tôi gõ là +
Cmd2: Tôi gõ là -
Cmd3: Tôi gõ là *
Cmd4: Tôi gõ là /
Công thức cũng bình thường thôi và gán cho mỗi ComandButton tương ứng:
Txt3 = Val(Txt1) + Val(Txt2) (gán cho Cmd1), tương tự cho mấy cái kia.

Nhưng xin lưu ý rằng, đối với Cmd4 bạn cần phải bẩy lỗi chia cho 0
If Txt2 = "" Or Val(Txt2) = 0 Then
Msgbox "ban phai nhap so vao o Txt2" : Exit sub
Else
Txt3 = Val(Txt1) / Val(Txt2)
End if

Vấn đề định dạng, bạn gõ Txt3 = Format(Txt3,"#,##0")
Tùy kiểu định dạng số hoặc ngày "dd/mm/yyyy". v.v...

Chúc bạn thành công!
 
Lần chỉnh sửa cuối:
Trời mưa gió quá cũng không biết làm gì, tôi làm cho bạn 1 File ví dụ về công thức luôn nè, từ cái này bạn có thể tự phát triển ra thêm đó bạn.-+*/
 

File đính kèm

  • VDTextbox.xls
    33.5 KB · Đọc: 230
Trước hết xin chân thành các bạn đã tận tình giúp đỡ và gửi file mẫu để mình có thể tham khảo. Tôi cũng hoàn toàn bất ngờ khi mình là thành viên mới của một diễn đàn trong đó thành viên của diễn đàn tận tình giúp đỡ lẫn nhau. Tôi rất hy vọng sẽ nhận được sự giúp đỡ nhiều hơn nữa cảu các bạn. Một lần nữa chân thành cám ơn các bạn.
 
Trước hết xin chân thành các bạn đã tận tình giúp đỡ và gửi file mẫu để mình có thể tham khảo. Tôi cũng hoàn toàn bất ngờ khi mình là thành viên mới của một diễn đàn trong đó thành viên của diễn đàn tận tình giúp đỡ lẫn nhau. Tôi rất hy vọng sẽ nhận được sự giúp đỡ nhiều hơn nữa cảu các bạn. Một lần nữa chân thành cám ơn các bạn.

Bạn cứ yên tâm. Khẩu hiệu của GPE luôn là "Chia sẻ và kết nối cộng đồng"

P/S : Câu này tôi đọc được trong topic kỷ niệm SN lần thứ 3 của GPE đấy
 
Tôi đã xem bài của các bạn gửi cho tôi rồi tuy nhiên khi thực hành tôi vẫn gặp một số khó khăn cụ thể như sau:
Khi sử dụng ngoài bảng tính tôi có một đơn giá với giá trị chi tiết là 16545.4545454545 sau khi sử dụng công cụ Increase decimal tôi có giá trị rút gọn là:16,545 khi tôi nhân giá trị này với 10 tôi được kết quả:165,455 (đúng con số chính xác mà tôi cần)
Nhưng khi đưa 16,545 vào textbox1, textbox2 = 10, thực hiện phép nhân để có kết quả ở textbox3 thì kết quả không như tôi mong muốn chính xác kết quả phải là 165,455 thì tôi chỉ thu được kết quả là: 165,450. Tôi có thực hiện nhiều cách nhưng kết quả vẫn như vậy.
Xin hỏi các bạn trong quá trình thực hiện tôi sai sót ở phần nào? hay cách format các textbox của tôi chưa đúng? Các bạn vui lòng chỉ ra chỗ thiếu sót của tôi dùm.
Cám ơn các bạn trước thật nhiều.
 
Tôi đã xem bài của các bạn gửi cho tôi rồi tuy nhiên khi thực hành tôi vẫn gặp một số khó khăn cụ thể như sau:
Khi sử dụng ngoài bảng tính tôi có một đơn giá với giá trị chi tiết là 16545.4545454545 sau khi sử dụng công cụ Increase decimal tôi có giá trị rút gọn là:16,545 khi tôi nhân giá trị này với 10 tôi được kết quả:165,455 (đúng con số chính xác mà tôi cần)
Nhưng khi đưa 16,545 vào textbox1, textbox2 = 10, thực hiện phép nhân để có kết quả ở textbox3 thì kết quả không như tôi mong muốn chính xác kết quả phải là 165,455 thì tôi chỉ thu được kết quả là: 165,450. Tôi có thực hiện nhiều cách nhưng kết quả vẫn như vậy.
Xin hỏi các bạn trong quá trình thực hiện tôi sai sót ở phần nào? hay cách format các textbox của tôi chưa đúng? Các bạn vui lòng chỉ ra chỗ thiếu sót của tôi dùm.
Cám ơn các bạn trước thật nhiều.

Nhìn nhé, từ con số 16,545.4545454545 x 10 sẽ cho ra 165,454.545454545 phải không bạn? Dĩ nhiên khi rút gọn dạng #,##0 sẽ cho ra 165,455 là đúng.
Còn 16,545 là số nguyên (không có phần lẻ đằng sau) thì nhân cho 10 dĩ nhiên phải cho ra 165,450 là quá chính xác rồi còn gì???
Nếu bạn muốn tính cho nó có kết quả đúng thì bạn nhập đúng số ban đầu, nghĩa là tại Textbox1, bạn nhập 16545.4545454545Textbox2 bạn nhập 10 thì Textbox3 mới cho ra kết quả 165,455chứ! Điều này sơ đẳng mà bạn???
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom