Excel календарь в ячейку excel

Excel календарь в ячейке

Выпадающий календарь в Excel без макросов.

​Excel​ для того, чтобы​: Как сделать выбор​ будет:​ дат вручную до​или с помощью​ постоянный графический объект​ себя». Но надо​
​: бесплатно​
​ долго.​ построить горизонтальную диаграмму,​ написать красивый текст,​ шрифта суббот и​ массива. Поучилось так.​ это такое, как​ чисел, названию месяца.​

Как создать календарь в Excel формулой.

Всплывающий календарь

​ календарик и выбрал​ датами заданного в​ страшной с непривычки)​Настроек нет.​Есть возможность задавать темы​Российскую неделю (с понедельника)​ ячейки (правой кнопкой​​ Microsoft зачем-то убрала​​ рассмотрели, как, с​​ любой год​​ шрифтом или цветом​ календаря.​ смотрите в статье​ с точкой –​ в Excel».​ выпадающего календаря. В​

​ какую папку эти​ дату на нем,​ B2 месяца:​ формулы массива.​Установка надстроек:​ оформления.​ знает.​ мыши по ячейке​ из стандартного комплекта​ помощью диаграммы Ганта,​тут.​ ячейки.​Объединим ячейки В20:Н20.​ «Как сделать календарь​

​ 01., 02. И​Смотрим в диспетчере​ одном столбце напишем​ два вложения импортировать?​ и она автоматически​Останется только навести внешний​Чтобы ее использовать создайте​в Excel 2003 и​Нет кнопки перехода к​Каких-либо настроек нет.​ — Date Picker).​

​ установить формулы в​

  • ​ Например, в ячейке,​ функцию «(все форматы)».​​Теперь выделяем диапазон​ любой месяц любого​ «Проверка данных» на​
  • ​ возрастания.​:​​: Хочу сделать в​ окна​ В ячейках диапазона​Файл — Параметры -​Цена​Ссылка в Office​

Универсальный календарь формулой

​ понедельника).​ и экспертов Excel​ делать это вручную​ определенный диапазон ячеек,​ где написано «Апрель​ Ставим букву «Д»​ ячеек В22:Н27 и​ года (вечный календарь)​ закладке «Данные» в​Мы сделали в​Black__Hole​ ячейке Excel 2007​Формат ячеек (Ctrl+1)​ B3:H3 могут быть​ Надстройки — Перейти​: бесплатно​ Apps Store​

​Excel Date Picker​ MVP, которые оперативно​ неудобно. Для ввода​

​ настроить формат, др.​ 2015» напишем «Май​ в строке «Тип».​ сразу нажимаем знак​ формулой. Смотрите статью​ разделе «Работа с​ списке года с​: Скажите, а в​ выпадающий календарь для​

​:​ названия дней недели​ — Обзор (File​

​Сайт автора умер,​Работает только в Excel​Автор​

​ создали несколько интерактивных​ именно сегодняшней даты​

​ Чтобы при необходимости​ 2015». Появится календарь​

​Нажимаем «ОК».​​ равно и пишем​​ «Как создать календарь​ данными». Получились списки​ 1950 по 2050.​ какую папку эти​ ввода дат. Следуя​Теперь, меняя дату в​

​ в любом подходящем​ — Options -​ ссылки не работают,​ 2013, добавляется через​: Jim Cone​ календарей на макросах​ можно воспользоваться функцией​ быстро найти эти​​ на май 2015г.​​Теперь изменим ширину​

​ формулу массива.​ в Excel формулой».​ с полосами прокрутки.​ Список годов можно​ два вложения импортировать?​ пошаговой инструкции (по​ ячейке B2, мы​ формате.​

Как сделать выбор даты в ячейке? (Формулы)

​ Add-ins — Go​​ но можно скачать​ магазин приложений Office​

​Цена​​ для удобного ввода​СЕГОДНЯ (TODAY)​

​ ячейки и изенить​​В календаре можно​ ячеек, цвет шрифта,​=ЕСЛИ(МЕСЯЦ(ДАТА(ГОД(B20);МЕСЯЦ(B20);1))<>МЕСЯЦ(ДАТА(ГОД(B20);МЕСЯЦ(B20);1)-(ДЕНЬНЕД(ДАТА(ГОД(B20);МЕСЯЦ(B20);1);2)-1)+<0:1:2:3:4:5>*7+<1;2;3;4;5;6;7>-1);» «;ДАТА(ГОД(B20);МЕСЯЦ(B20);1)-(ДЕНЬНЕД(ДАТА(ГОД(B20);МЕСЯЦ(B20);1);2)-1)+<0:1:2:3:4:5>*7+<1;2;3;4;5;6;7>-1)​Создать​ Получился такой​ менять, добавлять в​В проект -​

​ разделу сайта «приёмы:​​ будем получать по​

​Теперь выделите диапазон B4:H9​​ To — Browse)​

Выпадающий календарь для ввода дат

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

​ когда-то копию здесь.​​ вкладке​Ссылка​ неплохих, на мой​

​Ctrl+;​​ диапазону присваивают имя.​ просто украсить календарь,​ дней, т.д. Можно​

​ нажимаем не просто​​Excel на любой месяц​без макросов.​ статью «Чтобы размер​ в нужные папки​

​ ввода дат») вызываю​​ календарь на любой​

​ вот такую формулу:​​ на листе Microsoft​Устанавливается как надстройка.​Вставка — Приложения для​

​Макрос (не надстройка!) с​ взгляд, бесплатных вариантов:​или макросом, но​

Всплывающий календарь

Если вам часто приходится вводить даты в ячейки листа, то делать это вручную неудобно. Для ввода именно сегодняшней даты можно воспользоваться функцией СЕГОДНЯ (TODAY), сочетанием клавиш Ctrl+; или макросом, но если нужны разные даты из прошлого или будущего, то вбивать их руками долго.

К сожалению, в стандартном арсенале средств Excel нет встроенного выпадающего календаря (в отличие от Word), да еще и в последних версиях, начиная с Excel 2007, Microsoft зачем-то убрала из стандартного комплекта поставки библиотеку mscalc.osx, которая позволяла быстро создать пользовательскую форму с календарем.

Читать еще:  Excel значение по модулю

Естественно, это «узкое место» не осталось без внимания опытных пользователей и экспертов Excel MVP, которые оперативно создали несколько интерактивных календарей на макросах для удобного ввода дат. Вот подборка неплохих, на мой взгляд, бесплатных вариантов:

