Sự kiện change trong Textbox

Liên hệ QC

truonggiang73

Thành viên hoạt động
Tham gia
27/6/09
Bài viết
113
Được thích
35
Các bạn giải đáp giúp tôi hai vấn đề trong Form với (Là một phần trong chương trình tôi đang làm):
- Ví dụ trong Form có 3 Textbox; T1 và T2 để nhập dữ liệu kiểu số, T3 hiển thị tổng của T1 và T2. Có nghĩa là khi nhập T1=1.000,0 thì đồng thời T3 = 1.000,0 ; nhập T2 = 2.000,0 thì T3 đồng thời cho giá trị là 3.000,0.
- Làm thế nào để định dạng T1,2,3 có dạng số liệu như trên. Có nghĩa là gõ từ bàn phím là 1000 thì số trong T1 là 1.000,0.
 
Lần chỉnh sửa cuối:
Bạn tham khảo Topic này cùng vấn đề với bạn
 
Upvote 0
Anh SEALAND ạ ! Nhìn chung là áp dụng được nhưng các Textbox không nhận các giá trị thập phân, chắc là tại định dạng- Format. Nhờ anh cùng mọi người giúp cho cách có 1 số thập phân đi. Em thử mãi vấn không được.

Me.TextBox1 = Format(Format(Me.TextBox1, "0.0"), "#,##0")

Hoặc có sưu tầm đoạn code này cũng không : Địa chỉ ST : http://www.giaiphapexcel.com/forum/archive/index.php/t-4629.html
TextBox1.Value = Format(TextBox1.Value,"#,##0.00") ' Cho hai số lẻ
 
Lần chỉnh sửa cuối:
Upvote 0
gõ từ bàn phím là 1000 thì số trong T1 là 1.000,0.
Bạn xem ở đây, Bài viết số # 17

Các bạn giải đáp giúp tôi hai vấn đề trong Form với (Là một phần trong chương trình tôi đang làm):
- Ví dụ trong Form có 3 Textbox; T1 và T2 để nhập dữ liệu kiểu số, T3 hiển thị tổng của T1 và T2. Có nghĩa là khi nhập T1=1.000,0 thì đồng thời T3 = 1.000,0 ; nhập T2 = 2.000,0 thì T3 đồng thời cho giá trị là 3.000,0.
Vì số liệu nhap vao textbox ở dạng text nên trước khi tính toán bạn phải chuyển nó về dạng số.
Muốn T3 tự động cập nhật khi T1 hoặc T2 thay đổi thì bổ sung code sau vào sự kiện Exit của T1 và T2
Sub ..._Exit
T3 = (T1*1) + (T2*1)
End sub
 
Lần chỉnh sửa cuối:
Upvote 0
- Làm thế nào để định dạng T1,2,3 có dạng số liệu như trên. Có nghĩa là gõ từ bàn phím là 1000 thì số trong T1 là 1.000,0.
Fomat số kiểu này mà cho vào sự kiện Change thì làm sao mà gõ chứ!
Ví dụ:
- Vừa gõ xong số 1, lập tức nó biến thành 1,0 và dấu nháy sẽ nằm phía sau số 0
- Muốn gõ tiếp lại phải dùng chuột dời con trỏ đến trước dấu phẩy
- Mất công
----------------------
Ít ra cũng phải cho vào sự kiện AfterUpdate
 
Upvote 0
Vấn đề T3 tự động cập nhật = T1+T2 mình làm được rồi (theo hướng dẫn tại #7) nhưng sau định dạng thì các T1-3 có dạng 1.000 nhưng không không định dạng 1.000,0 được. nhật số thập phân T1-3 KHÔNG CHO NHẬP. Giúp mình với được không.
 

File đính kèm

Upvote 0
Các bạn giải đáp giúp tôi hai vấn đề trong Form với (Là một phần trong chương trình tôi đang làm):
- Ví dụ trong Form có 3 Textbox; T1 và T2 để nhập dữ liệu kiểu số, T3 hiển thị tổng của T1 và T2. Có nghĩa là khi nhập T1=1.000,0 thì đồng thời T3 = 1.000,0 ; nhập T2 = 2.000,0 thì T3 đồng thời cho giá trị là 3.000,0.
- Làm thế nào để định dạng T1,2,3 có dạng số liệu như trên. Có nghĩa là gõ từ bàn phím là 1000 thì số trong T1 là 1.000,0.

1/ Để có thể cộng các gía trị của textbox, trong khi thiết kế, bạn đặt gía trị Text hoặc Value của textbox bằng 0
2/ Trong sự kiện AfterUpdate của textbox, ghi các dòng lệnh sau
T1.Value = Format(T1.Value,"#,##0.0)
T3.Value = T1.Value + T2.Value
Tương tự cho T2
Thân
 
Lần chỉnh sửa cuối:
Upvote 0
1/ Để có thể cộng các gía trị của textbox, trong khi thiết kế, bạn đặt gía trị Text hoặc Value của textbox bằng 0
2/ Trong sự kiện AfterUpdate của textbox, ghi các dòng lệnh sau
T1.Value = Format(T1.Value,"#,##0.0)
T3.Value = T1.Value + T2.Value
Tương tự cho T2
Thân
Cách của bạn T1 và T2 thì OK, còn T3 = ghép của T1 & T2. Mình thay dòng T3.Value = T1.Value + T2.Value thành
TextBox3.Value = Val(Format(TextBox1.Value, "0")) + Val(Format(TextBox2.Value, "0")) nhưng vấn chưa ưng ý lắm bởi vì T3 = T1 đã làm tròn + T2 : 1.000,2 + 2.000,1 = 3.002,0. Có cách nào khắc phục được không?
Tôi đã áp dụng cách hiểu của mình cho máy nhưng mãi vẫn không được. VBA+E còn non mà.

Fomat số kiểu này mà cho vào sự kiện Change thì làm sao mà gõ chứ!
Ví dụ:
- Vừa gõ xong số 1, lập tức nó biến thành 1,0 và dấu nháy sẽ nằm phía sau số 0
- Muốn gõ tiếp lại phải dùng chuột dời con trỏ đến trước dấu phẩy
- Mất công
----------------------
Ít ra cũng phải cho vào sự kiện AfterUpdate

Thầy ndu : Vì em không có căn bản nên không hiểu được các sự kiện trên ý nghĩa gì và SD NTN? Nhiều ngày để được học thêm một ít về VBA cũng quý lắm thầy ạ.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Mình viết theo đề nghị của bạn vào gửi tại đây
 
Upvote 0
Cách của bạn T1 và T2 thì OK, còn T3 = ghép của T1 & T2. Mình thay dòng T3.Value = T1.Value + T2.Value thành
TextBox3.Value = Val(Format(TextBox1.Value, "0")) + Val(Format(TextBox2.Value, "0")) nhưng vấn chưa ưng ý lắm bởi vì T3 = T1 đã làm tròn + T2 : 1.000,2 + 2.000,1 = 3.002,0. Có cách nào khắc phục được không?
Tôi đã áp dụng cách hiểu của mình cho máy nhưng mãi vẫn không được. VBA+E còn non mà.

Xem file kèm theo. Chú ý vì text nhập vào là dang text nên muốn cộng phải chuyển nó sang dạng số bằng cách nhân với 1
Thân
 

File đính kèm

Upvote 0
Gửi Thày NDU.
Ví dụ ở đây, chi cho gõ số vào text box, sử dụng sự kiện Change() đó thày ơi.
 
Upvote 0
Web KT

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

Back
Top Bottom