Vba excel таймер обратного отсчета

Если вы хотите обрабатывать некоторые данные в течение ограниченного времени, вы можете вставить таймер обратного отсчета в свой рабочий лист данных, и по окончании обратного отсчета времени появится всплывающее диалоговое окно, напоминающее вам. Здесь я расскажу вам код VBA для вставки таймера обратного отсчета в Excel.

Вставить таймер обратного отсчета в Excel


стрелка синий правый пузырь Вставить таймер обратного отсчета в Excel

В Excel нельзя отсчитывать время, но вы можете скопировать следующий код VBA, чтобы помочь отсчитать время.

1. Выберите ячейку и отформатируйте ее как форматирование времени, щелкнув ячейку правой кнопкой мыши и выбрав Формат ячеек, затем в диалоговом окне, нажав Продолжительность и выбор 13: 30: 55 в Тип список, при последнем нажатии OK для выхода из этого диалога. Смотрите скриншот:

2. Введите время, которое вы хотите отсчитать, в ячейку форматирования. Смотрите скриншот:

Док-таймер обратного отсчета-5

3. Нажмите Alt + F11 ключи для открытия Microsoft Visual Basic для приложений окно.

4. Нажмите Вставить > Модули а затем скопируйте следующий VBA в новое окно.

VBA: таймер обратного отсчета.

Dim gCount As Date
'Updateby20140925
Sub Timer()
    gCount = Now + TimeValue("00:00:01")
    Application.OnTime gCount, "ResetTime"
End Sub
Sub ResetTime()
Dim xRng As Range
Set xRng = Application.ActiveSheet.Range("E1")
xRng.Value = xRng.Value - TimeSerial(0, 0, 1)
If xRng.Value <= 0 Then
    MsgBox "Countdown complete."
    Exit Sub
End If
Call Timer
End Sub

Функции: E1 в приведенном выше коде указывает ячейку времени, которую вы вводите на шаге 2.

5. Нажмите Run или нажмите F5 для запуска таймера обратного отсчета. Теперь время отсчитывается.

Док-таймер обратного отсчета-3

6. И когда обратный отсчет закончится, всплывающее диалоговое окно напомнит вам.

Док-таймер обратного отсчета-4

Функции: Вы не можете остановить обратный отсчет, когда он запущен, за исключением закрытия книги.


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (15)


Оценок пока нет. Оцените первым!

Содержание

  1. VBA Excel. Функция Timer (примеры)
  2. Описание функции Timer
  3. Примеры использования в VBA Excel
  4. 3 комментария для “VBA Excel. Функция Timer (примеры)”
  5. Как создать таймер обратного отсчета в Excel
  6. Инструкция по установке таймера обратного отсчета в Excel
  7. Excel VBA ТАЙМЕР — Как использовать функцию таймера VBA?
  8. ТАЙМЕР VBA
  9. Пример № 1
  10. Пример № 2
  11. Пример № 3 — Таймер VBA
  12. Что нужно знать о VBA TIMER
  13. Рекомендуемые статьи

VBA Excel. Функция Timer (примеры)

Применение функции Timer в VBA Excel для приостановки выполнения приложений и определения времени работы процедур. Примеры использования.

Описание функции Timer

На сайте разработчика сказано, что в Windows функция Timer возвращает дробные части секунды. О порядке дробной части там информации нет. Попробуем выяснить это сами, запустив в редакторе VBA Excel подпрограмму со строкой


Исходя из результата, отображенного в информационном окне MsgBox, будем считать, что функция Timer возвращает сотые доли секунды. Во время экспериментов с процедурой Vremya из Примера 2 результат вычисления разницы между двумя значениями функции Timer достигал шести знаков после запятой, и один раз – семи.

Примеры использования в VBA Excel

Пример 1
Присвоение значения функции Timer переменной:

Пример 2
Код VBA Excel для приостановки приложений:

  • Start – переменная, в которую записывается первоначальное значение таймера.
  • Pause – время в секундах (до сотых значений), на которое следует приостановить программу.

Функция DoEvents во время выполнения цикла передает управление операционной системе для обработки других событий. По рекомендации разработчиков не следует использовать DoEvents в тех случаях, когда

  • приостановленная процедура может быть запущена повторно из другой части вашего кода;
  • другие приложения могут обратиться к приостановленной процедуре.

Код для приостановки приложений можно использовать как отдельную подпрограмму, вставляя ее имя с указанием интервала в нужные места других процедур:

Проверяем работоспособность подпрограммы StopSub:

Точный или почти точный результат будет только при использовании в качестве аргумента целых секунд, в том числе и в примере кода, предложенного разработчиком.

Такой способ приостановки приложений можно использовать в VBA Excel при создании бегущей строки.

Пример 3
Функцию Timer можно использовать для замера времени работы процедуры. Мы ее уже использовали для определения времени выполнения подпрограммы StopSub:

Замените MySub на имя вашей подпрограммы и запустите код в редакторе VBA Excel. Информационное окно MsgBox покажет время работы процедуры.

3 комментария для “VBA Excel. Функция Timer (примеры)”

Здравствуйте, Евгений! Здравствуйте, коллеги!
Помогите, пожалуйста, разобраться. Положенные сутки в одиночку продумал 🙂
Задача: в UserForm нужно подсветить контрол SpinButton1 при событии Change, изменив на 2с его фон .BackColor, после 2с вернуть .BackColor на начальный. Код ниже.
Код не работает в смысле назначения – изменения .BackColor на экране. При этом Debug’и исправно выдают коды будто бы изменённых цветов, и раскомментированный любой MsgBox тоже приводит к искомой покраске контрола.
Добавление DoEvents: перед Loop тоже приводит к нужной покраске на экране, но возникает дребезг, т.е. срабатыванию Change 2-3 раза при одном нажатии.
Что в коде не так, и в каком направлении думать, если данный код почему-то не имеет права на существование?

Источник

Как создать таймер обратного отсчета в Excel

Сетевые администраторы ранее учили вас создавать таймер обратного отсчета в слайдах PowerPoint с помощью других эффектов движения. А с помощью Excel мы можем полностью создать таймер обратного отсчета с простой реализацией с помощью кода VBA.

Соответственно, пользователь выбирает тип формата времени для отображения, а затем вводит код VBA для проведения обратного отсчета. При запуске кода часы в Excel автоматически обратный отсчет, и вы увидите изменение времени. Когда время обратного отсчета истекает, Excel отправляет пользователю уведомление. В следующей статье рассказывается, как вставить таймер обратного отсчета в Excel.

  1. Как установить VBA в Excel
  2. Как взломать пароль VBA в Excel
  3. Как создать мигающий текст в Excel
  4. Как автоматически выделять строки и столбцы в Excel

Инструкция по установке таймера обратного отсчета в Excel

Сначала мы выбираем пустую ячейку, чтобы ввести время обратного отсчета, затем щелкаем правой кнопкой мыши и выбираем Формат ячеек.

Отобразите интерфейс выбора формата для ячейки. Здесь щелкните вкладку «Число», затем выберите формат ячейки «Время», затем посмотрите вправо, чтобы выбрать тип отображения времени. Если вы хотите отображать часы по вьетнамскому стилю, выберите «Местный» как вьетнамский. Нажмите OK ниже, чтобы сохранить.

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

Создав временную шкалу обратного отсчета, щелкните вкладку Разработчик, а затем щелкните Visual Basic, чтобы открыть редактор кода VBA.

Отобразите новый интерфейс, нажмите кнопку «Вставить», выберите модуль, чтобы открыть интерфейс и ввести код VBA.

Теперь покажите интерфейс, чтобы мы могли ввести следующий код VBA в интерфейс.

Dim gCount As Date ‘Updateby20140925 Sub Timer () gCount = Now + TimeValue («00:00:01») Application.OnTime gCount, «ResetTime» End Sub Sub ResetTime () Dim xRng As Range Set xRng = Application.ActiveSheet.Range («D1») xRng.Value = xRng.Value — TimeSerial (0, 0, 1) Если xRng.Value

После завершения щелкните значок «Выполнить», чтобы запустить код, как показано.

