XIn hướng dẫn code nhắc nhập thiếu dữ liệu (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

123456789123456789123456789

Thành viên mới
Tham gia
4/12/11
Bài viết
16
Được thích
1
Mình có đoạn code như thế này, khi nhập thiếu txtCont nó sẽ hiện thong báo yêu cầu nhập mình muốn viết tiếp cho các box kế tiếp thì phải viết như thế nào vd như txtName. txtAdd v..v.

Private Sub cmdAdd_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Du Lieu")
iRow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row
If Trim(Me.txtCont.Value) = "" Then
Me.txtCont.SetFocus
MsgBox " ban chua nhap thong tin Giam Doc", vbInformation
Exit Sub
End If
ws.Cells(iRow, 1).Value = Me.txtCont.Value
ws.Cells(iRow, 2).Value = Me.txtName.Value
ws.Cells(iRow, 3).Value = Me.txtAdd.Value
ws.Cells(iRow, 4).Value = Me.txtTel.Value
ws.Cells(iRow, 5).Value = Me.txtID.Value
ws.Cells(iRow, 6).Value = Me.txtDate.Value
ws.Cells(iRow, 7).Value = Me.txtLocal.Value
ws.Cells(iRow, 8).Value = Me.txtAccount.Value
ws.Cells(iRow, 9).Value = Me.txtnote.Value
ws.Cells(iRow, 10).Value = Me.txtRemaks.Value
ws.Cells(iRow, 11).Value = Me.txtrate.Value
ws.Cells(iRow, 12).Value = Me.TextBox1.Value
ws.Cells(iRow, 13).Value = Me.TextBox2.Value
ws.Cells(iRow, 14).Value = Me.TextBox3.Value
ws.Cells(iRow, 15).Value = Me.TextBox4.Value
ws.Cells(iRow, 16).Value = Me.TextBox5.Value
ws.Cells(iRow, 17).Value = Me.TextBox6.Value
ws.Cells(iRow, 18).Value = Me.TextBox7.Value
ws.Cells(iRow, 19).Value = Me.TextBox8.Value
ws.Cells(iRow, 20).Value = Me.TextBox9.Value
ws.Cells(iRow, 21).Value = Me.TextBox10.Value
ws.Cells(iRow, 22).Value = Me.TextBox11.Value
ws.Cells(iRow, 23).Value = Me.TextBox12.Value
ws.Cells(iRow, 24).Value = Me.TextBox13.Value
ws.Cells(iRow, 25).Value = Me.TextBox14.Value
ws.Cells(iRow, 26).Value = Me.TextBox15.Value
ws.Cells(iRow, 27).Value = Me.TextBox16.Value
ws.Cells(iRow, 28).Value = Me.TextBox17.Value
ws.Cells(iRow, 29).Value = Me.TextBox18.Value
ws.Cells(iRow, 30).Value = Me.TextBox19.Value
ws.Cells(iRow, 31).Value = Me.TextBox20.Value
ws.Cells(iRow, 32).Value = Me.TextBox21.Value
ws.Cells(iRow, 33).Value = Me.TextBox22.Value
ws.Cells(iRow, 34).Value = Me.TextBox23.Value
ws.Cells(iRow, 35).Value = Me.TextBox24.Value
ws.Cells(iRow, 36).Value = Me.TextBox25.Value
ws.Cells(iRow, 37).Value = Me.TextBox26.Value
ws.Cells(iRow, 38).Value = Me.TextBox27.Value
ws.Cells(iRow, 39).Value = Me.TextBox28.Value
ws.Cells(iRow, 40).Value = Me.TextBox29.Value
ws.Cells(iRow, 41).Value = Me.TextBox30.Value
ws.Cells(iRow, 42).Value = Me.TextBox31.Value
ws.Cells(iRow, 43).Value = Me.TextBox32.Value
ws.Cells(iRow, 44).Value = Me.TextBox33.Value
ws.Cells(iRow, 45).Value = Me.TextBox34.Value
ws.Cells(iRow, 46).Value = Me.TextBox35.Value
ws.Cells(iRow, 47).Value = Me.TextBox36.Value
ws.Cells(iRow, 48).Value = Me.TextBox37.Value
ws.Cells(iRow, 49).Value = Me.TextBox38.Value
ws.Cells(iRow, 50).Value = Me.TextBox39.Value
ws.Cells(iRow, 51).Value = Me.TextBox40.Value
Me.txtCont.SetFocus
End Sub
 
Có lẽ bài này bạn nên dùng đến Class Module, tiếc rằng tôi hoàn toàn mù tịt về món này.
Cũng xin góp ý một chút về code hiện có của bạn: Các câu lệnh từ ws.Cells(iRow, 12).Value = Me.TextBox1.Value đến ws.Cells(iRow, 12).Value = Me.TextBox1.Value bạn có thể thay bởi một vòng For cho nó gọn:
Mã:
For i = 1 To 40
    ws.Cells(iRow, i + 11).Value = Me.Controls("TextBox" & i).Value
Next
 
Upvote 0
Cám ơn bạn nha. Ai giúp mình viết lại code này khi nhập thiếu thong tin ở các text nó sẽ xuất hiện yêu cầu nhập với
 
Upvote 0
Cám ơn bạn nha. Ai giúp mình viết lại code này khi nhập thiếu thong tin ở các text nó sẽ xuất hiện yêu cầu nhập với
Xin hỏi một chút: Bạn có toàn bộ bao nhiêu Textbox cần kiểm tra như vậy? Nếu ít thì có thể làm thủ công như cách bạn vẫn làm, còn nếu nhiều thì có thể dùng Class (như đã nói trước, tôi mù tịt món này) hoặc dùng vòng lặp For để duyệt qua các Textbox này, có thể sử dụng thêm thuộc tính Tag của Textbox để đưa vào Msgbox cho tiện. Tất nhiên với cách này thì các Textbox cần kiểm tra phải được đặt tên thống nhất để tiện cho vào vòng For, chẳng hạn có 10 Textbox cần kiểm tra thì bạn có thể đặt chúng với tên là Txt1, Txt2, ..., Txt10.
 
Upvote 0
-Đầu tiên xin cám ơn nghiaphuc đã giải đáp cho mình
- Có pro nào giúp mình với mình cái này rất quan trọng cho cái tool nhỏ của mình, viết hộ mình cái code kiểm tra chưa nhập dữ liệu với
 
Upvote 0
-Đầu tiên xin cám ơn nghiaphuc đã giải đáp cho mình
- Có pro nào giúp mình với mình cái này rất quan trọng cho cái tool nhỏ của mình, viết hộ mình cái code kiểm tra chưa nhập dữ liệu với
Thôi, làm như vầy cho tiện cho cả bạn và người giúp đỡ: Bạn tạo cái Form như thực tế bạn sẽ dùng, trên đó những Textbox (hoặc đối tượng khác) bạn muốn kiểm tra thì bạn đưa vào đó một dấu hiệu gì đó để nhận biết (chẳng hạn ForeColor hoặc BackColor, kiểu giống như trong các Form đăng ký tài khoản, các thông tin bắt buộc nhập, người ta thường cho ký hiệu (*) đó mà). Mọi người sẽ giúp bạn viết code cho việc này, chứ cứ nói suông như vầy mất thời gian vô ích lắm.
 
Upvote 0
Anh Phúc đã định hướng cho bạn cách nhanh nhất để có được sự giúp đỡ tối ưu, song nếu bạn muốn tìm hiểu thì có thể tham khảo cách dưới đây
Mã:
Private Sub CommandButton1_Click()
Dim Obj As MSForms.Control
    For Each Obj In Me.Controls
        If TypeOf Obj Is MSForms.TextBox Then
            If Obj = "" Then
                MsgBox "Please fill infomation into " & Obj.Name
            End If
        End If
    Next
End Sub
 
Upvote 0
xem giúp m

Các bạn nói đúng tại mình chưa biết về VBA nên làm nghiệp dư quá mình up lên cái tool mình dự định làm các bạn xem giúp mình nhé, có thể cô dộng code gọn lại giúp mình , mình chỉ muốn có thêm chức năng thông báo khi nhập thiếu dữ liệu (o bang? Thông tin khách hàng ) và chức năng gọi lại dữ liệu củ đã nhập có thể cho phép chỉnh sữa, mình làm mãi mà chưa được
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom