Окно сообщения VBA со списком неудачных проверок

Как создать окно сообщения, которое показывает все обязательные поля, которые не были заполнены.

Я использую таблицу с автоматическим фильтром ("Таблица 11"), чтобы отображать только неудачные проверки.

Я хочу перевести их в окно сообщения, которое показывает, когда торговый агент пытается создать контракт.

Расположение таблицы ниже:

2 ответа

Предполагается, что CHECK означает, что есть проблема

Sub ErrorMessage()
Dim strErrMsg As String
Dim cell As Range
If Application.CountIf(-yourfilteredrangehere-), "CHECK") = 0 Then Exit Sub
'no problems to output
For Each cell In Range(-yourfilteredrangehere-)
    'next line assumes checkitem in previous column, change if not
    If cell = "check" Then strErrMsg = strErrMsg & "Please check " & cell.Offset(0, -1) & vbCrLf
Next cell
MsgBox strErrMsg
End Sub

Пример ниже проходит через Table11 и создает список всех тех, кто помечен "Проверить", затем отображает сообщение, если были элементы.

Public Sub Sample()
Dim LngCounter  As Long
Dim Tbl         As Excel.Range
Dim StrMsg      As String

Set Tbl = ThisWorkbook.Worksheets("Sheet1").Range("Table11")
    For LngCounter = 2 To Tbl.Rows.Count
        If Trim(UCase(Tbl.Cells(LngCounter, 2))) = "CHECK" Then
            StrMsg = StrMsg & Tbl.Cells(LngCounter, 1) & vbNewLine
        End If
    Next
Set Tbl = Nothing

If StrMsg <> "" Then
    MsgBox "The following items need attention before continuing: - " & vbNewLine & vbNewLine & StrMsg, vbOKOnly + vbExclamation, "Data Validation"
End If

End Sub
Другие вопросы по тегам