Календарь в ячейке в excel Excelka.ru - все про Ексель

Календарь в ячейке в 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​ него года. Смотрите​ файлы сами попадут​ выпадающий календарь для​ нашей формуле корректный​ и введите туда​Если вам нужен календарь​

Читать еще:  Перенести данные из excel в excel

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

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

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

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

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

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

Выбор даты из всплывающего календаря

Описание работы

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

Чтобы вставить дату из всплывающего календаря в любой ячейке Excel можно использовать надстройку VBA-Excel. Для этого:

  1. Выделить ячейку в которую необходимо вставить дату.
  2. Перейти на вкладку VBA-Excel.
  3. Выбрать команду Вставить дату.
  4. В диалоговом окне Календаря выбрать нужную дату.

Работа с формой календаря

Форма календаря имеет достаточно широкий функционал.

  • Можно быстро перейти к текущему числу.
  • Быстро переключить месяц путем выбора его из списка.
  • Изменять год с помощью переключателей.
  • При выборе даты отображаются дни недели и подсвечиваются выходные дни.
  • Вы можете вызвать окно ввода даты и продолжать работать с данными. Закрывать окно нет необходимости.
  • Закрыть календарь можно в любой момент путем нажатия на крестик в правом верхнем углу.

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

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

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

Естественно, это «узкое место» не осталось без внимания опытных пользователей и экспертов 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).
  • Вставляется на лист как постоянный графический объект и добавляет выбранную дату в любую выделенную предварительно ячейку.
  • Умеет менять стандарты недели, отображать номера недель, вводить не только дату, но и время.
  • Есть возможность задавать темы оформления.
  • Нет кнопки перехода к текущему дню.
Читать еще:  Excel если содержит часть слова

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

Не силен в 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. Не согласен. Если, листая даты далеко ушёл от «сегодня», то удобнее к нему возвратиться по спец.кнопочке чем вспоминать «а что у нас сегодня?» и опять листать до нужной даты (ведь вставка запрещена).

Читать еще:  Vba excel открыть файл в фоновом режиме

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

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

Календарь в ячейке в 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 показывать нам созданную форму, когда мы этого захотим. Для этого вставьте новый модуль ( 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 календарь будет автоматически отображаться на экране.

Ссылка на основную публикацию