Làm sao để hiển thị % trong TextBox?

Liên hệ QC

thanhtam348

Thành viên thường trực
Tham gia
9/3/07
Bài viết
288
Được thích
62
Tôi có 1 List name danh sách bao gồm cột tên và cột con số %, nhưng sao tôi đưa vào TextBox thì không hiển thị đúng, VD như 7% thì nó cho ra là 0.07. AC hay bạn nào biết cách xin chỉ dùm.
 
Tôi có 1 List name danh sách bao gồm cột tên và cột con số %, nhưng sao tôi đưa vào TextBox thì không hiển thị đúng, VD như 7% thì nó cho ra là 0.07. AC hay bạn nào biết cách xin chỉ dùm.

Dùng hàm Format đi, ví dụ
TextBox1.Text = Format('gì gì đó', "#%")
 
Upvote 0
Chào các AC và bạn. Vì không muốn tạo chủ đề mới, nên vào lại đây nhờ giúp đở tiếp.
Xin kết hợp giúp dùm mình đoạn code như yêu cầu trong file VD đính kèm. Cám ơn.
 

File đính kèm

Upvote 0
Bạn thêm code này vào sheet
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range(Cells(4, 5), Cells(65536, 4).End(xlUp))) Is Nothing Then
    Application.EnableEvents = False
        Target = Target.Offset(, -1) & Target
    Application.EnableEvents = True
End If

End Sub
 
Upvote 0
Bạn thêm code này vào sheet
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range(Cells(4, 5), Cells(65536, 4).End(xlUp))) Is Nothing Then
    Application.EnableEvents = False
        Target = Target.Offset(, -1) & Target
    Application.EnableEvents = True
End If

End Sub

Cám ơn bạn. Nhưng mình chỉ muốn nó kết hợp ở cột ngày tháng thôi. Code của bạn thì cột ngày tháng cho ra như ý, còn cột "tên khách hàng" cũng bị thay đổi. Bạn dùm sửa cho. Cám ơn.
 
Upvote 0
Chào các AC và bạn. Vì không muốn tạo chủ đề mới, nên vào lại đây nhờ giúp đở tiếp.
Xin kết hợp giúp dùm mình đoạn code như yêu cầu trong file VD đính kèm. Cám ơn.
Sửa sự kiện ComboBox_Click thành vầy:
PHP:
Private Sub ComboBox1_Click()
  With Range("C65000").End(xlUp)
    .Offset(1, 0) = ComboBox1.Text
    .Offset(1, 1) = ComboBox1 & Format(Date, "dd/mm/yyyy")
    .Offset(1, 2) = ComboBox1.Column(1)
  End With
  ComboBox1.Text = ""
End Sub
 
Upvote 0
Cám ơn, tốt rồi dhn46, nhưng nó có thể rút gọn hơn nửa - hoặc kết hợp với công thức trên được không?
 
Upvote 0
Bài của anh NDU đã giải quyết vấn đề của bạn rồi, chọn text box và có kết hợp mã hàng với ngày tháng, bạn kiểm tra lại
 
Upvote 0
Chào AC và các bạn, xin trợ giúp dùm code cho TextBox nó đang bị lổi. Cám ơn nhiều.
 

File đính kèm

Upvote 0
Chào AC và các bạn, xin trợ giúp dùm code cho TextBox nó đang bị lổi. Cám ơn nhiều.
Code trong form như sau:

Mã:
Private Sub TextBox2_AfterUpdate()
Nhan
End Sub

Private Sub TextBox2_Change()
TextBox2 = Format(TextBox2.Value, "#,##0")
End Sub

Private Sub TextBox3_AfterUpdate()
Nhan
End Sub

Sub Nhan()
If IsNumeric(TextBox2) = False Or IsNumeric(TextBox3) = False Then
        TextBox4 = "#VALUE!"
        Exit Sub
    Else
        Me.TextBox4 = Format(Me.TextBox2 * 1 * Me.TextBox3 * 1, "#,##0")
End If

End Sub

Private Sub TextBox3_Change()
TextBox3 = Format(TextBox3.Value, "#,##0")
End Sub
 
Upvote 0
Code trong form như sau:

Mã:
Private Sub TextBox2_AfterUpdate()
Nhan
End Sub

Private Sub TextBox2_Change()
TextBox2 = Format(TextBox2.Value, "#,##0")
End Sub

Private Sub TextBox3_AfterUpdate()
Nhan
End Sub

Sub Nhan()
If IsNumeric(TextBox2) = False Or IsNumeric(TextBox3) = False Then
        TextBox4 = "#VALUE!"
        Exit Sub
    Else
        Me.TextBox4 = Format(Me.TextBox2 * 1 * Me.TextBox3 * 1, "#,##0")
End If

End Sub

Private Sub TextBox3_Change()
TextBox3 = Format(TextBox3.Value, "#,##0")
End Sub

Cám ơn domfootwear.
Đã được rồi, nhưng nếu dùng cho cả những TextBox hàng dưới thì có cách nào rút ngắn code lại không bạn ?
 
Upvote 0
Upvote 0
Chào Hoàng Trọng Nghĩa, cám ơn bạn nhiều. Cuối cùng rồi phần nầy tôi không còn cách nào hơn của bạn, còn phần nơi đây tôi cũng đành chịu code rờm rà hơn, dù sao - khi sử dụng cũng thấy tiện.
Thấy code rờm rà quá nên tôi có giảm ít chi tiết, không biết sau có gặp lổi gì không, AC và các bạn biết xin mách dùm.
Kế tiếp xin giúp đở tôi một việc mà tôi tưởng mình làm được (Yếu quá).
Mình muốn khi nhap tất cả các giá trị vào TextBox trong From và lấy tất cả số liệu từ From đưa vào Sheet theo khoanh vùng màu định sẳn của mình. Xin giúp đở dùm, cám ơn AC và các bạn.

Và cứ mổi lần nhập From thì nó trình tự xuống hàng dưới cùng tiếp theo
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Chào Hoàng Trọng Nghĩa, cám ơn bạn nhiều. Cuối cùng rồi phần nầy tôi không còn cách nào hơn của bạn, còn phần nơi đây tôi cũng đành chịu code rờm rà hơn, dù sao - khi sử dụng cũng thấy tiện.
...........

Với form tính toán nhiều TextBox như vậy, bạn không cần phải dùng nhiều sự kiện AfterUpdate như thế đâu, chỉ cần thêm 1 nút lệnh, sau khi nhập dữ liệu xong, chỉ cần 1 lần bấm tính toán.

Vẫn dùng 1 hàm để "khử" text:

PHP:
Function LoaiDau(ByVal numb As String) As Double
    On Error GoTo ExitFunction
    LoaiDau = Replace(numb, ",", "")
ExitFunction:
End Function

Sau đó là nút lệnh tính toán:

PHP:
Private Sub CommandButton1_Click()
    TextBox4 = Format(LoaiDau(TextBox2) * LoaiDau(TextBox3), "#,##0")
    TextBox8 = Format(LoaiDau(TextBox6) * LoaiDau(TextBox7), "#,##0")
    TextBox12 = Format(LoaiDau(TextBox10) * LoaiDau(TextBox11), "#,##0")
    TextBox16 = Format(LoaiDau(TextBox14) * LoaiDau(TextBox15), "#,##0")
    TextBox20 = Format(LoaiDau(TextBox18) * LoaiDau(TextBox19), "#,##0")
    TextBox24 = Format(LoaiDau(TextBox22) * LoaiDau(TextBox23), "#,##0")
    TextBox28 = Format(LoaiDau(TextBox26) * LoaiDau(TextBox27), "#,##0")
    TextBox32 = Format(LoaiDau(TextBox30) * LoaiDau(TextBox31), "#,##0")
    CommandButton2.Enabled = True
End Sub

Và cuối cùng là nút lệnh nhập dữ liệu:

Mã:
Private Sub CommandButton2_Click()
    Dim i As Long, j As Long, h As Long, Ctrl As Control
[COLOR=#008000][B]' Làm trên mảng rồi gán xuống sheet (cách này nhanh hơn):[/B][/COLOR]
    Dim Arr()
    ReDim Arr(1 To 8, 1 To 4)
    j = 0: h = 1
    For i = 1 To 32
        Arr(h, i - j) = Controls("TextBox" & i).Value
        Select Case i
            Case 4, 8, 12, 16, 20, 24, 28, 32
            j = j + 4
            h = h + 1
        End Select
    Next
    Sheet1.Range("J65536").End(xlUp).Offset(1).Resize(8, 4).Value = Arr
[COLOR=#008000][B]' Làm trực tiếp trên sheet:[/B][/COLOR]
[COLOR=#008000]'    With Sheet1.Range("J65536").End(xlUp).Offset(1)
'        j = 1
'        For i = 1 To 32
'            .Offset(h, i - j).Value = Controls("TextBox" & i).Value
'            Select Case i
'            Case 4, 8, 12, 16, 20, 24, 28, 32
'                j = j + 4
'                h = h + 1
'            End Select
'        Next
'    End With[/COLOR]

    For Each Ctrl In Controls
        If TypeName(Ctrl) = "TextBox" Then Ctrl.Text = ""
    Next
    CommandButton2.Enabled = False
End Sub

Bạn thử xem có đúng ý của bạn không nhé!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Xin AC và bạn giúp mình thêm là làm sao để loại bỏ những số 0 trong TextBox, nếu như những ô trước nó bị rổng. Vì nếu mình dùng hàm IF(TYPE(MATCH($C$4,OFFSET... như thế nầy trên Sheet và kết hợp với hàm INDEX thì với số 0 đó nó cho kết quả không như ý muốn. Xin cám ơn.
 

File đính kèm

Upvote 0
Xin AC và bạn giúp mình thêm là làm sao để loại bỏ những số 0 trong TextBox, nếu như những ô trước nó bị rổng. Vì nếu mình dùng hàm IF(TYPE(MATCH($C$4,OFFSET... như thế nầy trên Sheet và kết hợp với hàm INDEX thì với số 0 đó nó cho kết quả không như ý muốn. Xin cám ơn.
Sửa code cho CommandButton1 như vầy chắc được:
PHP:
Private Sub CommandButton1_Click()
  Dim i As Long, tmp1 As String, tmp2 As String, tmp As Double
  On Error Resume Next
  For i = 1 To 8
    tmp1 = Me.Controls("TextBox" & i * 4 - 2).Text
    tmp2 = Me.Controls("TextBox" & i * 4 - 1).Text
    tmp = LoaiDau(tmp1) * LoaiDau(tmp2)
    If tmp Then Me.Controls("Textbox" & i * 4) = Format(tmp, "#,##0")
  Next
  CommandButton2.Enabled = True
End Sub
 
Upvote 0
CÓ lệnh nào không cho nhập DL vào ComboBox mà chỉ lấy DS từ List có sẵn không Anh chị? Dúp đở dùm.
 
Upvote 0
Anh chị và các bạn thông cảm giúp tôi code của From nầy, tôi cố làm mà lại hiểu biết về nó ít quá. Mình muốn làm sao thu gọn code lại, nhập liệu nhanh nhẹ hơn, hiện tại trong file thực của mình nhập rất chậm, mà khi nhập xong bị mất những DS trên ListBox. cám ơn nhiều.
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom