Добрый день форумчане. Помогите решить одну задачку в части excel. Есть документ в котором есть список документов с датами начала действия и окончания действия инструкций. Вот необходимо создать напоминалку (всплывающее окно) допустим за неделю до окончания действия инструкции. Подскажите такое возможно сделать в excel в виде скрипта как message box?. К сообщению прикладываю частичку файла. Данная напоминалка нужна, так как периодически забывается обновить инструкцию. Также возможно ли напоминалку разнести на несколько страниц в одной книге?
Добрый день форумчане. Помогите решить одну задачку в части excel. Есть документ в котором есть список документов с датами начала действия и окончания действия инструкций. Вот необходимо создать напоминалку (всплывающее окно) допустим за неделю до окончания действия инструкции. Подскажите такое возможно сделать в excel в виде скрипта как message box?. К сообщению прикладываю частичку файла. Данная напоминалка нужна, так как периодически забывается обновить инструкцию. Также возможно ли напоминалку разнести на несколько страниц в одной книге?rinat_n
rinat_n, непонятно что у вас в столбце Е - дата последнего пересмотра или дата следующего пересмотра. Если последнего, то какого рожна там делает формула, да ещё и кривая к тому же?
rinat_n, непонятно что у вас в столбце Е - дата последнего пересмотра или дата следующего пересмотра. Если последнего, то какого рожна там делает формула, да ещё и кривая к тому же?Апострофф
Апострофф, дата следующего пересмотра. Данный файл ответственный немножко неправильно сделал, я вот хотел заняться пересмотром. Вообще возможно сделать всплывающее окошко об окончании действия инструкций?
Апострофф, дата следующего пересмотра. Данный файл ответственный немножко неправильно сделал, я вот хотел заняться пересмотром. Вообще возможно сделать всплывающее окошко об окончании действия инструкций?rinat_n
Код в модуль ЭтаКнига, и будете получать "всплывающие предупреждения" при каждом открытии. [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
Апострофф, StoTisteg, сорри. Действительно не правильно скопировал скрипт. Подскажите возможно ли в также сделать в этом скрипте чтобы проверка проводилась циклически, по изменению и по открытию документа изменению
Апострофф, StoTisteg, сорри. Действительно не правильно скопировал скрипт. Подскажите возможно ли в также сделать в этом скрипте чтобы проверка проводилась циклически, по изменению и по открытию документа изменениюrinat_n
StoTisteg, еще вопрос возможно ли в скрипте прописать чтобы при всплывающем окне выходил список просроченных инструкций? Если напиши пожалуйста как сделать и какой скрипт. Спасибо большое, мастерам да своего дела
StoTisteg, еще вопрос возможно ли в скрипте прописать чтобы при всплывающем окне выходил список просроченных инструкций? Если напиши пожалуйста как сделать и какой скрипт. Спасибо большое, мастерам да своего дела rinat_n
Это лучше не Msgbox'ом, а формой. Если достаточно вывести "красные", то много изменений не потребуется, в начале чистим ListBox формы, вместо (или после) rn.Rows®.Interior.Color = vbRed добавляем в него параметр истёкшей инструкции, после завершения цикла по ws проверяем число Item'ов в ListBox'е и если больше нуля, вызываем форму.
Это лучше не Msgbox'ом, а формой. Если достаточно вывести "красные", то много изменений не потребуется, в начале чистим ListBox формы, вместо (или после) rn.Rows®.Interior.Color = vbRed добавляем в него параметр истёкшей инструкции, после завершения цикла по ws проверяем число Item'ов в ListBox'е и если больше нуля, вызываем форму.StoTisteg
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Если достаточно вывести "красные", то много изменений не потребуется, в начале чистим ListBox формы, вместо (или после) rn.Rows®.Interior.Color = vbRed добавляем в него параметр истёкшей инструкции, после завершения цикла по ws проверяем число Item'ов в ListBox'е и если больше нуля, вызываем форму
StoTisteg, напишите пожалуйста скрипт, дабы мне не совершить ошибок Программирование мне не дано А Вам за ответы и пути решений
Если достаточно вывести "красные", то много изменений не потребуется, в начале чистим ListBox формы, вместо (или после) rn.Rows®.Interior.Color = vbRed добавляем в него параметр истёкшей инструкции, после завершения цикла по ws проверяем число Item'ов в ListBox'е и если больше нуля, вызываем форму
StoTisteg, напишите пожалуйста скрипт, дабы мне не совершить ошибок Программирование мне не дано А Вам за ответы и пути решенийrinat_n