Закройте интерфейс и по результатам мы увидим автоматический обратный отсчет часов. Мы можем изменить время обратного отсчета по своему желанию, и часы не будут изменены и будут продолжать обратный отсчет, пока таймер не истечет.

Чтобы исправить эти часы в рабочем интерфейсе Excel, щелкните поле под окном часов, выберите вкладку «Вид», выберите «Закрепить панели» и нажмите «Закрепить панели», чтобы закрепить строку.

Поэтому, когда вы прокручиваете содержимое ниже, таймер обратного отсчета всегда отображается вверху.

Наконец, когда обратный отсчет закончится, интерфейс Excel отобразит сообщение о завершении, как показано ниже.

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

Источник

Excel VBA ТАЙМЕР — Как использовать функцию таймера VBA?

ТАЙМЕР VBA

Excel VBA TImer используется для обнаружения и расчета времени, затраченного на выполнение любого действия. В Excel функция VBA TIMER может использоваться разными способами. Мы можем рассчитать время для завершения любого действия, мы можем рассчитать время, необходимое для достижения от начальной до конечной фазы любого действия, или даже мы можем рассчитать время, необходимое для нажатия на любую функцию.

Эта функция не может быть выполнена в Excel. В Excel мы можем только видеть время и добавлять его в любую ячейку, но не можем измерить его как Таймер.

Вы можете скачать этот шаблон VBA TIMER Excel здесь — Шаблон VBA TIMER Excel

Пример № 1

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

Как только мы это сделаем, он откроет новый модуль, как показано ниже. Теперь в этом напишите Подкатегорию текущего имени функции или любого другого имени согласно вашему выбору.

Код:

Теперь определим два измерения как Seconds1 и Seconds2 как SINGLE- функцию, что означает наличие двух отдельных данных с одним номером (без десятичной дроби).

Код:

Теперь для запуска таймера сначала выберите определенный размер Seconds1 и назначьте функцию TIMER . И сделайте то же самое для другого измерения Seconds2, как показано ниже. Цель состоит в том, чтобы измерить время начала и окончания.

Код:

Это завершает часть таймера кода. Теперь нам нужно увидеть промежуток времени при запуске кода. Для этого нам нужно распечатать вывод в окне сообщения, как показано ниже.

На скриншоте ниже мы напечатали текст «Время потрачено:» и разницу между секундами2 и секундами1 с единичными секундами.

Код:

После этого запустите полный код, нажав клавишу F5 или нажав кнопку воспроизведения, как показано ниже.

Мы увидим окно сообщения со счетным временем 0 секунд, так как время, необходимое для выполнения полного кода, было 0.

Мы можем увидеть немного больше различий, если написанный код огромен.

Пример № 2

Есть еще один метод, в котором мы можем выбрать промежуток времени из любой небольшой суммы в качестве времени ожидания и позволить пользователю или оператору подождать, пока процесс не завершится. Это можно использовать, когда мы создаем инструмент или макрос с огромной строкой структуры кода. Сделав это, мы позволим пользователю ждать, пока весь код запустится, и операция будет завершена. Поскольку выполнение чего-либо во время выполнения кода может привести к сбою файла.

Для этого откройте новый модуль и напишите подкатегорию в названии требуемой функции или в любом имени, как показано ниже.

Код:

Теперь, чтобы сделать этот код небольшим и простым, мы будем использовать встроенные функции VBA. И для этого типа приложение следует за точкой (.), А затем из списка поиска и выберите функцию ожидания, как показано ниже.

Эта функция ожидания позволит нам добавить время ожидания, пока весь код не будет запущен. Это время ожидания логическое. После этого рассмотрим время, когда мы запускаем, это 0 секунд со временем плюс, которое мы хотим показать, поскольку время ожидания будет показано TimeValue, как показано ниже.

Код:

Здесь мы считаем 10 секунд временем ожидания завершения кода.

Теперь, чтобы напечатать время ожидания, нам нужно напечатать сообщение в окне сообщения с помощью команды MsgBox, как показано ниже.

Код:

Как мы видим, в окне сообщения добавлен текст « Время ожидания — 10 секунд » для печати.

