Событие по таймеру

Программирование на Visual Basic for Applications
DOMI-NIK
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 01.09.2005 (Чт) 11:51

Событие по таймеру

Сообщение DOMI-NIK » 13.09.2005 (Вт) 6:46

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

DOMI-NIK
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 01.09.2005 (Чт) 11:51

Сообщение DOMI-NIK » 14.09.2005 (Ср) 8:14

Это что сделать нельзя ?
У меня получается если я работаю в конкретной формае, только перехожу дальше все прерывается.
Не могу сообразить как сделать чтобы таймер работал постоянно, независимо от открытия форм и изменения данных

K.Sergey
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 11.10.2004 (Пн) 0:42
Откуда: Санкт-Петербург

Сообщение K.Sergey » 14.09.2005 (Ср) 10:31

Application.OnTime Now + TimeValue("00:02:00"), "ИмяЗапускаемойПроцедуры"
Life is what happens to us when we are planning to do something else...

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 14.09.2005 (Ср) 13:11

dim flag as boolean

private sub timer
if flag= true then
.
.
.
Application.OnTime Now + TimeValue("00:00:01"), "Timer"
end if
end sub

Public sub StartTimer
flag= true
timer
end sub

Public sub StopTimer
flag= False
end sub

DOMI-NIK
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 01.09.2005 (Чт) 11:51

Сообщение DOMI-NIK » 15.09.2005 (Чт) 10:45

Ребят чета я ваше туплю
делаю так

Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:00:5"), "Tim()"
End Sub


Public Sub Tim()
forPROVERKA.Show
End Sub

пишет что нет такого макроса 'Tim()'
простите засранца , но опишите в примере как сделать !
у меня уже голова чета не варит

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 15.09.2005 (Чт) 10:54

"Tim" без скобок?
Быть... или не быть. Вот. В чём вопрос?

K.Sergey
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 11.10.2004 (Пн) 0:42
Откуда: Санкт-Петербург

Сообщение K.Sergey » 15.09.2005 (Чт) 11:09

DOMI-NIK писал(а):пишет что нет такого макроса 'Tim()'

Application.OnTime Now + TimeValue("00:00:5"), "Tim"
(имя процедуры должно быть БЕЗ скобок)
Процедура Tim должна быть размещена в обычном модуле, а не в модуле ThisWorkbook (или какое там у него правильное название?).
Life is what happens to us when we are planning to do something else...

DOMI-NIK
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 01.09.2005 (Чт) 11:51

Сообщение DOMI-NIK » 16.09.2005 (Пт) 4:17

О пасиб все получилось !
Надо бало просто не в теле книги, а отдельным модулем прописать.

Теперь возникла новая проблема :)
Есть файл с данными, они обновляются каждые 2 мин.
Мне необходимо каждые 2 мин скачивать с него новые данные и помесщать в свою таблицу, при этом открыта форма в которой постоянно набивают данные, и периодически открываются другие формы.
Не хватает мозгов сделать так, чтобы данные постоянно скачивались, и в это время спокойно работалось с основными данными.
Запускаю таймер, один раз все проходит и тормоза, или даю ссылку на таймер из формы, тогда при переходе в другую форму опять тормоза.
Как сделать чтобы таймер работал независимо от основного кода и постоянно !!!!!!!

DOMI-NIK
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 01.09.2005 (Чт) 11:51

Сообщение DOMI-NIK » 16.09.2005 (Пт) 4:20

Может его вообще отдельным файлом сделать
А в основном его запуск оформить, а потом просто данные из файла который таймер создает скачивать ?
Но мне кажеться что можно в основном коде это все сделать !

DOMI-NIK
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 01.09.2005 (Чт) 11:51

Сообщение DOMI-NIK » 19.09.2005 (Пн) 2:22

хмм!
видать я или глупый вопрос задал, или не выполнимый.

K.Sergey
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 11.10.2004 (Пн) 0:42
Откуда: Санкт-Петербург

Сообщение K.Sergey » 19.09.2005 (Пн) 3:07

Попробовал - такой проблемы не нашел. Держи мой файл. В нем специально 2 формы: одна вызывает другую.
Каждую секунду в заголовке Excel обновляется текущее время.
Работает вне зависимости от того, какая форма активна в данный момент.
Надеюсь, поможет...
Вложения
OnTime.rar
Использование OnTime
(11.17 Кб) Скачиваний: 115
Life is what happens to us when we are planning to do something else...

DOMI-NIK
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 01.09.2005 (Чт) 11:51

Сообщение DOMI-NIK » 19.09.2005 (Пн) 7:44

Вот что значит опыта нет :)
Я все не мог понять как процесс зациклить, не допер что можно из самого таймера себя же и вызвать !!!
Все заработало :)
Спасибо огромное !
Пы.Сы.
А то я уже из другого файла созданного, в котором цикл прописан, хотел инфу брать :)

K.Sergey
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 11.10.2004 (Пн) 0:42
Откуда: Санкт-Петербург

Сообщение K.Sergey » 19.09.2005 (Пн) 11:02

Да пожалуйста...
Life is what happens to us when we are planning to do something else...


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 59

    TopList