Wanted макрос ежесекундного автообновления

Автор yumakar, 04.03.2014, 13:19

« назад - далее »

yumakar

Вопрос от чайника. Книга в формате .xlsm (под макросы). Есть две ячейки: I16, в которую вписывается любое число, и I17 со следующей формулой:

=((ЕСЛИ(ЧАС(ТДАТА())=0;ЕСЛИ(МИНУТЫ(ТДАТА())=0;(I16/24)/60;((I16/24)/60)*МИНУТЫ(ТДАТА()));(I16/24)*ЧАС(ТДАТА())))+(ЕСЛИ(МИНУТЫ(ТДАТА())=0;(I16/24)/60;((I16/24)/60)*МИНУТЫ(ТДАТА()))))+(((I16/24)/3600)*СЕКУНДЫ(ТДАТА()))

Если коротко, то формула работает с системной датой компьютера и делит I16 на 23 часа, 59 мин, 59 сек, и ежесекундно суммирует результат от 0 в полночь до целого I16 через сутки. Если нажимать F9 (обновить), то результат виден. Но мне нужно автоматически ежесекундно видеть результат. Формат I17 числовой с двумя знаками после запятой. Какой макрос для этого нужен? Ещё нужно, чтобы при открытии книги макрос запускался автоматически. Перепробовал много примеров из интернета, - пока ни один не подходит.

gling

Попробуйте использовать что нибудь из файла.
mail: vovik100661@gmail.com;
ЯД-41001506838083.

yumakar

Спасибо. Для меня это сложновато. Хотелось-бы простой код обновления данных с шагом в 1 сек. и с автозапуском при открытии документа.

gling

Попытайте счастья с такой формулой.
mail: vovik100661@gmail.com;
ЯД-41001506838083.

yumakar

Любопытно. Пересчёт в реальном времени действительно есть. Но там идёт привязка к таймеру. У меня не получилось импортировать его в свою книгу. Там коды в VB на нескольких листах. Как с ними работать, я пока не знаю. Нельзя-ли написать код (извините за настырность) на одном листе, без привязки к таймеру, используя лишь системное время компьютера (формула наверху)? Чтобы я мог скопировать его в свою книгу, у меня лист называется Табель. Заранее спасибо.

gling

Вы же видите что системное время самостоятельно в книгах не запускается. У Вас ведь ТДАТА не работает пока в книге не включено время. Когда включается время нельзя производить изменения на листе, необходимо остановить работу кода. После остановки кода его нужно вновь запустить, можно закрыв и открыв книгу вновь, или кнопкой. Чтоб не останавливать работу таймера, вводить новые данные можно на другом листе, как и сделано. А Коды записаны только на одном листе и в корне книги, чтоб запускаться при открытии. Другие варианты которые я знаю не лучше этого. Может кто более опытный в макросах подскажет Вам.
mail: vovik100661@gmail.com;
ЯД-41001506838083.

yumakar

Во вложенном примере скопировал ваш лист Таймер и немного модернизировал. Всё работает. Но мне нужно, чтобы данные ячейки D6 отображались в реальном времени на листе Табель. Как можно запустить таймер времени на листе Табель? Я обезьянничал по-разному, ничего не получается.

gling

Скопируйте те же макросы на лист "Табель", замените на Do While ActiveSheet.Name = "Табель" и ячейку А1 можете сменить на ту которая не мешает.
mail: vovik100661@gmail.com;
ЯД-41001506838083.

yumakar

Спасибо! Теперь всё работает, как нужно.

gling

Пожалуйста. Обращайтесь, если помощь понадобится.
mail: vovik100661@gmail.com;
ЯД-41001506838083.