Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2013, 09:53   #1
basket.uss
 
Регистрация: 24.12.2013
Сообщений: 4
По умолчанию Вывод сообщения

Добрый день.
Помогите с решением следующей простой задачи:
Нужен макрос после запуска которого проверяется значение в столбце В. Если в столбце есть значение ОШИБКА, то необходимо вывести сообщение "Текст, который находится слевой стороны от слова ошибка". Если ОШИБКИ нет, то вывести сообщение, что все ХОРОШО
Большое спасибо
Вложения
Тип файла: rar проверка.rar (5.6 Кб, 6 просмотров)
basket.uss вне форума Ответить с цитированием
Старый 24.12.2013, 10:02   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А если в столбце несколько ячеек с значением "ОШИБКА" (как у Вас в примере), то какой из текстов выводить сообщением?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 24.12.2013, 10:23   #3
basket.uss
 
Регистрация: 24.12.2013
Сообщений: 4
По умолчанию

Если несколько, то вывести текст 1 ошибка, текст 2 ошибка
basket.uss вне форума Ответить с цитированием
Старый 24.12.2013, 10:39   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно так:
Код:
Sub Msg()
    Dim i As Long, s As String, a()
    a = Range("A1:B" & Cells(Rows.Count, 2).End(xlUp).Row).Value
    For i = 1 To UBound(a, 1)
        If a(i, 2) = "ОШИБКА" Then s = s & ", " & a(i, 1)
    Next
    If Len(s) = 0 Then MsgBox "Все в порядке" Else MsgBox Mid$(s, 3)
End Sub
Пример во вложении.
Вложения
Тип файла: rar проверка.rar (9.4 Кб, 22 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 24.12.2013, 15:06   #5
basket.uss
 
Регистрация: 24.12.2013
Сообщений: 4
По умолчанию

Отлично, спасибо большое.
Именно то, что мне нужно.
А теперь такой вопрос: а возможно ли при нажатии кнопки печать, сначала проверяется данный макрос, а потом уже идет печать?
basket.uss вне форума Ответить с цитированием
Старый 24.12.2013, 16:19   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
...а возможно ли при нажатии кнопки печать, сначала проверяется данный макрос, а потом уже идет печать?
Можно. Только, не понятно, что значит "проверяется, затем идет печать"?
Для того, чтобы перед печатью что-либо выполнить, нужно использовать событие Workbook_BeforePrint. Например, пусть требуется запретить печать, если ячейка "A1" пустая. Для этого, в модуль книги помещаем код:
Код:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    If [A1] = "" Then Cancel = True
End Sub
Также, можно перед печатью запускать макрос:
Код:
Private Sub Workbook_BeforePrint(Cancel As Boolean): Run "Msg": End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод сообщения в ассемблер aidar9012 Фриланс 1 17.12.2012 12:48
ВЫВОД СООБЩЕНИЯ В АССЕМБЛЕРЕ aidar9012 Помощь студентам 1 17.12.2012 09:39
Вывод сообщения в консоле Palomnik1096 Win Api 1 18.06.2012 17:18
вывод сообщения по дате WALL Помощь студентам 9 09.11.2010 09:28
Вывод сообщения в PDF Busine2009 Фриланс 2 13.07.2009 09:39