Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: VBA MS Office

Программирования для MS Office кроме ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сделать будильник
 
 автор: Аноним   (29.09.2006 в 03:53)
 
 

Sub Clock()
' Уведомляем Excel, что процедуру Alarm нужно вызвать в 20:55
Application.OnTime TimeValue("20:55:00"), "Alarm"
End Sub
Sub Alarm()
MsgBox "Будильник"
End Sub

Как сделать чтобы вместо времени в макросе вводить время в ячейке Exel и желательно чтобы запускалось не через кнопочку а автоматически.

Подскажите как сделать?

  Ответить  
 
 автор: Леонид   (02.10.2006 в 12:35)
 
 

Попробуй так

Sub Clock()
Dim X As Date
Range("E22").Select
X = ActiveCell.FormulaR1C1
' Уведомляем Excel, что процедуру Alarm нужно вызвать в 20:55
Application.OnTime TimeValue(X), "Alarm"
End Sub

Sub Alarm()
MsgBox "Будильник"
End Sub

  Ответить  
 
 автор: pashulka   (02.10.2006 в 15:01)   личное сообщение
 
 

Аноним, Не рекомендую использовать предыдущий код в качестве решения Вашего вопроса, причём по многим причинам :

1. Проигнорировано одно из требования, а именно автоматический запуск макроса, т.е. надо было использовать одно из двух событий : Auto_Open() или Workbook_Open()
2. Если кнопка (которая на самом деле - не нужна) располагается не в рабочем листе, а например, на панели инструментов, то предполагается, что время всегда находится в ячейке активного листа, что маловероятно, тем более, что активным может оказаться, например, лист диаграммы. В таком случае, Вы получите ошибку.
3. Свойство .FormulaR1C1 возвращает строку, причём, в случае наличия формулы (которая может возвращать в т.ч. и время) - это свойство возвратит текст формулы. Переменная же X имеет тип Date, т.е. инструкция присвоения X = ActiveCell.FormulaR1C1 будет работать только в одном случае, а именно, если ячейка содержит время в виде текста (), во всех остальных случаях Вы получите ошибку.

И есть ещё один момент, который не учтён в первоначальной версии Вашего макроса :
Если закрыть рабочую книгу, где находится макрос Clock() до наступления нужного времени (без закрытия всего приложения) то при достижении указанного времени MS Excel откроет эту книгу и запустит макрос Alarm()

В общем, если Вас ещё интересует этот вопрос, и Вы хотите избежать выполнение макроса после закрытия книги, то Вы можете написать мне напрямую, и я вышлю нужный пример с таймером.

  Ответить  
 
 автор: София   (02.11.2016 в 14:27)   личное сообщение
 
 

Добрый день!
помогите пожалуйста поставить напоминание в Excel. Мне нужни чтобы за день до даты, например, контракта, всплывало напоминание. Может есть макрос какой-нибудь подходящий?
Заранее спасибо!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList