Tính toán cộng, trừ, nhân, chia với textbox

Liên hệ QC

sinzhang

Thành viên mới
Tham gia
18/8/13
Bài viết
20
Được thích
0
Các anh chị cho em xin code công thức "cộng, trừ, nhân, chia, tính tổng, tính công thức trong TextBox...." trong VBA với ạ.
Chân thành cám ơn !
 
Các anh chị cho em xin code công thức "cộng, trừ, nhân, chia, tính tổng, tính công thức trong TextBox...." trong VBA với ạ.
Chân thành cám ơn !

Câu hỏi bạn chung chung quá.
Công: những số đem cộng nằm ở đấu? bảng tính hay trên form? kết quả hiện trên bảng tính hay trên form?
Trừ: .......................................................................................................................................?
 
Upvote 0
Các anh chị cho em xin code công thức "cộng, trừ, nhân, chia, tính tổng, tính công thức trong TextBox...." trong VBA với ạ.
Chân thành cám ơn !

Cộng trừ nhân chia: các côn toán này đều dùng 2 vế, bên trái là vế 1 (var1), bên phải là vế 2 (var2). Code viết như sau

cộng: var1 + var2
trừ: var1 - var2
nhân: var1 + var2
chia: var1 + var2

tính tổng trong text box
textbox.text = tổng

tính công thức trong textbox
Evaluate(textbox.text)
 
Lần chỉnh sửa cuối:
Upvote 0
Cộng trừ nhân chia: các côn toán này đều dùng 2 vế, bên trái là vế 1 (var1), bên phải là vế 2 (var2). Code viết như sau

cộng: var1 + var2
trừ: var1 - var2
nhân: var1 + var2
chia: var1 + var2


tính tổng trong text box
textbox.text = tổng

tính công thức trong textbox
Evaluate(textbox.text)
Chú ý trong công thức vì khi viết sai làm người mới học càng thêm khó hiểu, sẽ làm khó khăn cho người mới học vì không biết thông tin nào chính xác
 
Upvote 0
Chú ý trong công thức vì khi viết sai làm người mới học càng thêm khó hiểu, sẽ làm khó khăn cho người mới học vì không biết thông tin nào chính xác

Ờ nhỉ, cảm ơn đã nhắc nhở. Mình copy/paste nhìn lại không rõ.

chỉnh lại:
nhân: var1 * var2
chia: var1 / var2
 
Upvote 0
Ý em là code công thức trên Form ạ :
Ví dụ : ở khung TexBox1 + TextBox2 khi minh nhập giá trị vào thì ở TextBox3 sẽ tự nhảy giá trị tổng của TextBox1 + TextBox2 (và tương tự với -, *, /).
 
Upvote 0
Ý em là code công thức trên Form ạ :
Ví dụ : ở khung TexBox1 + TextBox2 khi minh nhập giá trị vào thì ở TextBox3 sẽ tự nhảy giá trị tổng của TextBox1 + TextBox2 (và tương tự với -, *, /).
Mã:
Private Sub CommandButton1_Click()
Dim n As Long, m As Long, tong As Long
n = TextBox1.Value
m = TextBox1.Value
tong = n + m
TextBox3.Value = tong
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Em ví dụ cụ thể như thế này : (đang online điện thoại nên em không đính kèm được)
- Tính tổng cộng: TextBox3 = TextBox1 + TextBox2
- Tính tổng trừ:TextBox3 = TextBox1 - TextBox2
- Tính tổng nhân:TextBox3 = TextBox1 * TextBox2
- Tính tổng chia:TextBox3 = TextBox1 / TextBox2
- Tính công thức:
Vd1: TextBox3 = TextBox1 * TextBox2/giá trị
Vd2: TextBox3 = TextBox1*Textbox2*+ textbox1*(textbox4-textbox5)+ textbox6+textbox7
 
Lần chỉnh sửa cuối:
Upvote 0
Em ví dụ cụ thể như thế này : (đang online điện thoại nên em không đính kèm được)
- Tính tổng cộng: TextBox3 = TextBox1 + TextBox2
- Tính tổng trừ:TextBox3 = TextBox1 - TextBox2
- Tính tổng nhân:TextBox3 = TextBox1 * TextBox2
- Tính tổng chia:TextBox3 = TextBox1 / TextBox2
- Tính công thức:
Vd1: TextBox3 = TextBox1 * TextBox2/giá trị
Vd2: TextBox3 = TextBox1*Textbox2*+ textbox1*(textbox4-textbox5)+ textbox6+textbox7
-Cách của mình là
+Tạo 3 textbox lần lượt là textbox1, textbox2, textbox3 và một nút commandbutton1 " để nguyên tên không đổi tên tạm thời là vây"
+ Khai báo 3 biến kiểu số n,m,tong " tính, chia..."
+Thực hiện gán n bằng giá trị của textbox1: n= textbox1.value
+Thực hiện gán m bằng giá trị của textbox2: m= textbox2.value
+ thực hiện theo yêu cầu tổng: tong = n + m " nhân: n*m, chia n/m...."
+ Gán kết quả về textbox3: textbox3.value = tong
VẬY LÀ XONG BẠN AH
 
Upvote 0
Mã:
Private Sub CommandButton1_Click()
Dim n As Long, m As Long, tong As Long
n = TextBox1.Value
m = TextBox1.Value
tong = n + m
TextBox3.Value = tong
End Sub

