Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Всплывающее окно как message box - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Всплывающее окно как message box (Макросы/Sub)
Всплывающее окно как message box
rinat_n Дата: Суббота, 21.04.2018, 16:17 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день форумчане. Помогите решить одну задачку в части excel. Есть документ в котором есть список документов с датами начала действия и окончания действия инструкций. Вот необходимо создать напоминалку (всплывающее окно) допустим за неделю до окончания действия инструкции. Подскажите такое возможно сделать в excel в виде скрипта как message box?. К сообщению прикладываю частичку файла. Данная напоминалка нужна, так как периодически забывается обновить инструкцию. Также возможно ли напоминалку разнести на несколько страниц в одной книге?
К сообщению приложен файл: 0262834.xls (47.0 Kb)
 
Ответить
СообщениеДобрый день форумчане. Помогите решить одну задачку в части excel. Есть документ в котором есть список документов с датами начала действия и окончания действия инструкций. Вот необходимо создать напоминалку (всплывающее окно) допустим за неделю до окончания действия инструкции. Подскажите такое возможно сделать в excel в виде скрипта как message box?. К сообщению прикладываю частичку файла. Данная напоминалка нужна, так как периодически забывается обновить инструкцию. Также возможно ли напоминалку разнести на несколько страниц в одной книге?

Автор - rinat_n
Дата добавления - 21.04.2018 в 16:17
Апострофф Дата: Суббота, 21.04.2018, 17:24 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 448
Репутация: 124 ±
Замечаний: 0% ±

Excel 1997
rinat_n, непонятно что у вас в столбце Е - дата последнего пересмотра или дата следующего пересмотра.
Если последнего, то какого рожна там делает формула, да ещё и кривая к тому же?
 
Ответить
Сообщениеrinat_n, непонятно что у вас в столбце Е - дата последнего пересмотра или дата следующего пересмотра.
Если последнего, то какого рожна там делает формула, да ещё и кривая к тому же?

Автор - Апострофф
Дата добавления - 21.04.2018 в 17:24
rinat_n Дата: Суббота, 21.04.2018, 20:50 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Апострофф, дата следующего пересмотра. Данный файл ответственный немножко неправильно сделал, я вот хотел заняться пересмотром. Вообще возможно сделать всплывающее окошко об окончании действия инструкций?
 
Ответить
СообщениеАпострофф, дата следующего пересмотра. Данный файл ответственный немножко неправильно сделал, я вот хотел заняться пересмотром. Вообще возможно сделать всплывающее окошко об окончании действия инструкций?

Автор - rinat_n
Дата добавления - 21.04.2018 в 20:50
Апострофф Дата: Суббота, 21.04.2018, 23:53 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 448
Репутация: 124 ±
Замечаний: 0% ±

Excel 1997
Код в модуль ЭтаКнига, и будете получать "всплывающие предупреждения" при каждом открытии.
[vba]
Код
Private Sub Workbook_Open()
Dim ws As Worksheet, rn As Range, r As Long
Dim NG As Long, NR As Long
Dim D As Date
For Each ws In ThisWorkbook.Worksheets
  Set rn = ws.UsedRange
  rn.Interior.Pattern = xlNone
  For r = 3 To rn.Rows.Count
    If IsDate(rn(r, "E")) Then
      D = rn(r, "E")
      If D < Date Then
        'срок истек
        NR = NR + 1
        rn.Rows(r).Interior.Color = vbRed
      ElseIf D - 100 < Date Then
        'на подходе
        NG = NG + 1
        rn.Rows(r).Interior.Color = vbYellow
      End If
    End If
  Next r
Next ws
If NG + NR > 0 Then
  MsgBox "Просроченные выделены красным, с истекающим сроком (через 100 дней) - желтым."
End If
End Sub
[/vba]
 
Ответить
СообщениеКод в модуль ЭтаКнига, и будете получать "всплывающие предупреждения" при каждом открытии.
[vba]
Код
Private Sub Workbook_Open()
Dim ws As Worksheet, rn As Range, r As Long
Dim NG As Long, NR As Long
Dim D As Date
For Each ws In ThisWorkbook.Worksheets
  Set rn = ws.UsedRange
  rn.Interior.Pattern = xlNone
  For r = 3 To rn.Rows.Count
    If IsDate(rn(r, "E")) Then
      D = rn(r, "E")
      If D < Date Then
        'срок истек
        NR = NR + 1
        rn.Rows(r).Interior.Color = vbRed
      ElseIf D - 100 < Date Then
        'на подходе
        NG = NG + 1
        rn.Rows(r).Interior.Color = vbYellow
      End If
    End If
  Next r
Next ws
If NG + NR > 0 Then
  MsgBox "Просроченные выделены красным, с истекающим сроком (через 100 дней) - желтым."
End If
End Sub
[/vba]

Автор - Апострофф
Дата добавления - 21.04.2018 в 23:53
rinat_n Дата: Воскресенье, 22.04.2018, 08:15 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Апострофф, спасибо большое. respect
 
Ответить
СообщениеАпострофф, спасибо большое. respect

Автор - rinat_n
Дата добавления - 22.04.2018 в 08:15
rinat_n Дата: Воскресенье, 22.04.2018, 08:15 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Апострофф, Данный скрипт добавляем в макрос и все?
 
Ответить
СообщениеАпострофф, Данный скрипт добавляем в макрос и все?

Автор - rinat_n
Дата добавления - 22.04.2018 в 08:15
StoTisteg Дата: Воскресенье, 22.04.2018, 14:59 | Сообщение № 7
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Апострофф, я бы на Activate повесил на случай месяцами не перезагружаемого компа :)


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеАпострофф, я бы на Activate повесил на случай месяцами не перезагружаемого компа :)

Автор - StoTisteg
Дата добавления - 22.04.2018 в 14:59
rinat_n Дата: Воскресенье, 22.04.2018, 20:41 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
StoTisteg, подскажите Activate куда добавить? чтоб месяц проверку проводил.
 
Ответить
СообщениеStoTisteg, подскажите Activate куда добавить? чтоб месяц проверку проводил.

Автор - rinat_n
Дата добавления - 22.04.2018 в 20:41
Апострофф Дата: Воскресенье, 22.04.2018, 20:58 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 448
Репутация: 124 ±
Замечаний: 0% ±

Excel 1997
rinat_n, Вы читать умеете?
Цитата Апострофф, 21.04.2018 в 23:53, в сообщении № 4 ()
Код в модуль ЭтаКнига
или THISWORKBOOK, если не по нашенскому.
 
Ответить
Сообщениеrinat_n, Вы читать умеете?
Цитата Апострофф, 21.04.2018 в 23:53, в сообщении № 4 ()
Код в модуль ЭтаКнига
или THISWORKBOOK, если не по нашенскому.

Автор - Апострофф
Дата добавления - 22.04.2018 в 20:58
StoTisteg Дата: Воскресенье, 22.04.2018, 21:00 | Сообщение № 10
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
rinat_n, всё тот же код в точности туда же, только вместо Private Sub Workbook_Open() должно быть Private Sub Workbook_Activate()


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщениеrinat_n, всё тот же код в точности туда же, только вместо Private Sub Workbook_Open() должно быть Private Sub Workbook_Activate()

Автор - StoTisteg
Дата добавления - 22.04.2018 в 21:00
rinat_n Дата: Воскресенье, 22.04.2018, 21:03 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Апострофф, при проверки скрипта выходит ошибка: Compile error: Expected End Sub
 
Ответить
СообщениеАпострофф, при проверки скрипта выходит ошибка: Compile error: Expected End Sub

Автор - rinat_n
Дата добавления - 22.04.2018 в 21:03
StoTisteg Дата: Воскресенье, 22.04.2018, 21:13 | Сообщение № 12
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Ну так добавьте последнюю строку End Sub. И вообще скопируйте код полностью, а не только то, что видите, End Sub там есть.


Интуитивно понятный код - это когда интуитивно понятно, что это код.

Сообщение отредактировал StoTisteg - Воскресенье, 22.04.2018, 21:15
 
Ответить
СообщениеНу так добавьте последнюю строку End Sub. И вообще скопируйте код полностью, а не только то, что видите, End Sub там есть.

Автор - StoTisteg
Дата добавления - 22.04.2018 в 21:13
Апострофф Дата: Воскресенье, 22.04.2018, 21:15 | Сообщение № 13
Группа: Проверенные
Ранг: Обитатель
Сообщений: 448
Репутация: 124 ±
Замечаний: 0% ±

Excel 1997
rinat_n, так Вы или код полностью скопируйте, или допишите этот END SUB, раз Бэйсику это нужно.
 
Ответить
Сообщениеrinat_n, так Вы или код полностью скопируйте, или допишите этот END SUB, раз Бэйсику это нужно.