Теперь запустите код, используя клавишу F5 или вручную. Мы увидим, что после 10 секунд ожидания появится окно с сообщением, использованным в коде.

Пример № 3 — Таймер VBA

Существует еще один простой способ увидеть и показать текущее время в VBA. Для этого мы будем напрямую использовать только MsgBox и остальную часть кода. Для этого откройте новый модуль в VBA и напишите Subcategory во имя используемой функции или любое другое имя, как показано ниже.

Код:

Теперь напишите MsgBox, который является командой для печати сообщения. В скобках мы можем написать любое сообщение для печати в окне сообщения. Здесь мы выбрали « Time is: » в качестве нашего текста и вместе с ним « & Now () ». Во всплывающем окне появится текущее время с датой.

Код:

Теперь в другом окне сообщения мы посчитаем количество секунд, прошедших за часы до текущего времени по часам. Для этого напишите MsgBox и между скобками напишите « Timer is: » вместе с « & Timer () », как показано ниже.

Код:

После этого запустите код с помощью клавиши F5 или вручную. Мы получим два отдельных окна сообщений, как показано ниже.

В первом окне сообщения мы получим текущую дату и время в формате ДД / ММ / ГГГГ и формате чч: мм: сс AM / PM, который является форматом Excel по умолчанию. Во втором окне сообщения мы увидим время, прошедшее в тот день в секундах.

Во втором окне сообщения отображается Таймер 59953, 62 секунды. Если мы разделим это на 60 секунд и 60 минут, мы получим точный таймер в часах, прошедших в тот день, который составляет 16, 65 часов .

Что нужно знать о VBA TIMER

  • Всегда сохраняйте файл в Marco Enabled Workbook, чтобы избежать потери написанного кода VBA.
  • Всегда компилируйте полный код шаг за шагом, чтобы убедиться, что каждый код неверен.
  • В примере # 1 функция SINGLE используется для отображения числа в целом. Даже если мы используем DOUBLE, это даст результат в десятичном виде.

Рекомендуемые статьи

Это было руководство по Excel VBA TIMER. Здесь мы обсудили, как использовать функцию VBA TIMER вместе с некоторыми практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи —

  1. Как использовать VBA On Error Statement?
  2. Числовой формат в VBA
  3. Как использовать функцию поиска VBA?
  4. Учебники по функции VBA TRIM

Источник

We had a post on the forum recently asking how to create a timer in Excel, to record how long things took to happen on a model railroad. You can use the same code to time anything of course, like how long your code is taking to execute.

A follow up request asked for code to count down to a date and/or time. So in this post I’m going to provide code that does both.

Update

Following a few requests, I modified the code so that the elapsed time does not reset to 0 when the timer is stopped then restarted.

This new code allows time to accumulate over multiple Start/Stop clicks. Download the code below

Enter your email address below to download the Excel workbook with the timer code.

By submitting your email address you agree that we can email you our Excel newsletter.

Timing Algorithm

For the countdown I’m going to use the Timer function which gives us the number of seconds elapsed since midnight.

Knowing that we’re basing our time calculation on the number of seconds since midnight, we don’t want to go past midnight whilst we’re timing something or our calculations will be wrong.

If you want to start timing something before midnight, and finish timing it after midnight, you could use NOW to work out time elapsed.

The algorithm for our code is:

    Save StartTime

    While Stop button hasn't been pressed:
        Check elapsed time
        Display elapsed time on sheet (CurrentTime - StartTime)
        Display elapsed time on status bar

    When Stop button is pressed:
        Exit code

We can implement this as two subs. The first does the timing and display to the screen, the second sets a flag to indicate the Stop button has been pressed and the code should end.

These subs will be assigned to shapes so the shapes act as start and stop buttons.

The Stop button just sets a value in a cell. The timing sub monitors this cell until it sees the value that indicates it’s time to stop.

Here’s what the code looks like

vba timer stopwatch code

You’ll notice I’ve actually written a third sub called ResetTimer which just resets cell A1 to 0:00:00. This isn’t really needed so you can remove it if you want.

Here’s what it looks like in action

vba timer stopwatch code working with status bar display

I’ve included code that displays the elapsed time in the status bar as the timer is running

   Application.StatusBar = ElapsedTime

When the timer is stopped the elapsed time is removed from the status bar

   Application.StatusBar = False

If you don’t want to see the time on the status bar just remove these lines.

DoEvents

One thing we must do with code like this is use DoEvents.

When we call DoEvents it allows Excel to do other things, like check if the Stop button has been pressed.

If we just kept looping around displaying the elapsed time, Excel would hang.

Displaying the Elapsed Time

I’m using the format function to display the time as hh:mm:ss.

There are many formats you can use to display numbers, dates, times, serial numbers and strings, so read up on what the function can do.

NOTE: We have an in-depth guide if you want to learn about custom number formats.

Countdown

For the countdown code we need to (obviously) know the date/time we are counting down to. So I’ll read that in from a cell on the sheet and call it ZeroHour.

To work out the numbers of days, hours, minutes and seconds until then, just call the NOW() function and subtract one from the other:

ZeroHour = Range("A5").Value
TimeDifference = ZeroHour - Now

By doing this we’ll end up with a time serial number stored in TimeDifference. If you aren’t sure what a time serial number is, read up on calculating time in Excel.

To display the time left we write it to a cell on the sheet, but we have to format it correctly first. As the value in TimeDifference is a time/date serial number it will look like 123.456.

If I just try to write that out to a cell, Excel will try to display the integer part (123) as the number of days since Jan 1st 1900. Of course we want to show the number of days from now until our target date.

To do this I use the INT() function to get rid of the decimal part of the serial number, which is the time, leaving me with just a number of days. I can then stitch all of this together like so:

Range("A6").Value = Int(TimeDifference) & "d " & Format((TimeDifference), "hh:mm:ss")

Times and Dates in the Past

If you try to use a time or date in the past, the VBA will catch this, display an error message and then exit.

Here’s what it looks like in action:

VBA countdown timer

Download the Workbook

Click here to go back to the top of the page and get a copy of the code.

 

ALFA

Пользователь

Сообщений: 243
Регистрация: 13.09.2013

Всем привет) Пришел за помощью — мне необходимо сделать таймер обратного отсчета 2 минуты и чтобы по факту его окончания книга закрывалась, таймер запускается при открытии книги.

Заранее спасибо.

 

RAN

Пользователь

Сообщений: 7091
Регистрация: 21.12.2012

#2

02.08.2014 18:19:54

Код
Application.OnTime

+F1

 

ALFA

Пользователь

Сообщений: 243
Регистрация: 13.09.2013

Не совсем понял ваш ответ, т.к. новичок в этом деле)

 

RAN

Пользователь

Сообщений: 7091
Регистрация: 21.12.2012

 

ALFA

Пользователь

Сообщений: 243
Регистрация: 13.09.2013

Можете русским языком написать чего вам не хватает, а не просто блестать умением подкидывать ссылки без объяснений!

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

ALFA

, Вам в #2 дан совет посмотреть справку по Application.OnTime. Не помогло?

 

ALFA

Пользователь

Сообщений: 243
Регистрация: 13.09.2013

К сожалению не разобрался как с ним справиться..

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

Если не получается, то в #4 RAN подсказывает — нужен Ваш файл (согласно Правил), где было бы видно, ЧТО конкретно у Вас не получилось.
А теперь перечитайте свой #5 — к чему он?

 

ALFA

Пользователь

Сообщений: 243
Регистрация: 13.09.2013

Я не понял к чему меня тыкнули в правила… Фаил посчитал не нужным выкладывать, т.к. данная операция не связана ни с какими данными, можно открыть новую книгу и все…

 

RAN

Пользователь

Сообщений: 7091
Регистрация: 21.12.2012

#10

02.08.2014 19:35:54

:)

Код
Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:02:00"), "CloseBook"
End Sub
Private Sub CloseBook()
Me.Saved = True
Me.Close
End Sub  

Все дополнительные вопросы к автору

Цитата
Фаил посчитал не нужным выкладывать

Изменено: RAN14.08.2014 21:05:12

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

#11

02.08.2014 19:38:05