Code anh cho ở trên là dùng nút button để tính rồi, ý của em là khi mình nhập giá trị vào 2 ô textbò thì ở ô textbox3 tự nhảy giá trị tổng của 2 textbox đó.
 
Upvote 0
Đó cái dong 6 của code đó nó trả kết quả tong cho textbox3 đó
 
Upvote 0
Nhưng hình như code của anh cho phải tạo comment button để tính tổng, còn em cần code nào khi mình nhập giá trị nó tự nhảy ra kết quả luôn không cần nhấn button, công việc em tính tổng các giá trị rất nhiều, vì vậy không thể chỗ nào cũng tạo button để tính được.
 
Upvote 0
Code anh cho ở trên là dùng nút button để tính rồi, ý của em là khi mình nhập giá trị vào 2 ô textbò thì ở ô textbox3 tự nhảy giá trị tổng của 2 textbox đó.
code cho textbox1
Mã:
Private Sub TextBox1_Change()
Dim n As Long, m As Long, Kq As Long
n = TextBox1.Value
If TextBox2 <> "" Then
    m = TextBox2.Value
Else
    m = 0
End If
TextBox3.Value = n + m
End Sub
code cho textbox2
Mã:
Private Sub TextBox2_Change()
Dim n As Long, m As Long, Kq As Long
n = TextBox2.Value
If TextBox1 <> "" Then
    m = TextBox1.Value
Else
    m = 0
End If
TextBox3.Value = n + m
End sub
Textbox3 sẽ tự nhảy kết quả!!!!!đúng theo ý bạn chưa???
 
Upvote 0
code cho textbox1
Mã:
Private Sub TextBox1_Change()
Dim n As Long, m As Long, Kq As Long
n = TextBox1.Value
If TextBox2 <> "" Then
    m = TextBox2.Value
Else
    m = 0
End If
TextBox3.Value = n + m
End Sub
code cho textbox2
Mã:
Private Sub TextBox2_Change()
Dim n As Long, m As Long, Kq As Long
n = TextBox2.Value
If TextBox1 <> "" Then
    m = TextBox1.Value
Else
    m = 0
End If
TextBox3.Value = n + m
End sub
Textbox3 sẽ tự nhảy kết quả!!!!!đúng theo ý bạn chưa???

Thế +, -, * chia cũng thế luôn hả anh, còn code công thức tính tổng công thức em đã nêu ở trên đó, anh giúp viết code dùm em luôn hén.thank
 
Upvote 0
Thế +, -, * chia cũng thế luôn hả anh, còn code công thức tính tổng công thức em đã nêu ở trên đó, anh giúp viết code dùm em luôn hén.thank

Nếu đúng ý bạn rùi thì tập tự làm đi, chỗ nào không hiểu thì cứ post lên có rất nhiều người sẽ giúp. Cộng, trừ, nhân, chia cứ thay vào dòng thứ 9 của code. lưu ý là: khai báo lại kiêu dữ liệu nếu bạn sử dụng số thực, nếu dùng phép chia phải xác nhận số chia # 0.
 
Upvote 0
Mình gửi 1 ví dụ, bam tham khảo làm lại cho mình nha
 

File đính kèm

  • Vi du 1.xls
    33 KB · Đọc: 204
Upvote 0
Mình gửi 1 ví dụ, bam tham khảo làm lại cho mình nha
Cám ơn anh đã hổ trợ, tuy nhiên công thức trên anh làm chung chung quá làm em khó hiểu, em gửi anh file này cụ thể hơn...nhờ các anh chị hổ trợ viết code dùm em (mới tập tành VBA nên chưa biết gì hết, các anh chị thông cảm)


Đính kèm : View attachment Book1.xls
 
Upvote 0
Bạn xem nha, ở đây mình dùng sự kiện change của các Textbox nhập liệu. Đây là cách đơn giản nhưng dài lê thê. Khi bạn nắm vững dùng Class module sẽ gọn hơn nhiều.
 

File đính kèm

  • Book1 (version 2).xls
    69 KB · Đọc: 187
Upvote 0
sealand ơi, dùng sự kiện Exit hoặc before update sẽ có tham số cancel để bẫy lỗi và bắt làm lại, đừng dùng sự kiện change. Gõ 1 con số dài là mỗi ký số là code chạy. Nó chạy liên tục, nó mệt.

Ngoài ra code bắt lỗi chia (Divided by zero) chưa hết. Thí dụ vừa mở form, đổi combobox thành chia là đã bị lỗi. Hoặc textbox2 bỏ trống chưa kịp điền cũng bị lỗi.
 
Upvote 0
Bạn xem nha, ở đây mình dùng sự kiện change của các Textbox nhập liệu. Đây là cách đơn giản nhưng dài lê thê. Khi bạn nắm vững dùng Class module sẽ gọn hơn nhiều.
Rất cám ơn anh, đúng ý em rồi ạ, nhưng làm sao để format có dấu "," ở mõi giá trị hả anh, mà sẵn đây anh cho em hỏi thêm đoạn code này thêm:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("B1:B" & (9 + Target.Row))) Is Nothing Then
With Target
If .Offset(0, -1) <> "" Then .Offset(0, 1) = .Offset(0, -1) * .Value
End With
End If
End Sub
Đoạn code này muốn cộng thêm 1 cột hoặc vài cột nữa thì thêm vào chỗ nào ?
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom