Sửa code để dữ liệu xuất ra là dạng số

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

tuan16

Thành viên thường trực
Tham gia
28/11/13
Bài viết
269
Được thích
18
Em có xem video hương dẫn nhập dữ liệu bằng Userform... nhưng hiện tại dữ liệu xuất ra là dạng text. Em xin nhờ anh sửa code để dữ liệu xuất ra là dạng số với ạ. ..và hiện tại em phải sử dụng nút save để xem dữ liệu đã lưu là gì... nếu không may bấm nhầm nút Change thì dữ liệu bị mất... có cách nào mà gộp 2 nút làm 1.. để luôn có số hiện thị trong textbox mà khi thay đổi thì nhập số mới vào mà vẫn lưu theo số liệu mới với ạ
 

File đính kèm

  • nho gpe.xlsm
    25.2 KB · Đọc: 8
Vẫn chưa hiểu bạn nói gì lắm. Có thể nói rõ rang hơn 1 chút không?
 
Upvote 0
Dạ hiện tại dữ liệu từ textbox chuyển ra excell đang dạng text ra... Em muốn xuất ra là dạng số để có thể dùng để hàm nhân chia... Không phải thêm hàm value( text) đó nữa ạ
Nếu các textbox chắc chắn là số thì sửa code nút change như này xem sao
Bỏ nút save đi
Mã:
Private Sub CommandButton1_Click()
    With Sheet3
        .Range("AA1").Value = --Me.Tb_round
        .Range("Z1").Value = --Me.tb_san
        .Range("AB1").Value = --Me.tb_mong
        .Range("Ac1").Value = --Me.tb_tang1
        .Range("AD1").Value = --Me.tb_tang2
        .Range("AE1").Value = --Me.tb_tang3
        .Range("AF1").Value = --Me.tb_tang4
        .Range("AI1").Value = --Me.tb_chenhcaodam
    End With
End Sub
 
Upvote 0
PHP:
Private Sub CmdChep_Click()
 If IsNumeric(Me!tb01.Value) Then
    [B999].End(xlUp).Offset(1).Value = 1 + Me!tb01.Value
    MsgBox "OK", , "GPE.COM"
 End If
 If IsNumeric(Me!tb02.Text) Then
    [D999].End(xlUp).Offset(1).Value = Me!tb01.Value - 1
    MsgBox "OK!", , "GPE.COM"
 End If
End Sub

@Chủ bài đăng: Bạn thử nhập 1.2 & 6,1 vô 2 TextBox & chạy macro thử, dù 1 lần, xem sao!
 
Upvote 0
PHP:
Private Sub CmdChep_Click()
 If IsNumeric(Me!tb01.Value) Then
    [B999].End(xlUp).Offset(1).Value = 1 + Me!tb01.Value
    MsgBox "OK", , "GPE.COM"
 End If
 If IsNumeric(Me!tb02.Text) Then
    [D999].End(xlUp).Offset(1).Value = Me!tb01.Value - 1
    MsgBox "OK!", , "GPE.COM"
 End If
End Sub

@Chủ bài đăng: Bạn thử nhập 1.2 & 6,1 vô 2 TextBox & chạy macro thử, dù 1 lần, xem sao!
dạ để em thử ạ... em cảm ơn anh ạ
 
Upvote 0
Textbox và tất cả control trên form đều có giá trị TEXT. Trong VBA có hàm Val để lấy giá trị số, hoặc hàm CDbl.

Mã:
.Range("AA1").Value = Val(Me.Tb_round)

Góp ý:
1. Tab index đang nhảy loạn lên
2. Nếu tất cả lệnh đều đánh vào sheet 3 thì chỉ 1 lần With-End With thôi.
3. Lỗi chính tả "Cacel".
4. Nút save thì không save, mà nút change lại save change

Nhập 2 nút thành 1 và quy trình tránh 4 lỗi trên thì xem tài liệu User form
 
Upvote 0
Textbox và tất cả control trên form đều có giá trị TEXT. Trong VBA có hàm Val để lấy giá trị số, hoặc hàm CDbl.

Mã:
.Range("AA1").Value = Val(Me.Tb_round)

Góp ý:
1. Tab index đang nhảy loạn lên
2. Nếu tất cả lệnh đều đánh vào sheet 3 thì chỉ 1 lần With-End With thôi.
3. Lỗi chính tả "Cacel".
4. Nút save thì không save, mà nút change lại save change

Nhập 2 nút thành 1 và quy trình tránh 4 lỗi trên thì xem tài liệu User form
dạ em cảm ơn anh ạ
 
Upvote 0
Sửa tạm như trong file, xem kỹ tabIndex của từng cái
1709176234842.png

Code cho nút GetSave
Mã:
Private Sub GetSave_Click()
With Sheet3
    If GetSave.Caption = "Save" Then
        .Range("AA1").Value = Val(Me.Tb_round)
        .Range("Z1").Value = Val(Me.tb_san)
        .Range("AB1").Value = Val(Me.tb_mong)
        .Range("Ac1").Value = CDbl(Me.tb_tang1)
        .Range("AD1").Value = Val(Me.tb_tang2)
        .Range("AE1").Value = Val(Me.tb_tang3)
        .Range("AF1").Value = Val(Me.tb_tang4)
        .Range("AI1").Value = Val(Me.tb_chenhcaodam)
        GetSave.Caption = "Get Data"
        For Each ctrl In Me.Controls
            If TypeOf ctrl Is msforms.TextBox Then
                ctrl.Value = ""
            End If
        Next
    Else
        Tb_round.Value = .Range("AA1").Value
        tb_san.Value = .Range("Z1").Value
        tb_mong.Value = .Range("AB1").Value
        tb_tang1.Value = .Range("AC1").Value
        tb_tang2.Value = .Range("AD1").Value
        tb_tang3.Value = .Range("AE1").Value
        tb_tang4.Value = .Range("AF1").Value
        tb_chenhcaodam.Value = .Range("AI1").Value
        GetSave.Caption = "Save"
    End If
End With
End Sub

Code Initialize
Mã:
Private Sub UserForm_Initialize()
    GetSave.Caption = "Get Data"
End Sub

Đường còn dài lắm, vẫn phải đọc hết tài liệu trên.
 

File đính kèm

  • FormPtm-Index-Btn.xlsm
    25.4 KB · Đọc: 5
Upvote 0
Sửa tạm như trong file, xem kỹ tabIndex của từng cái
View attachment 299269

Code cho nút GetSave
Mã:
Private Sub GetSave_Click()
With Sheet3
    If GetSave.Caption = "Save" Then
        .Range("AA1").Value = Val(Me.Tb_round)
        .Range("Z1").Value = Val(Me.tb_san)
        .Range("AB1").Value = Val(Me.tb_mong)
        .Range("Ac1").Value = CDbl(Me.tb_tang1)
        .Range("AD1").Value = Val(Me.tb_tang2)
        .Range("AE1").Value = Val(Me.tb_tang3)
        .Range("AF1").Value = Val(Me.tb_tang4)
        .Range("AI1").Value = Val(Me.tb_chenhcaodam)
        GetSave.Caption = "Get Data"
        For Each ctrl In Me.Controls
            If TypeOf ctrl Is msforms.TextBox Then
                ctrl.Value = ""
            End If
        Next
    Else
        Tb_round.Value = .Range("AA1").Value
        tb_san.Value = .Range("Z1").Value
        tb_mong.Value = .Range("AB1").Value
        tb_tang1.Value = .Range("AC1").Value
        tb_tang2.Value = .Range("AD1").Value
        tb_tang3.Value = .Range("AE1").Value
        tb_tang4.Value = .Range("AF1").Value
        tb_chenhcaodam.Value = .Range("AI1").Value
        GetSave.Caption = "Save"
    End If
End With
End Sub

Code Initialize
Mã:
Private Sub UserForm_Initialize()
    GetSave.Caption = "Get Data"
End Sub

Đường còn dài lắm, vẫn phải đọc hết tài liệu trên.
dạ vâng ạ.... em cảm ơn anh.
 
Upvote 0
Web KT
Back
Top Bottom