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

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

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

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

Схема таблицы ниже:

введите описание изображения здесь


person Peter Mogford    schedule 22.06.2016    source источник
comment
Что вы пробовали до сих пор?   -  person Vincent G    schedule 22.06.2016
comment
Честно говоря, я ничего не пробовал, так как не знаю, с чего начать, лучшее, что я мог придумать, было MsgBox " Please complete the following mandatory fields:" & vbNewLine & "Customer Name", но это не циклически проходит по списку и не добавляет каждый элемент, пока не найдет пустую ячейку, а затем остановится   -  person Peter Mogford    schedule 22.06.2016
comment
Начните с документации. Вы можете решить эту проблему, объединив для ... следующего с помощью MsgBox.   -  person David Rushton    schedule 22.06.2016
comment
Я не собирался отвечать на этот вопрос, так как вы не приложили усилий, но ваши комментарии показывают некоторую мысль. Для достижения наилучших результатов всегда попробуйте и объясните свою проблему и то, как вы хотели бы получить помощь.   -  person Gary Evans    schedule 22.06.2016


Ответы (2)


В приведенном ниже примере просматривается 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
person Gary Evans    schedule 22.06.2016

Предполагается, что ПРОВЕРКА означает наличие проблемы.

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
person Hello World    schedule 22.06.2016