Цитата
ALFA пишет: Фаил посчитал не нужным выкладывать

Ну показали бы тогда свой неудачный вариант кода…

 

ZVI

Пользователь

Сообщений: 4328
Регистрация: 23.12.2012

 

ALFA

Пользователь

Сообщений: 243
Регистрация: 13.09.2013

Спасибо всем за помощь, все работает)

 

ALFA

Пользователь

Сообщений: 243
Регистрация: 13.09.2013

А можно ли данный таймер поместить в Label1 формы?

Изменено: ALFA03.08.2014 11:18:46

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

Варианты предложили RAN и ZVI — Вы про какой «данный» сейчас?

 

RAN

Пользователь

Сообщений: 7091
Регистрация: 21.12.2012

Юр, да хоть какой. Как его в лейбл засунуть? Точнее что?  :)

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

Ну, раз нет разницы, то такой вариант))

 

ALFA

Пользователь

Сообщений: 243
Регистрация: 13.09.2013

#18

03.08.2014 21:10:10

Круто)) то что нужно! Спасибо огромное всем за помощь!

How to create a countdown timer in Excel.

This allows you to display a timer in whatever cell you want and it will count down until it reaches zero. I also included a method to stop or pause the timer.

To create the countdown timer, a macro will be used. However, this tutorial does not require any previous knowledge of macros or VBA in Excel.

If you are familiar with VBA, you can just copy the full macro code from below and skip everything else.

Sections:

Make the Countdown Timer

Add a Stop or Pause Feature to the Timer

Add Buttons in the Spreadsheet to Control the Timer

Countdown Timer Full Macro Code

Notes

Make the Countdown Timer

To make a countdown timer we need to install a macro into Excel, don’t worry though, that’s easy. Before that though, we need to setup a cell in the spreadsheet to hold the timer.

  1. Go to the cell that you want to contain the timer. Right-click that cell > click Format Cells…
    a6a7731f67646ad4730839bca75d467c.png
  2. Go to the Number tab and then to the Time category and select 13:30:55 from the section on the right. Then hit OK to get back to Excel.
    7e71b50651fd8475295719536f8c92bb.png
  3. You will now have a cell formatted like this:
    6e0d06f82e3a545926fe544ab4f3ac83.png
  4. Double-click the cell and it will have an annoying 12:00:00 AM time by default, but just ignore that.
    3d0c7c60c5c29c417c50830b46246fdd.png
  5. Type whatever time you want into this cell. The first set of zeros is for hours, the second set for minutes, and the third set for seconds. Delete what appears in the cell by default and type your number like this:
    106b6cf10db49a8a3f6bc9b7f5b72797.png
    Hit enter and you get this:
    8750dfd3285a40126a53af31dc7c53b1.png
    The time in the formula bar will look weird but don’t pay attention to that; it doesn’t matter.
  6. Now, we add the VBA code and install the macro. To do this hit Alt + F11 to go to the VBA Editor window and then look to the menu at the top of the window and go to Insert > Module
    fc5a28f618b506281af73ecd3fcead94.jpg
  7. A window will open like this:
    ee15c0891275a242a321d2808da3df3f.jpg
    Paste the macro into this window.
    Here is the macro code:
     Sub timer()
    
         interval = Now + TimeValue("00:00:01")
    
         If Range("A1").Value = 0 Then Exit Sub
    
         Range("A1") = Range("A1") - TimeValue("00:00:01")
    
         Application.OnTime interval, "timer"
    
     End Sub
    

    It should now look something like this:
    d00beec9f145894a403ad35db6143603.jpg

  8. Change the code to work for you. Everywhere that you see cell A1 you need to change that to the cell that contains the timer in your worksheet. So, if you put the timer in cell B6, then replace every instance of A1 with B6 in the code above.
  9. Hit Alt + F11 to go back to Excel and then hit Alt + F8, select the macro timer from the window that opened, hit the Run button, and watch the time count down.
    a2b166d24a989a318b7c28c69462413a.png

When the timer gets to zero, it will stop.

Add a Stop or Pause Feature to the Timer

Now that we have a working timer, it’s a good idea to be able to stop it.

