Bạn xem thử được chưa nhéXin chào các thành viên GPE, em có 1 vấn đề khó xữ. Rất mong được giúp đỡ. Câu hỏi trong file. Em cảm ơn nhiều ạ.
Em xem file coi đúng chưa. Em mô tả chưa được rõ ràng lắm. Mình thắc mắc TB và Tb khác nhau thế nào nhỉXin chào các thành viên GPE, em có 1 vấn đề khó xữ. Rất mong được giúp đỡ. Câu hỏi trong file. Em cảm ơn nhiều ạ.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [G7:AC56]) Is Nothing Then
If Target.Column <> 18 Then
Application.EnableEvents = False
Set tim = [BP:BP].Find(Target)
If tim Is Nothing Then
Target.Clear: Target.Select
MsgBox "Nhap sai du lieu"
Else
Target = UCase(Target)
If Target = "D" Then Target = ChrW(272)
If Target = "CD" Or Target = "C" Then Target = "C" & ChrW(272)
If Target = "KEM" Then Target = "KÉM"
If Target = "T" Then Target = "Tb"
End If
Application.EnableEvents = True
End If
End If
End Sub
Em xem file coi đúng chưa. Em mô tả chưa được rõ ràng lắm. Mình thắc mắc TB và Tb khác nhau thế nào nhỉ
PHP:Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, [G7:AC56]) Is Nothing Then If Target.Column <> 18 Then Application.EnableEvents = False Set tim = [BP:BP].Find(Target) If tim Is Nothing Then Target.Clear: Target.Select MsgBox "Nhap sai du lieu" Else Target = UCase(Target) If Target = "D" Then Target = ChrW(272) If Target = "CD" Or Target = "C" Then Target = "C" & ChrW(272) If Target = "KEM" Then Target = "KÉM" If Target = "T" Then Target = "Tb" End If Application.EnableEvents = True End If End If End Sub
Nếu như dùng Data; Validation như ở bài 2 nhìn nó xấu, có vẻ gồm rà. Ngược lại nếu dùng Min; Max thì giới hạn của nó không nhập được xếp loại. Cảm ơn bạn có lời khuyên.Theo mình nghĩ bạn dùng Data Validasion là được thui
File của anh gần chính xác. Chỉ còn 1 chổ nữa thôi đó là: Khi em nhập số nguyên thì file của anh nó báo lỗi như vậy là chưa được.
Ý em là nhập số nguyên (ví dụ như em nhập 56 thì kết quả cho là 5.6), số thập phân và kể cả xếp loại đều được. Ngoài qui định thì báo lỗi. Cảm ơn anh nhiều.
Nếu như dùng Data; Validation như ở bài 2 nhìn nó xấu, có vẻ gồm rà. Ngược lại nếu dùng Min; Max thì giới hạn của nó không nhập được xếp loại. Cảm ơn bạn có lời khuyên.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [G7:AC56]) Is Nothing Then
If Target.Column <> 18 Then
Application.EnableEvents = False
If Not IsNumeric(Target) Then
Target = UCase(Target)
If Target = "D" Then Target = ChrW(272)
If Target = "CD" Or Target = "C" Then Target = "C" & ChrW(272)
If Target = "K" Then Target = "KÉM"
If Target = "KEM" Then Target = "KÉM"
If Target = "T" Then Target = "Tb"
ElseIf IsNumeric(Target) Then
If Target > 10 Then
Target = Replace(Target, ",", "")
Target = Val(Left(Target, 1) & "." & Right(Target, 1))
End If
End If
Application.EnableEvents = True
End If
End If
End Sub
Hi, hi, em nghỉ chắc anh làm được nhưng gì em mô tả không chuẩn nên mắc công anh quá. Cảm ơn anh nhiều lắm anh à. Mong anh giúp em.Mình biết sợ cách bạn mô tả rồi đấy. Thật ra đâu cần cột phụ làm gì, code tự xoay sở được rồi
Hi, hi, em nghỉ chắc anh làm được nhưng gì em mô tả không chuẩn nên mắc công anh quá. Cảm ơn anh nhiều lắm anh à.
Thôi để em mô tả thêm 1 lần nữa xem sao, nếu không được thì mình kết thúc chủ đề này anh nhé.
Em làm 1 bảng điểm dành cho tất cả GVBM đều sử dụng được. Nếu Gv nhập điểm thì cho kết quả là điểm, nếu Gv nhập xếp loại thì cho kết quả là xếp loại.
Nhập điểm: Em làm cho GVBM nhập điểm nhanh thay vì Gv nhập điểm là 5.6 thì Gv chỉ cần nhập là 56 là được hoặc ngược lại Gv nhập 5.6 cũng được luôn.
Nhập xếp loại: Cũng tương tự như trên thay gì Gv nhập loại CĐ thì chỉ cần nhập c thôi thì cho ra là CĐ. Các loại khác cũng tương tự.
Giờ thì không biết làm sao, lỡ như giáo viên nhập ngoài những qui định của mình thì bảng điểm không báo lỗi được. Ví dụ như Gv muốn nhập loại G nhưng lại nhập chữ H thì bảng tính điểm của mình sai đi. Ý em muôn là nhập những gì sai với qui định như trong file bài 1 là báo lỗi. Hi vọng anh hiểu được. Em đã nói hết ý của em rồi, Hì. Cảm ơn anh Hải nhé. Mong anh giúp em.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [G7:AC56]) Is Nothing Then
If Target.Column <> 18 Then
Application.EnableEvents = False
If Not IsNumeric(Target) Then
Target = UCase(Target)
If Target <> "G" And Target <> "K" And Target <> "TB" And Target <> "T" And _
Target <> "Y" And Target <> "KE" And Target <> "KEM" And Target <> "KÉM" And Target <> ChrW(272) And _
Target <> "C" & ChrW(272) And Target <> "C" And Target <> "CD" And Target <> "D" Then
Target.Clear: Target.Select
MsgBox "Nhap sai du lieu"
Application.EnableEvents = True
Exit Sub
End If
If Target = "D" Then Target = ChrW(272)
If Target = "CD" Or Target = "C" Then Target = "C" & ChrW(272)
If Target = "K" Then Target = "KHÁ"
If Target = "KEM" Then Target = "KÉM"
If Target = "KE" Then Target = "KÉM"
If Target = "T" Then Target = "Tb"
ElseIf IsNumeric(Target) Then
If Target > 10 Then
Target = Replace(Target, ",", "")
Target = Val(Left(Target, 1) & "." & Right(Target, 1))
End If
End If
Application.EnableEvents = True
End If
End If
End Sub