Nhờ hỗ trợ code tô màu những ô không phải số nguyên dương hay số lớn hơn 20

Liên hệ QC

LanAnh19

Thành viên chính thức
Tham gia
1/5/22
Bài viết
76
Được thích
8
Giới tính
Nữ
Các bạn giúp code tô những ô không phải là số nguyên dương
hoặc số lớn hơn 20
Sau khi mình nhập liệu xong thì cho chạy code, nếu từ G9 trở xuống mà ô nào không thỏa điều kiện trên thì tô đỏ. Xin cảm ơn nhiều.
 

File đính kèm

  • Nguyenduong.xlsx
    7.9 KB · Đọc: 18
Mình gom chỉ thông báo sau khi chạy xong hết toàn bộ.

PHP:
Option Explicit
Sub ToMauSoNguyen()
    Dim I           As Long, j As Long, Rng As Range
    Dim str         As String
    With Sheets("DATA")
        For I = 9 To .Cells(10000, 7).End(xlUp).Row
            If IsNumeric(.Cells(I, 7)) = FALSE Then
                .Cells(I, 7).Interior.ColorIndex = 6
                If str = "" Then str = .Cells(I, 7).Address Else: str = str & ", " & .Cells(I, 7).Address
            Else
                If .Cells(I, 7) < 0 Or Int(.Cells(I, 7)) <> .Cells(I, 7) Or .Cells(I, 7) > 20 Then
                    .Cells(I, 7).Interior.ColorIndex = 6
                    If str = "" Then str = .Cells(I, 7).Address Else: str = str & ", " & .Cells(I, 7).Address
                End If
            End If
        Next I
    End With
    Application.Assistant.DoAlert "Thông báo !!!", "L" & ChrW(7895) & "i t" & ChrW(7841) & "i các ô sau: " & str , msoAlertButtonOK, msoAlertIconInfo, 0, 0, 0
End Sub
Cảm ơn bạn nhiều
Hiện mình đang dùng code (tổng hợp các code để chạy)
Mã:
Sub TONGHOP()
    Call Macro1
    Call Macro2
    Call ToMauSoNguyen
    Call Macro3
    Call Macro4
End Sub
Mình muốn khi chạy code TONGHOP thì
chạy Macro1 và Macro2 xong thì chạy ToMauSoNguyen (code ở bài 16), NẾU
1/ Ô nào bị lỗi thì báo lỗi xong rồi thì thoát khỏi Sub TONGHOP(), không chạy tiếp Macro3, Macro4 nữa
2/ nếu không bị lỗi thì tiếp tục chạy Macro3, Macro4
Như vậy thì ta cần bổ sung code như thế nào? Cảm ơn các bạn!
 
Upvote 0
Thử cái này nhé
PHP:
Option Explicit
Public loi As Boolean
Sub TONGHOP()
    Call Macro1
    Call Macro2
    Call ToMauSoNguyen
    If loi Then Exit Sub
    Call Macro3
    Call Macro4
End Sub
PHP:
Sub ToMauSoNguyen()
Dim cell As Range, tb As String
tb = "Co loi tai o: "
For Each cell In Range("G9:G" & Cells(Rows.Count, "G").End(xlUp).Row)
    If Not IsNumeric(Evaluate("=Match(" & cell.Value & ", Row(1:20), 0)")) Then
        cell.Interior.Color = vbRed
        loi = True
        tb = tb & vbLf & cell.Address(0, 0)
    End If
Next
If loi Then MsgBox tb
End Sub
 
Upvote 0
Mình gom chỉ thông báo sau khi chạy xong hết toàn bộ.

PHP:
Option Explicit
Sub ToMauSoNguyen()
    Dim I           As Long, j As Long, Rng As Range
    Dim str         As String
    With Sheets("DATA")
        For I = 9 To .Cells(10000, 7).End(xlUp).Row
            If IsNumeric(.Cells(I, 7)) = FALSE Then
                .Cells(I, 7).Interior.ColorIndex = 6
                If str = "" Then str = .Cells(I, 7).Address Else: str = str & ", " & .Cells(I, 7).Address
            Else
                If .Cells(I, 7) < 0 Or Int(.Cells(I, 7)) <> .Cells(I, 7) Or .Cells(I, 7) > 20 Then
                    .Cells(I, 7).Interior.ColorIndex = 6
                    If str = "" Then str = .Cells(I, 7).Address Else: str = str & ", " & .Cells(I, 7).Address
                End If
            End If
        Next I
    End With
    Application.Assistant.DoAlert "Thông báo !!!", "L" & ChrW(7895) & "i t" & ChrW(7841) & "i các ô sau: " & str , msoAlertButtonOK, msoAlertIconInfo, 0, 0, 0
End Sub
Có trên dù không có lỗi, thì nó vẫn thông báo
Có cách nào, có lỗi thì thông báo, không có lỗi thì không thông báo
cảm ơn các bạn đã hỗ trợ!
 

File đính kèm

  • Loi.png
    Loi.png
    22.1 KB · Đọc: 1
  • Nguyenduong-LAN2.xlsm
    15.1 KB · Đọc: 1
Upvote 0
Có trên dù không có lỗi, thì nó vẫn thông báo
Có cách nào, có lỗi thì thông báo, không có lỗi thì không thông báo
cảm ơn các bạn đã hỗ trợ!
bổ sung trước dòng lệnh này
Application.Assistant.DoAlert

if str<>"" then Application.Assistant.DoAlert ........

kiểu như vậy sẽ có kết quả
 
Upvote 0
Web KT

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

Back
Top Bottom