To do this, we need to add just a couple things to our macro.

  1. Hit Alt + F11 and then go to the module that you added in the last section. If it isn’t already open, it should be listed in the left pane of the window and it will be called Module1, double-click that.
  2. Once you see the macro, add this line of code above it:
     Public interval As Date
    

    e151ace81b03d54c73af838b6901c415.jpg

  3. Now, below all of the code, under where it says End Sub, add this macro:
     Sub stop_timer()
         Application.OnTime EarliestTime:=interval, Procedure:="timer", Schedule:=False
     End Sub
    

    d11f5dcb5ac35f4175c91d3bd88a1452.jpg

  4. Go back to Excel, Alt + F11 and then hit Alt + F8. In the window that opens click timer and hit the Run button.
    bb2a7a71746d1a0ff8c92ca25075e899.png
  5. The timer should now be running. To stop it, hit Alt + F8 again and select stop_timer and click the Run button.
    733f759861f387f595f7b9ca1d4a4434.png

That’s all there is to it!

Now, always going to the Macro window, Alt + F8, can be really annoying, so let’s make these macros run from some buttons in the worksheet.

Add Buttons in the Spreadsheet to Control the Timer

This is a simple feature once you’ve got working macros.

Simply go to the Insert menu and select Shapes and then select a rounded rectangle.

9c35bbba253415c7e1f0d2e7e9f1d730.jpg

Adjust the size of the buttons and add some text to them.

a7b091113e953d4f09985f976de44a17.png

Right-click the first button and click Assign Macro…

40570218bb02612d5eb770c6adbe3319.png

In the window that opens, click timer and hit OK.

9605fd226db37c5fa291bddfb439ac73.png

Repeat that for the next button, obviously selecting stop_timer this time.

That’s it!

52359ec6ced46e5a9cf883f8f493bae6.png

If you want to learn more about adding buttons to Excel and making them run macros, check out this tutorial:

Attach a Macro to a Button in Excel

Countdown Timer Full Macro Code

Here is the complete macro code needed for this timer:

Public interval As Date
Sub timer()
 
    interval = Now + TimeValue("00:00:01")
    
    If Range("A1").Value = 0 Then Exit Sub
    
    Range("A1") = Range("A1") - TimeValue("00:00:01")
    
    Application.OnTime interval, "timer"
     
End Sub
Sub stop_timer()
 
    Application.OnTime EarliestTime:=interval, Procedure:="timer", Schedule:=False
 
End Sub

This code goes into a regular module.

Notes

When you first start the timer it may seem to count fast for the first couple seconds but it should quickly correct itself.

To make this macro run when the Excel workbook is opened, read these tutorials:

How to Run a Macro Automatically when Excel is Opened

How to Run a Macro from Another Macro

Make sure to download the spreadsheet attached to this tutorial so you can see everything in Excel and more easily copy/paste what you need.

Similar Content on TeachExcel

Run a Macro at Set Intervals in Excel

Tutorial: Run a macro every 30 seconds, 1 minute, 10 minutes, 1 hour, etc.; this method allows you t…

Years, Months, Days Between two dates in Excel

Tutorial: I have found a rather convoluted method to Calculate the Number of Years, Months and Days …

Turn Off the Formatting Window Popup in Excel

Tutorial:
How to stop the annoying formatting window, the «Mini Toolbar» from appearing when you se…

Format a Date to Show Only the Day of Week in Excel

Tutorial: How to format a Date so that only the day of the week is visible from that date.

Result:

Manually Calculate Formulas and Functions in Excel

Tutorial:
How to force Excel to recalculate all formulas and functions without editing or entering …

Idiot-Proof Forms in Excel — Part 1 — Formatting

Tutorial:
Forms Course
This tutorial shows you how to create a form within a regular worksheet in E…

Subscribe for Weekly Tutorials

BONUS: subscribe now to download our Top Tutorials Ebook!

Like this post? Please share to your friends:
  • Vba excel таймер задержки
  • Vba excel таймер выполнения
  • Vba excel таблица умножения
  • Vba excel таблица символов
  • Vba excel таблица на listbox