Страницы: 1
RSS
макрос со звуковым оповещением
 
вообщем суть вопроса такая! есть таблица из N количества столбцов (например 16), в 14ый столбец забивается срок устранения нарушений (например: 10.02.2013). Вопрос как сделать так, чтобы в день истечения срока выскакивало диалоговое окно со звуковым оповещением "Срок устранения нарушений истек" !!!! Помогите облегчить работу! Пробовал сам, но вылетает куча всяких ошибок с этими макросами, то макроса нет в книге, либо в компиляторе висуал бейсик нажимает кнопку запуска вылезает ошибка The macros in this.....Вообщем голова кругом..один долго буду сидеть! Офис 2007 стоит
Изменено: maximaxon - 06.02.2013 22:51:09
 
не глядя в файл вопрос: Вы макрос в xlsx файл пишете?
Учимся сами и помогаем другим...
 
Цитата
то макроса нет в книге, либо в компиляторе висуал бейсик нажимает кнопку запуска вылезает ошибка The macros in this....
Ещё бы у вас что-то получилось...
Выбранный вами формат файла Excel не поддерживает макросы.

Сохраните файл в формате XLSB или XLSM или XLS - и потом пишите макросы,
они не будут пропадать после сохранения и закрытия книги
 
Прикрепил пример! Воообщем и тут напишу суть вопроса:

Sub Кнопка1_Щелчок()
For i = 3 To 4
If (какое условие должно быть, чтобы осуществлялся поиск даты в 14 столбце, которая равна сегодняшней и тем самым выводилось диалоговое окно с текстом "Истек срок устранения нарушений" и указывалась ячейка в которой дата совпадает с текущей (можно даже например чтобы она выделялась красным), буду благодарен примеру чтобы оповещение выскакивало например за день до истечения срока)
MsgBox ("Истек срок устранения нарушений"  ;)  
Next i
End Sub



Дополните пробелы пожалуйста, и недостающие функции, не силен я в этом! первый раз столкнулся с такой задачей!
Изменено: maximaxon - 07.02.2013 17:57:23
 
Для чего вот это "For i = 3 To 4 " так и не понял....

Может так подойдет?  ;)

P.S. обратите внимание на именованные диапазоны на листе:
iDate (=Лист1!$N$3:$N$4) и
nDate (=Лист1!$N$7)
Современные языки программирования обязаны иметь встроенный метод ChuckNorris(),
который возвращает нужные тебе данные из любого объекта, даже если их там нет...
 
For i = 3 To 4   Это типа диапазона строк, на каком то форуме читал, что так можно делать! Вечером посмотрю то что ты сделал и отпишусь!
 
да, все работает! спасибо, именно так, как я и хотел!
Изменено: maximaxon - 10.02.2013 11:20:44
 
Цитата
MerZ@vcheG пишет:
Для чего вот это "For i = 3 To 4 " так и не понял....

Может так подойдет?  ;)  

P.S. обратите внимание на именованные диапазоны на листе:
iDate (=Лист1!$N$3:$N$4) и
nDate (=Лист1!$N$7)

Друг, вообщем щас тщательно все проверил. Код который ты написал подходит, единстаенное знак > я поменял на < . Далее столкнулся с такой проблемой, щас в целом обрисую:

При поиске в диапазоне iDate нужно немного урезать поиск,т.к он мне выводит лишние даты которые не являются просрочеными(зависит это все от того, что в смежной ячейке справа стоит информация с номером об устранении нарушений - т.е дата эта уже в любом случае не просрочена). В чем заключает урезание поиска:

Те ячейки с датами, которые по нашему условию удовлетворяют просрочке должны перед тем как вывестись на экран в сообщении свериться со смежными ячейками правого столбца (инфо об устранении нарушений!) и если в них обнаруживается текст "В деле" то только тогда он является полноценной Просроченой датой и уже выводится в диалоговом окне на экран.

Помоги пожалуйста реализовать эту процедуру !!!!!

P.s и еще вот заметил что если диапазон допустим сразу увеличить до 150 ячеек скажем, он выводит диалоговые окна пустых ячеек, как сделать чтобы диалоговое окно не появлялось впустых. А то пока все эти 150 окон закроешь с ума сойдешь. И постоянно расширять диапазон вручную тоже не дело, вот и подумал сразу увеличить его
Изменено: maximaxon - 11.02.2013 08:36:10
 
Код
1
2
3
4
5
6
7
8
9
10
11
Sub uuu()
    iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
        For i = 3 To iLastRow
            If Cells(i, 14).Value = "" Then 'ни какого после и работает?
            ElseIf Cells(i, 14).Value <= Date And Cells(i, 15).Value = "" Then
                Cells(i, 14).Font.Color = RGB(255, 15, 15)
                Beep
            MsgBox ("Истек срок устранения нарушений!  " & Cells(i, 14))
            End If
        Next
End Sub

Собрал из нескольких примеров и вот оно чё, пустые не учитывает )
Изменено: kalbasiatka - 13.02.2013 18:36:04
 
Спасибо, отлично! Может ты мне поможешь осуществить самую главную задачу, которую описал выше!!! Видишь прога выводит просто тупо все даты которые меньше сегодняшней (.т.е срок вышел), а мне не надо чтобы все выводило! надо чтобы у такой просроченой даты проверялась ячейка справа на наличие текста "В деле" (либо можно просто проверять пустая ли смежная ячейка справа, если там нет текста, значит документ просрочен, выводим на экран Msgbox), если такой есть значит она выводится уже по основному условию как просроченая! а если в ней есть другой тексст то она уже не может быть просрочена, потому что ответ на документ пришел вовремя и я его сам вбил вручную! Понимаешь меня?
Изменено: maximaxon - 17.02.2013 12:59:29
 
Код
1
And Cells(i, 15).Value = "" Then

Так он это и делает (вроде  :)  )
И зачем пустые ячейки с датой, если проверять надо дату?
Изменено: kalbasiatka - 16.02.2013 21:04:22
 
Спасибооо!!! Все работает как надо! Ты молодец, выручил!
Изменено: maximaxon - 17.02.2013 10:58:17
 
Коллеги, никогда ранее не работал с камандой "Beep". Сейчас попробовал.
У меня вопрос касательно этой темы. Можно ли прописать данный звук, но со спикера компа.
Поскольку он продолжает пищать, даже если звук выключен?
Когда испробованы все варианты, я начинаю плясать с бубном. Как правило — помогает.
 
BEEP
Страницы: 1
Читают тему
Наверх
Loading...