Автор - Апострофф
Дата добавления - 22.04.2018 в 21:15
rinat_n Дата: Воскресенье, 22.04.2018, 21:36 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Апострофф, StoTisteg, сорри. Действительно не правильно скопировал скрипт. Подскажите возможно ли в также сделать в этом скрипте чтобы проверка проводилась циклически, по изменению и по открытию документа изменению
 
Ответить
СообщениеАпострофф, StoTisteg, сорри. Действительно не правильно скопировал скрипт. Подскажите возможно ли в также сделать в этом скрипте чтобы проверка проводилась циклически, по изменению и по открытию документа изменению

Автор - rinat_n
Дата добавления - 22.04.2018 в 21:36
Апострофф Дата: Воскресенье, 22.04.2018, 21:45 | Сообщение № 15
Группа: Проверенные
Ранг: Обитатель
Сообщений: 448
Репутация: 124 ±
Замечаний: 0% ±

Excel 1997
возможно ли

Можно.
 
Ответить
Сообщение
возможно ли

Можно.

Автор - Апострофф
Дата добавления - 22.04.2018 в 21:45
rinat_n Дата: Воскресенье, 22.04.2018, 22:01 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Апострофф, подскажите плиз как сделать?
 
Ответить
СообщениеАпострофф, подскажите плиз как сделать?

Автор - rinat_n
Дата добавления - 22.04.2018 в 22:01
StoTisteg Дата: Понедельник, 23.04.2018, 15:58 | Сообщение № 17
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Тот же код в модуль изменяемого листа в Private Sub Worksheet_Change(ByVal Target As Range)


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеТот же код в модуль изменяемого листа в Private Sub Worksheet_Change(ByVal Target As Range)

Автор - StoTisteg
Дата добавления - 23.04.2018 в 15:58
rinat_n Дата: Понедельник, 23.04.2018, 16:21 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
StoTisteg, еще вопрос возможно ли в скрипте прописать чтобы при всплывающем окне выходил список просроченных инструкций? Если напиши пожалуйста как сделать и какой скрипт. Спасибо большое, мастерам да своего дела :)
 
Ответить
СообщениеStoTisteg, еще вопрос возможно ли в скрипте прописать чтобы при всплывающем окне выходил список просроченных инструкций? Если напиши пожалуйста как сделать и какой скрипт. Спасибо большое, мастерам да своего дела :)

Автор - rinat_n
Дата добавления - 23.04.2018 в 16:21
StoTisteg Дата: Понедельник, 23.04.2018, 16:51 | Сообщение № 19
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Это лучше не Msgbox'ом, а формой. Если достаточно вывести "красные", то много изменений не потребуется, в начале чистим ListBox формы, вместо (или после) rn.Rows®.Interior.Color = vbRed добавляем в него параметр истёкшей инструкции, после завершения цикла по ws проверяем число Item'ов в ListBox'е и если больше нуля, вызываем форму.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеЭто лучше не Msgbox'ом, а формой. Если достаточно вывести "красные", то много изменений не потребуется, в начале чистим ListBox формы, вместо (или после) rn.Rows®.Interior.Color = vbRed добавляем в него параметр истёкшей инструкции, после завершения цикла по ws проверяем число Item'ов в ListBox'е и если больше нуля, вызываем форму.

Автор - StoTisteg
Дата добавления - 23.04.2018 в 16:51
rinat_n Дата: Понедельник, 23.04.2018, 20:41 | Сообщение № 20
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Если достаточно вывести "красные", то много изменений не потребуется, в начале чистим ListBox формы, вместо (или после) rn.Rows®.Interior.Color = vbRed добавляем в него параметр истёкшей инструкции, после завершения цикла по ws проверяем число Item'ов в ListBox'е и если больше нуля, вызываем форму

StoTisteg, напишите пожалуйста скрипт, дабы мне не совершить ошибок :'(
Программирование мне не дано :D
А Вам respect за ответы и пути решений
 
Ответить
Сообщение
Если достаточно вывести "красные", то много изменений не потребуется, в начале чистим ListBox формы, вместо (или после) rn.Rows®.Interior.Color = vbRed добавляем в него параметр истёкшей инструкции, после завершения цикла по ws проверяем число Item'ов в ListBox'е и если больше нуля, вызываем форму

StoTisteg, напишите пожалуйста скрипт, дабы мне не совершить ошибок :'(
Программирование мне не дано :D
А Вам respect за ответы и пути решений

Автор - rinat_n
Дата добавления - 23.04.2018 в 20:41
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Всплывающее окно как message box (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!