Nhờ viết code cảnh báo khi nhập sai dữ liệu. (3 người xem)

  • Thread starter Thread starter Toanvd
  • Ngày gửi Ngày gửi
Liên hệ QC

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

Toanvd

Thành viên mới
Tham gia
28/1/07
Bài viết
16
Được thích
5
Nhờ các Anh/chị trong viết giúp code cảnh báo khi nhập sai dữ liệu. Mình cũng đã thử bằng Data/validation nhưng không được. Cám ơn các Anh/chị!
 

File đính kèm

Lần chỉnh sửa cuối:
Khi đã đưa ra thông báo rồi mà số liệu chưa được sửa thì 5phút lại hiện thông báo 1 l

Mình không biết về Macro nên đưa ra yêu cầu thực tế trong công việc. Nhờ các Anh/chị giúp trước phần đưa ra thông báo khi nhập dữ liệu sai.
 
Bạn thử với macro sự kiện này xem sao

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim StrC  As String
 
 "Ban Nhap Sai Du Lieu" & Chr(10) & " Yeu Cau Kiem Tra Du Lieu Nhap."
 If Not Intersect(Target, Columns(3)) Is Nothing And Target.Offset(, -1) <> "" Then
   With Target
      If .Value <> .Offset(, -1).Value Then
         .Offset(, -1).Resize(, 2).Interior.ColorIndex = 3
         MsgBox StrC, , "GPE.COM"
      Else
         .Offset(, -1).Resize(, 2).Interior.ColorIndex = 0
      End If
   End With
 ElseIf Not Intersect(Target, Columns(2)) Is Nothing And Target.Offset(, 1) <> "" Then
   With Target
      If .Value <> .Offset(, 1).Value Then
         .Resize(, 2).Interior.ColorIndex = 5
         MsgBox StrC, , "GPE.COM"
      Else
         .Resize(, 2).Interior.ColorIndex = 0
      End If
   End With
 End If
End Sub
 
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim StrC  As String
 
 "Ban Nhap Sai Du Lieu" & Chr(10) & " Yeu Cau Kiem Tra Du Lieu Nhap."
 If Not Intersect(Target, Columns(3)) Is Nothing And Target.Offset(, -1) <> "" Then
   With Target
      If .Value <> .Offset(, -1).Value Then
         .Offset(, -1).Resize(, 2).Interior.ColorIndex = 3
         MsgBox StrC, , "GPE.COM"
      Else
         .Offset(, -1).Resize(, 2).Interior.ColorIndex = 0
      End If
   End With
 ElseIf Not Intersect(Target, Columns(2)) Is Nothing And Target.Offset(, 1) <> "" Then
   With Target
      If .Value <> .Offset(, 1).Value Then
         .Resize(, 2).Interior.ColorIndex = 5
         MsgBox StrC, , "GPE.COM"
      Else
         .Resize(, 2).Interior.ColorIndex = 0
      End If
   End With
 End If
End Sub
Sao lại có dòng này không không vậy bác.
PHP:
"Ban Nhap Sai Du Lieu" & Chr(10) & " Yeu Cau Kiem Tra Du Lieu Nhap."
Không gán vào StrC àh?
Và thiếu bẫy lỗi.
Có cái này Target.Offset(, -1) không bẫy lỗi khi nhập liệu vào cột A sẽ phát sinh lỗi. Thao tác trên nhiều Cells cũng bị lỗi.
 
Lần chỉnh sửa cuối:
Dùng Validation Custom cũng tạm được, cảnh báo ngay khi nhập liệu. Còn copy paste vô thì chịu thua, khỏi nói.

Nhập số nào trước cũng được, nhưng khi nhập số thứ nhì không bằng số trước là nó la.
 

File đính kèm

Nhờ các Anh/chị trong viết giúp code cảnh báo khi nhập sai dữ liệu. Mình cũng đã thử bằng Data/validation nhưng không được. Cám ơn các Anh/chị!

Mình góp thêm 1 cách nữa :

PHP:
Private Sub Worksheet_Change(ByVal target As Range)
    Call SS(target, [B2:B65536], 1, 2)
    Call SS(target, [C2:C65536], -1, 1)
End Sub

Sub SS(ByVal target As Range, Rng As Range, i As Integer, j As Integer)
    Dim Cll As Range
    On Error Resume Next
    If target.Rows.Count = 1 And Not Intersect(target, Rng) Is Nothing Then
        Set Cll = Intersect(target, Rng)
        If Cll <> "" And Cll.Offset(, i) <> "" Then
            If Cll <> Cll.Offset(, i) Then
                MsgBox "Nhap sai du lieu." & vbCrLf & "Kiem tra lai du lieu nhap."
                target.ClearContents
                target.Select
            Else: Cll.Offset(, j) = 0
            End If
        Else: Cll.Offset(, j) = ""
        End If
    End If
End Sub
 

File đính kèm

BÁc cho em hỏi thêm chút nhé. Với trường hợp trên nếu tại 1 cell (kết quả của một phép t ính bằng số) nếu ra kết quả là số âm thì báo lỗi nhập sai dữ liệu còn kết quả ra dương là OK thì em phải sửa như thế nào
Cảm ơn!
 
Web KT

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

Back
Top Bottom