Ký tự đổi màu trong quá trình nhập liệu vào ô, căn cứ vào điều kiện số từ đã nhập

Liên hệ QC

bebo021999

Thành viên gạo cội
Tham gia
26/1/11
Bài viết
5,939
Được thích
8,723
Giới tính
Nam
Nghề nghiệp
GPE
Có người hỏi mình như sau:
Nhập text vào ô, ví dụ ô A1. Điều kiện là số từ nhập vào lớn hơn 7 và nhỏ hơn 17. Nếu sai sẽ cảnh báo người nhập liệu.
Ví dụ:
"Tôi là sinh viên": 4 từ. Không hợp lệ
"Ở nhà, mẹ là người đảm nhiệm công việc nội trợ." 11 từ. hợp lệ.
"Ở nhà, mẹ là người đảm nhiệm công việc nội trợ. Mẹ giao cho em các công việc nhẹ nhàng." 20 từ. Không hợp lệ.
Yêu cầu: Trong quá trình nhập liệu:
Khi nhập từ đầu tiên đến từ số 6, font chữ màu đỏ, cho biết số từ chưa đủ yêu cầu
Khi nhập hết từ thứ 7, toàn bộ màu chuyển sang màu đen bình thường.
Khi bắt đầu nhập sang từ thứ 18, 17 từ đầu vẫn màu đen, từ từ thứ 18 chuyển sang màu đỏ để cảnh báo đã vượt số từ cho phép.
Mình dự tính như sau:
1- Đếm số khoảng trắng, khoảng hợp lệ là từ 6 - 16
2- Nếu đổi màu sau khi enter kết thúc nhập liệu thì không khó.
3- Mình dự định dùng Keypress event cho ô nhập liệu với ý tưởng như sau:
Select case KeyAscii
case =32
Count = count + 1
IF Count<7 or Count>17 then
tô màu đỏ
Else
tô màu đen
End if
End select

Lưu ý là quá trình hiển thị màu trong quá trình nhập liệu để cảnh báo tức thì, chứ không phải là sau khi Enter.
Đang tự học VBA, chưa biết phải là trong module hay trong sheet event, cũng như chưa biết phải bắt đầu từ đâu.
Xin cảm ơn.
 
Có người hỏi mình như sau:
Nhập text vào ô, ví dụ ô A1. Điều kiện là số từ nhập vào lớn hơn 7 và nhỏ hơn 17. Nếu sai sẽ cảnh báo người nhập liệu.
Ví dụ:
"Tôi là sinh viên": 4 từ. Không hợp lệ
"Ở nhà, mẹ là người đảm nhiệm công việc nội trợ." 11 từ. hợp lệ.
"Ở nhà, mẹ là người đảm nhiệm công việc nội trợ. Mẹ giao cho em các công việc nhẹ nhàng." 20 từ. Không hợp lệ.
Yêu cầu: Trong quá trình nhập liệu:
Khi nhập từ đầu tiên đến từ số 6, font chữ màu đỏ, cho biết số từ chưa đủ yêu cầu
Khi nhập hết từ thứ 7, toàn bộ màu chuyển sang màu đen bình thường.
Khi bắt đầu nhập sang từ thứ 18, 17 từ đầu vẫn màu đen, từ từ thứ 18 chuyển sang màu đỏ để cảnh báo đã vượt số từ cho phép.
Mình dự tính như sau:
1- Đếm số khoảng trắng, khoảng hợp lệ là từ 6 - 16
2- Nếu đổi màu sau khi enter kết thúc nhập liệu thì không khó.
3- Mình dự định dùng Keypress event cho ô nhập liệu với ý tưởng như sau:
Select case KeyAscii
case =32
Count = count + 1
IF Count<7 or Count>17 then
tô màu đỏ
Else
tô màu đen
End if
End select

Lưu ý là quá trình hiển thị màu trong quá trình nhập liệu để cảnh báo tức thì, chứ không phải là sau khi Enter.
Đang tự học VBA, chưa biết phải là trong module hay trong sheet event, cũng như chưa biết phải bắt đầu từ đâu.
Xin cảm ơn.
Bài này của bác qua giờ mà không thấy ai trả lời nhỉ, nhưng mà câu hỏi của bác thì không làm được rồi, không tô màu khi đang nhập được đâu bác. Hay là em không biết cũng nên :D
 
Upvote 0
Theo mình biết thì keypress event trong chế độ edit vẫn bắt được nhé, chỉ có là không biết bắt thế nào thôi.
 
Upvote 0
Cái vụ này hay nè, mình đang chờ có người làm được để học hỏi thêm
 
Upvote 0
Nếu là userform thì thử đoạn code sau.
PHP:
Private Sub TextBox1_Change()
    Const lim = 3
    If UBound(Split(TextBox1, " ")) > lim Then
        TextBox1.ForeColor = vbRed
    Else
        TextBox1.ForeColor = vbBlack
    End If
End Sub
 
Upvote 0
Không phải nhập trên userform,mà edit trên cell
 
Upvote 0
Web KT

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

Back
Top Bottom