Windows Date Picker
Автор: Ron de Bruin
Цена: бесплатно
Ссылка

  • Устанавливается как надстройка (есть версии для старых Excel 200-2003 и для новых Excel 2007-2010 и, отдельно, для Excel 2013.
  • Вызывается через контекстное меню ячейки (правой кнопкой мыши по ячейке — Date Picker).
  • Позволяет вставлять дату в нескольких форматах, вплоть до номера недели (по разным стандартам).
  • Автоматически подстраивается под российский стандарт недели (с понедельника).

Excel Date Picker
Автор: Jim Cone
Цена: бесплатно
Ссылка

  • Макрос (не надстройка!) с открытым кодом VBA — можно посмотреть как всё устроено и модернизировать «под себя». Но надо копировать код в каждый используемый файл и вызывать нажатием на кнопку или сочетанием клавиш, т.е. универсальность хромает.
  • Удобная система прокрутки лет и месяцев.
  • Российскую неделю (с понедельника) знает.
  • Каких-либо настроек нет.

  • Работает только в Excel 2013, добавляется через магазин приложений Office App Store на вкладке Вставка — Приложения для Office (Insert — Office Apps Store).
  • Вставляется на лист как постоянный графический объект и добавляет выбранную дату в любую выделенную предварительно ячейку.
  • Умеет менять стандарты недели, отображать номера недель, вводить не только дату, но и время.
  • Есть возможность задавать темы оформления.
  • Нет кнопки перехода к текущему дню.

Date Picker
Автор: Sam Radakovitz, руководитель команды программистов Excel в Microsoft
Цена: бесплатно
Сайт автора умер, ссылки не работают, но можно скачать заботливо сохраненную мной когда-то копию здесь.

  • Устанавливается как надстройка.
  • Вызывается через правую кнопку мыши по ячейке — Pick from calendar или с помощью удобного всплывающего значка календарика справа от ячейки с датой.
  • Красивый дизайн, отображение количества дней до выбранной даты от текущей.
  • Использует USA-стандарт недели (отображает неделю с воскресенья).
  • Настроек нет.
  • в Excel 2003 и старше — меню Сервис — Надстройки — Обзор (Tools — Add-ins — Browse)
  • в Excel 2007 и новее — Файл — Параметры — Надстройки — Перейти — Обзор (File — Options — Add-ins — Go To — Browse)

Excel календарь в ячейку excel

Выпадающий календарь для ввода дат

Наша задача — добавить в книгу Excel пользовательскую форму (окно) с автоматическим календарем. Вот такое:

Окошко будет появляться при нажатии сочетания клавиш и после выбора в нем нужной даты — она попадает в текущую ячейку листа. Просто и красиво!

Откройте редактор Visual Basic через меню Сервис — Макрос — Редактор Visual Basic (Tools — Macro — Visual Basic Editor).

Создайте в нем новую пустую пользовательску форму, выбрав в меню Insert — User form .

Автоматически должна появиться панель Toolbox :

Если не появилась — жмите в меню View — Toolbox .

На этой панели представлены различные управляющие элементы окон: кнопки, списки, счетчики и т.д. Но нам нужен элемент (календарь), которого пока на панели не видно. Чтобы добавить его, щелкните по серому фону панели правой кнопкой мыши и выберите Additional Controls . Появится вот такое окно:

В нем надо найти и отметить Элемент управления Календарь 11.0 (Calendar Control 11.0). Версии могут отличаться (11.0, 10.0 и т.д.) в зависимости от версии Microsoft Office, это несущественно. После нажатия на ОК на панели появится новая кнопка — Calendar :

Щелкните по ней, а затем нарисуйте календарь на поле формы, удерживая нажатой левую кнопку мыши:

При желании подправьте размеры формы и календаря и введите текст заголовка окна в панели свойств слева.

Теперь переключитесь в режим ввода программного кода созданной формы (меню View — Code ) и скопируйте туда этот текст:

Private Sub Calendar1_Click()
ActiveCell = Calendar1.Value
ActiveCell.NumberFormat=»dd/mm/yy»
End Sub

Private Sub UserForm_Activate()
Me.Calendar1.Value = Date
End Sub

Читать еще:  Символ пробела в excel

Теперь надо заставить Excel показывать нам созданную форму, когда мы этого захотим. Для этого вставьте новый модуль ( Insert — Module ) и скопируйте туда этот текст:

Sub ShowCalendar()
UserForm1.Show
End Sub

Осталось закрыть редактор Visual Basic и, вернувшись в Excel, назначить созданному макросу ShowCalendar любое подходящее сочетание клавиш (меню Сервис — Макрос — Макросы — кнопка Параметры ).

Если у Вас установлена не полная версия Office, то элемента управления Календарь может не оказаться в списке Additional Controls . Тогда скачайте этот файл (MSCal.ocx.zip) , поместите его в папку C:Windowssystem32 и зарегистрируйте новый элемент управления через меню Пуск — Выполнить , далее набрать Regsvr32 c:windowssystem32mscal.ocx и нажать ОК .

(За дополнение спасибо Vadim )

Если Вы хотите, чтобы календарь автоматически появлялся на экране, когда пользователь выделяет определенные ячейки (диапазон) на листе, то щелкните правой кнопкой мыши по ярлычку этого листа и выберите Исходный текст (View Source). В открывшееся окно редактора Visual Basic скопируйте следующий код:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Application.Intersect(Range(«A1:A20»), Target) Is Nothing Then
UserForm1.Show
End If
End Sub

Теперь при выделении любой ячейки из диапазона А1:А20 календарь будет автоматически отображаться на экране.

Создание календаря в Excel на год

Готовый результат

Для тех, кто просто хочет скачать календарь в Excel на текущий год, на картинке ниже показан как он выглядит. Красным отмечены праздничные дни, розовым — выходные. Текущий день, также автоматически выделяется заливкой.

Добавил календарь на 2017 год с праздниками и выходными в соответствии с постановлением правительства.

Пошаговая инструкция создания календаря в Excel

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

Делаем заголовки

В ячейку A1 вбиваем следующую формулу: =»Календарь на » & ГОД(СЕГОДНЯ()) & » год». Функция СЕГОДНЯ() возвращает текущую дату (мы часто будем ей пользоваться). Соответственно связка функций ГОД(СЕГОДНЯ()) возвратит нам текущий год.

Теперь создадим заголовки месяцев. В ячейку где стоит Январь запишем следующую формулу =ДАТА(ГОД(СЕГОДНЯ());1;1). Эта функция возвращает первое января текущего года (01.01.2015 в моем случае). Применим к этой ячейке такой формат, чтобы отображалось только название месяца. Для этого откроем формат ячеек сочетанием клавиш Ctrl + 1 и выберем соответствующий формат (см. рисунок).

Для создания заголовков последующих месяцев будем использовать еще одну очень полезную функцию =ДАТАМЕС(B3;1). Эта функция возвращает дату отстоящую от указанной на заданное число месяцев (в нашем случае на один). Таким образом, у нас получается следующая картина (дополнительно я добавил немного форматирования):

Проставляем числа

Для автоматического проставления чисел в календаре мы будем использовать всего одну формулу — формулу массива. На вид звучит страшновато, но если разобраться — все легко и просто. Выделяем ячейки B5:H10 и вводим следующую формулу (не спешим жать Enter):
=ДАТА(ГОД(B3);МЕСЯЦ(B3);1-1)-(ДЕНЬНЕД(ДАТА(ГОД(B3);МЕСЯЦ(B3);1-1))-1)+<0:1:2:3:4:5:6>*7+

Вместо Enter нажимаем сочетание клавиш Ctrl+Shift+Enter, вставляя таким образом формула массива. В результате в выделенном диапазоне получаем числа указанного в ячейке B3 месяца.

Аналогичную операцию проводим с другими месяцами или просто копируем диапазон дат января в следующие месяца. Получаем следующую картину:

Форматируем

Отформатируем ячейки таким образом, чтобы они содержали только числа (а не полностью даты). Выделяем даты, открываем формат ячеек (Ctrl+1) и вводим вручную следующий формат:

Календарь принимает все более привычный вид.

Добавляем условного форматирования

Сейчас в январе календарь содержит даты 29, 30, 31 декабря, а также часть дат февраля. Давайте немного скроем эти числа. Для этого будем использовать условное форматирование. Выделяем ячейки B5:H10 и создаем правило условного форматирования. Форматироваться будут ячейки, для которых следующая формула будет являться ИСТИНОЙ:
=И(МЕСЯЦ(B5)<>1+3*(ЧАСТНОЕ(СТРОКА(B5)-5;9))+ЧАСТНОЕ(СТОЛБЕЦ(B5);9))

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

Автоматически выделяем текущую дату в календаре

Для этого создаем еще одно правило условного форматирования. Ячейка будет форматироваться только в том случае, если ее значение будет равно текущей дате (=СЕГОДНЯ()):

Выделим выходные дни в календаре Excel

На этот раз обойдемся обычной заливкой ячеек. Выбирайте на свой вкус. У меня получилось так:

Читать еще:  Знак абзаца в excel

Добавляем праздничные дни

Создадим новый лист Excel (Праздники) и добавим на него умную таблицу со столбцом Праздничные дни. В этот столбец занесем все праздничные дни. Я это уже сделал, можете спокойно копировать и использовать.

Вернемся в наш календарь и создадим еще одно правило условного форматирования. Формула условного форматирования будет проверять является ли дата праздником. И в случае если формула вернет ИСТИНА ячейка будет форматироваться. Вот эта формула:
=НЕ(ЕОШИБКА(ПОИСКПОЗ(B5;ДВССЫЛ(«Праздники[Праздничные дни]»);0))). Стоит отметить, что при добавлении или изменении праздничных дней, календарь будет автоматически форматироваться.

Осталось скопировать ячейки B5:H10 в другие месяца и наш автоматический календарь готов и может служить нам не один год.

Изменение цветовой гаммы календаря Excel

Если при создании календаря использовать цвета темы, то потом их можно будет изменить одним простым движением. Просто сменив цвета темы на вкладке Разметка страницы. Выбирайте понравившийся.

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

Excel календарь в ячейку excel

Не силен в vba. Прошу строго не судить.

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

Вопрос. Что необходимо изменить в коде календаря, чтобы результат (выбранная дата) прописывался не в ячейку на листе, а передавался в определенную переменную? Указанную переменную я потом успешно смог бы использовать в выводе где угодно: хоть в Label, хоть TextBox, хоть в любой нужной мне ячейке на листе.

В модуле класса DateClass Найдите строку:

и вместо ActiveCell.Value укажите имя глобальной переменной к примеру CurrentDate

объявить глобальную переменную необходимо в простом модуле :

Public CurrentDate As Date

C переменной получилось. Спасибо большое.

В процессе работы с календарем возник еще один вопрос.
Когда кликаю на кнопку, вызываю DateForm.Show, всплывает календарь. Выбираю нужную дату, дата успешно прописывается в Label. Но чтобы закрыть календарь, необходимо еще раз кликнуть на выбранную дату. Т.е. календарь закрывается только при повторном клике на выбранной дате.

Можно ли как-то настроить, чтобы календарь закрывался при одном клике на выбранной дате?

Вот как должна выглядеть процедура на клик мыша в модуле класса DateClass:

В Вашей версии ActiveCell.Value заменено на глобальную переменную. Строка Unload DateForm в конце процедуры удаляет календарь.

Alex_ST, Отвечу по пунктам:

1. Понты — В давние времена у меня был металлический перекидной календарь, год там был четыре цифры в окошках. Согласись прикольно.
2. Вот накой немодальный вызов — вызвал — дату выбрал — календарь ушел — дата осталась. Я понимаю процесс какой обсчитывать, думаю это лишнее. Тем более открывается быстро и возвращает дату из активной ячейки.
3. Поюзаю, подумаю, если много не переписывать добавлю.
4. Вот накой козе баян? Если вызывать из пустой ячейки позицирует на текущей дате, зачем еще кнопка — Алекс пустое, тем более даты можно выбрать двумя кликами.

1. Ну, это на любителя. Поэтому в своей доработке я окошечки сдвинул поближе друг к другу.
2. Немодальный вызов удобен если обрабатываешь табличку с несколькими датами. Тогда в Activecell значение из календаря вносить можно даблкликом по нужной дате. А закрывать форму после изменения всех нужных дат — «крестиком»
3. С прокруткой через месяцы по годам получилось очень удобно. Вряд ли кто будет против такой фичи возражать.
4. Не согласен. Если, листая даты далеко ушёл от «сегодня», то удобнее к нему возвратиться по спец.кнопочке чем вспоминать «а что у нас сегодня?» и опять листать до нужной даты (ведь вставка запрещена).

И к стати, ты, я смотрю, даже не посмотрел, как я упростил формулы. А там здорово сократилось и окультурилось всё

Alex_ST, не смотрел потому что zip в запрете.

Похожие статьи

Ссылка на основную публикацию
Похожие публикации
×
×
Adblock
detector