2016-06-22 3 views
0

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

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

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

Сервировка стола ниже:

enter image description here

+0

Что вы пытались до сих пор? –

+0

Честно говоря, я ничего не пробовал, так как не знаю, с чего начать. Лучшее, что я мог подумать, это «MsgBox». Заполните следующие обязательные поля: «& vbNewLine &« Имя клиента », но это не так, t циклически перебирать список и добавлять каждый элемент до тех пор, пока он не найдет пустую ячейку, а затем остановится. –

+0

Начните с [документация] (https://msdn.microsoft.com/en-us/library/office/gg264383.aspx). Вы можете решить эту проблему, объединив [для следующего ...] (https://msdn.microsoft.com/en-us/library/office/gg251601.aspx) с помощью [MsgBox] (https://msdn.microsoft .com/EN-US/библиотека/офис/gg251821.aspx). –

ответ

0

Это предполагает ПРОВЕРКИ означает, что есть проблема

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 
0

Ниже образец проходит через 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 
Смежные вопросы