Автоматическое создание таблицы выходных за месяц в excel

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

todayvba

Для того чтобы при нажатии на кнопочку «Этот месяц» вставлялось автоматически начало этого месяца, нужно нарисовать кнопочку и привязать к ней макрос, который на скриншоте. Макрос делается очень просто, оказывается: включаешь запись макроса, делаешь какие-то действия с таблицей, а потом останавливаешь запись — и вот готов макрос, который будет повторять эти действия снова и снова при его вызове. Удобно. И по сути этот макрос что выше, просто вставляет в ячейку А1 формулу вызова текущего месяца, а потом копирует его в нужное место, а ячейку эту очищает. Конечно, логично сразу вставить в нужную ячейку формулу, но мне показалось что так лучше.

Кнопки + и — делают то же самое, они копируют из ячейки месяца значение в ячейку А1, потом увеличивает или уменьшает это значение на 1 месяц, копирует назад на место и очищает ячейку А1. Добавить строку просто копирует вторую строку таблицы со всеми встроенными формулами и стилями форматирования и вставляет ее ниже.

Гораздо интереснее сами формулы, например, условное форматирование ячеек, то есть выделение цветом выходных дней.

formula

В формуле он проверяет является ли день недели 6 или 7 (суббота воскресенье) и если так, то меняет цвет ячейки на зеленый. Чтобы нарисовать границу используется опять  проверка на пустоту ячейки, чтобы граница таблицы, заканчивалась в нужном месте. Автоматический подгон таблицы под количество дней в выбранном месяце происходит через формулу, которую нашел в инете, чуть ее изменил и все работает)

Вот такие дела) Может кому все это и пригодится когда-нибудь. И кстати, скачать сам документ можно у меня тут. Спасибо за внимание)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *