Nhờ các bạn hướng dẫn giùm VD như sau:
Mình có một userform và textbox1, khi nhập liệu vào textbox1 thì kiểm tra là số nhập trong textbox1 nếu nhỏ hơn số của 1 cell được định trước trong sheet thì cho qua, con nếu số nhập liệu trong textbox1 lớn hơn số của 1 cell định trước thì thông báo. có phải đoạn code như thế này không và dùng sự kiện gì cho textbox?
If Me.TextBox1 < Sheets("abc").Range("b1") Then
Else
If Me.TextBox1 > Sheets("abc").Range("b1") Then
MsgBox " kiem tra lai so lieu cua textbox", , "Chu y"
Có ai giúp mình với
Nhờ các bạn hướng dẫn giùm VD như sau:
Mình có một userform và textbox1, khi nhập liệu vào textbox1 thì kiểm tra là số nhập trong textbox1 nếu nhỏ hơn số của 1 cell được định trước trong sheet thì cho qua, con nếu số nhập liệu trong textbox1 lớn hơn số của 1 cell định trước thì thông báo. có phải đoạn code như thế này không và dùng sự kiện gì cho textbox?
If Me.TextBox1 < Sheets("abc").Range("b1") Then
Else
If Me.TextBox1 > Sheets("abc").Range("b1") Then
MsgBox " kiem tra lai so lieu cua textbox", , "Chu y"
Có ai giúp mình với
Private Sub TextBox1_Change()
If Me.TextBox1 < Sheets("abc").Range("b1") Then
...............................................
ElseIf Me.TextBox1 > Sheets("abc").Range("b1") Then
MsgBox " kiem tra lai so lieu cua textbox", , "Chu y"
End If
End Sub
Nhờ các bạn hướng dẫn giùm VD như sau:
Mình có một userform và textbox1, khi nhập liệu vào textbox1 thì kiểm tra là số nhập trong textbox1 nếu nhỏ hơn số của 1 cell được định trước trong sheet thì cho qua, con nếu số nhập liệu trong textbox1 lớn hơn số của 1 cell định trước thì thông báo. có phải đoạn code như thế này không và dùng sự kiện gì cho textbox?
If Me.TextBox1 < Sheets("abc").Range("b1") Then
Else
If Me.TextBox1 > Sheets("abc").Range("b1") Then
MsgBox " kiem tra lai so lieu cua textbox", , "Chu y"
Có ai giúp mình với
Xin lỗi vì bận việc hôm nay mới xem lại bài.
Dùng sự kiện change cho textbox khi đánh số vào là nó thông báo liền.
Ý mình là muốn khi nhập liệu vào textbox nếu nhập số lớn hơn B1 thì thông báo còn nhỏ hơn thì không thông báo. mình gửi file mẫu bạn xem giúp mình nhé.
Cảm ơn sự quan tâm của các bạn.
Xin lỗi vì bận việc hôm nay mới xem lại bài.
Dùng sự kiện change cho textbox khi đánh số vào là nó thông báo liền.
Ý mình là muốn khi nhập liệu vào textbox nếu nhập số lớn hơn B1 thì thông báo còn nhỏ hơn thì không thông báo. mình gửi file mẫu bạn xem giúp mình nhé.
Cảm ơn sự quan tâm của các bạn.
Bạn thông cảm cho, vì cái này mình chỉ đưa Form làm VD thôi. Vì mình muốn tìm hiểu và học về sự kiện và thuộc tính khi sử dụng textbox. nên Form chỉ có 1 textbox.
Mình sử dụng thuộc tính Value cho textbox và value cho cell nhưng vẫn không được.
If Me.TextBox1.Value > Sheets("abc").Range("b1").Value Then
MsgBox " kiem tra lai so lieu cua textbox", , "Chu y".
Nhờ các bạn hướng dẫn giùm khi sử dụng thuộc tính. mình còn gà với VBA lắm, mong được sự hướng dẫn nhiệt tình của các bạn đã quan tâm.
Bạn thông cảm cho, vì cái này mình chỉ đưa Form làm VD thôi. Vì mình muốn tìm hiểu và học về sự kiện và thuộc tính khi sử dụng textbox. nên Form chỉ có 1 textbox.
Mình sử dụng thuộc tính Value cho textbox và value cho cell nhưng vẫn không được.
If Me.TextBox1.Value > Sheets("abc").Range("b1").Value Then
MsgBox " kiem tra lai so lieu cua textbox", , "Chu y".
Nhờ các bạn hướng dẫn giùm khi sử dụng thuộc tính. mình còn gà với VBA lắm, mong được sự hướng dẫn nhiệt tình của các bạn đã quan tâm.
Vấn đề không nằm ở chổ dùng thuộc tính gì mà nằm ở chổ dùng sự kiện gì
Bài này, nếu bạn dùng sự kiện TextBox1_Change thì... quên đi. Chỉ có thể giải quyết nó bằng sự kiện TextBox1_AfterUpdate (tức khi bạn gõ xong, Enter 1 phát để chuyển qua control khác thì code mới có tác dụng)
Cũng vì vấn đề phải Enter để chuyển qua Control khác nên nếu dùng sự kiện TextBox1_AfterUpdate, bắt buộc trên UserForm của bạn phải có ít nhất 2 control trở lên
Vấn đề không nằm ở chổ dùng thuộc tính gì mà nằm ở chổ dùng sự kiện gì Bài này, nếu bạn dùng sự kiện TextBox1_Change thì... quên đi. Chỉ có thể giải quyết nó bằng sự kiện TextBox1_AfterUpdate (tức khi bạn gõ xong, Enter 1 phát để chuyển qua control khác thì code mới có tác dụng)
Cũng vì vấn đề phải Enter để chuyển qua Control khác nên nếu dùng sự kiện TextBox1_AfterUpdate, bắt buộc trên UserForm của bạn phải có ít nhất 2 control trở lên
Bài này, nếu bạn dùng sự kiện TextBox1_Change thì... quên đi.
bạn có thể giải thích thêm vì sao không thể dùng sự kiện TextBox1_Change . nhưng đổi thuộc tính Text cho textbox thi nó so sánh dạng chuổi thì được, còn dạng số thì lại ko được. mong được học hỏi thêm.
Bạn thông cảm cho, vì cái này mình chỉ đưa Form làm VD thôi. Vì mình muốn tìm hiểu và học về sự kiện và thuộc tính khi sử dụng textbox. nên Form chỉ có 1 textbox.
Mình sử dụng thuộc tính Value cho textbox và value cho cell nhưng vẫn không được.
If Me.TextBox1.Value > Sheets("abc").Range("b1").Value Then
MsgBox " kiem tra lai so lieu cua textbox", , "Chu y".
Nhờ các bạn hướng dẫn giùm khi sử dụng thuộc tính. mình còn gà với VBA lắm, mong được sự hướng dẫn nhiệt tình của các bạn đã quan tâm.
If Not IsNumeric(TextBox1.Text) Then
MsgBox "blala"
ElseIf CDbl(TextBox1.Text) > Sheets("abc").Range("b1") Then
MsgBox " kiem tra lai so lieu cua textbox", , "Chu y"
End If
Việc kiểm tra dữ liệu nhập vào không nên làm trong OnChange. Con người có những lúc mệt mỏi, lơ đãng, tay run, muốn gõ 1 mà ngón tay lại trúng 2. Phải cho người ta cơ hội sửa lại. Chứ cứ gõ nhầm lại nhẩy ra cửa sổ thì phiền toái lắn.
Bạn đã từng cài nhiều chương trình lớn, nhập dữ liệu đăng ký vào nhiều trường trên trang web chưa? Người ta chả kiểm tra dữ liệu mỗi lần bạn gõ. Chỉ khi bạn nhấn nút "Next", "Register" thì "người ta " mới kiểm tra và thông báo nếu dữ liệu thiếu hoặc sai.
Vậy bạn cũng chỉ kiểm tra dữ liệu ở khâu cuối nào đó. Sẽ có nút "Tính toán" (cmdCalculate) sau khi nhập dữ liệu vào các textbox? Thì kiểm tra trong cmdCalculate_Click. Dữ liệu sẽ được "đập" xuống sheet khi nhấn ABC sau khi nhập liệu? Thì kiểm tra dữ liệu trong ABC_Click.
Còn phải kiểm tra xem dữ liệu có lỗi không: dữ liệu "trống" đã viết:
If Not IsNumeric(TextBox1.Text) Then
MsgBox "blala"
ElseIf CDbl(TextBox1.Text) > Sheets("abc").Range("b1") Then
MsgBox " kiem tra lai so lieu cua textbox", , "Chu y"
End If
Mình đã thử đoạn code với trường hợp điền dữ liệu rồi sau đó xóa đi thì nó hiểu là dữ liệu "trống" nên sẻ thông báo lỗi.
Vậy bỏ qua khi dữ liệu "Trống" thì code như thế nào.
Xóa nội dung trong textbox thì có nghĩa là nó "trống".
Tôi không hiểu bạn định làm gì mà "lờ" trường hợp "trống". Nhưng muốn thì được thôi.
Nếu thế thì theo lôgíc trước hết ta phải kiểm tra xem textbox có ký tự nào không. Nếu có thì mới "cử thanh tra đi kiểm tra", tức mới thực hiện code hiện thời
Mã:
If Len(TextBox1.Text) Then
... code hiện thời
End If
Mình dùng sự kiện Change vẫn thực hiện được, chỉ được nhập số nguyên. khi nhập sai xóa đi cũng ko bị báo dữ liệu "Trống", ko cần dùng đến hàm Len và hàm Number.
Nhưng nhập số thập phân thì mình chưa biết làm như thế nào. có ai cho ý kiến giúp mình.
Xin cảm ơn.
Private Sub TextBox1_Change()
Sheets("abc").Select
Me.TextBox1.Text = Val(TextBox1.Text)
If CLng(TextBox1.Text) > Sheets("abc").Range("b1") Then
MsgBox " kiem tra lai so lieu cua textbox", , "Chu y"
End If
End Sub