Надстройка для excel календарь

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

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

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

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

calendar-ron.png Windows Date Picker

Автор: Ron de Bruin

Цена: бесплатно

Ссылка

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

calendar-jim-cone.png Excel Date Picker

Автор: Jim Cone

Цена: бесплатно

Ссылка

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

Автор: VERTEX

Цена: бесплатно.

Ссылка в Office Apps Store

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

Автор: Sam Radakovitz, руководитель команды программистов Excel в Microsoft

Цена: бесплатно 

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

  • Устанавливается как надстройка. 
  • Вызывается через правую кнопку мыши по ячейке — Pick from calendar или с помощью удобного всплывающего значка календарика справа от ячейки с датой. 
  • Красивый дизайн, отображение количества дней до выбранной даты от текущей. 
  • Использует USA-стандарт недели (отображает неделю с воскресенья). 
  • Настроек нет. 

 

P.S.

Установка надстроек:

  • в Excel 2003 и старше — меню Сервис — Надстройки — Обзор (Tools — Add-ins — Browse)
  • в Excel 2007 и новее — Файл — Параметры — Надстройки — Перейти — Обзор (File — Options — Add-ins — Go To — Browse)

Ссылки по теме

  • Всплывающий календарь из надстройки PLEX
  • Автоматический ввод даты при изменении ячейки

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

Надстройка samradDatePicker (русифицированная) для облегчения ввода даты в ячейки листа Excel.

Добавляет в контекстное меня ячеек пункт выбора даты, а при выделении ячеек, содержащих дату, справа от ячейки отображает значок календаря.

Поместите файл надстройки из вложения в папку автозагрузки Excel (C:Program FilesMicrosoft OfficeOFFICExxXLSTART).

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

Второй прикреплённый к статье файл — та же надстройка, только в которой неделя начинается с понедельника (в оригинале надстройки — с воскресенья)

Пароль на проект VBA — 1 (единица)

PS: Этот макрос написал не я (автор — samrad)
Файл с макросом взят на просторах интернета.
Поскольку макрос делал не я, — доработками его я не занимаюсь, никаких гарантий работы дать не могу, по использованию не консультирую.

Примечание: 
Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим
ссылку на оригинал (на английском языке)
.

Выбор даты — это элемент управления, который позволяет пользователям быстро вводить даты в форму Microsoft Office InfoPath, нажав кнопку маленьком всплывающем календаре. Например можно использовать элемент выбора даты для ввода дат рождения люди страхования форме. Можно также использовать элементом выбора даты для отображения стандартных дат, например текущую дату.

В этой статье

  • Когда следует использовать элемент выбора даты

  • Пользовательский интерфейс

  • Проблемы совместимости

  • Вставьте элемент выбора даты

  • Отобразить текущую дату в календарике

  • Отображение текущих даты и времени в календарике

  • Советы по макету

Когда следует использовать элемент выбора даты

При необходимости с помощью выбора дат:

  • Разрешить пользователям ввод дат, выбранном в форме, например даты начала и окончания для определенного проекта.

  • Функции сегодня и сейчас, чтобы отобразить текущую дату и время в форме.

  • Отображение дат из внешнего источника данных, например выставления счетов и отгрузки дат из базы данных заказов клиентов.

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

Departure date entered in date picker control on form

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

К началу страницы

Взаимодействие с пользователем

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

pop-up calendar

К началу страницы

Совместимость

При разработке шаблона формы в InfoPath, вы можете специального режима совместимости для шаблона формы с поддержкой браузера разработки. Когда шаблона формы с поддержкой браузера, опубликованные на сервере под управлением InfoPath Forms Services, а затем поддержкой веб-браузера, форм, основанных на шаблоне формы можно просмотреть в веб-браузере. При разработке шаблона формы с поддержкой браузера некоторые элементы управления будут недоступны в области задач элементы управления, так как они не отображается в веб-браузере.

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

  • Выбор даты полностью поддерживаются только в браузерах Windows Internet Explorer. В других веб-браузеры Выбор даты в виде текстового поля, несмотря на то, что дата параметры форматирования, поддерживаются в текстовом поле.

  • Замещающий текст — текст, отображаемый в элементе управления в шаблоне формы. Пример замещающий текст — «Щелкните здесь и введите». Несмотря на то, что можно оставить заполнитель параметры текста для шаблонов форм с поддержкой браузера, что текст не отображается в веб-браузеры.

К началу страницы

Вставка элемента управления «выбор даты»

Процедура для вставки элементом выбора даты немного зависят от ли разработка шаблона формы пустой или индексация внешнего вида шаблона формы базы данных или другого внешнего источника данных.

На рисунке показано, как выглядит элементом выбора даты при выборе в Режим конструктора.

Date picker selected in design mode

Элементы управления могут быть связанными или свободными. Если элемент управления связан, он подключен к полю или группе в источнике данных, поэтому данные, вводимые в элемент управления, сохраняются в XML-файле самой формы. Когда элемент управления является свободным, он не подключен к полю или группе, а данные, вводимые в него, не сохраняются. Если выбрать элемент управления или навести на него указатель мыши, в его правом верхнем углу , отобразится текст и значок привязки. В тексте указаны группа или поле в источнике данных, к которым привязан элемент управления. Значок указывает на то, правильно ли элемент управления привязан к полю или группе. Если привязка правильная, выводится зеленый значок. Если с привязкой что-то не так, вы увидите синий или красный значок.

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

Relationship between date picker on form template and corresponding field in data source

Вставьте элемент выбора даты в шаблоне пустой формы

При создании нового пустого шаблона формы по умолчанию устанавливается флажок Автоматически создавать источник данных в области задач Элементы управления. Это позволяет InfoPath автоматически создавать поля и групп в источнике данных по мере добавления элементов управления в шаблон формы. Эти поля и группы представлены в виде значков папок и файлов в области задач Источник данных.

  1. Поместите курсор в то место шаблона формы, куда вы хотите вставить элемент управления.

  2. Если область задач Элементы управления не отображается, щелкните Другие элементы управления в меню Вставка или нажмите клавиши ALT+I, C.

  3. В разделе Вставить элементы управления щелкните Элемент выбора даты.

  4. Чтобы добавить метку к элементу управления, введите сверху или слева от него текст, за которым следует двоеточие (:).

  5. Чтобы задать способ отображения даты в форме, дважды щелкните Выбор даты, который был добавлен в шаблоне формы.

  6. Перейдите на вкладку данные и нажмите кнопку Формат.

  7. В списке отображения даты следующим образом в диалоговом окне Формат даты выберите требуемый формат отображения.

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

Вставьте элемент выбора даты на шаблон формы, основанного на существующий источник данных

Если основе внешнего вида шаблона формы на существующий файл язык XML (Extensible Markup), базы данных или веб-службы, InfoPath извлекает поля и группы в области задач Источник данных из соответствующего источника данных. В этом случае можно добавить, перетащив поле выбора даты из области задач Источник данных в шаблоне формы или путем вставки Выбор даты с помощью области задач элементы управления, как описано в приведенной ниже процедуре элементом выбора даты:

  1. Поместите курсор в то место шаблона формы, куда вы хотите вставить элемент управления.

  2. Если область задач Элементы управления не отображается, щелкните Другие элементы управления в меню Вставка или нажмите клавиши ALT+I, C.

  3. В разделе Вставить элементы управления щелкните Элемент выбора даты.

  4. В диалоговом окне Привязка выбора дат выберите поле, в котором нужно сохранить данные выбора даты и нажмите кнопку ОК.

  5. InfoPath в качестве используется имя поля или группы подпись элемента управления. При необходимости измените текст подписи.

  6. Чтобы задать способ отображения даты в форме, дважды щелкните Выбор даты, который был добавлен в шаблоне формы.

  7. На вкладке данные нажмите кнопку Формат.

  8. В списке отображения даты следующим образом в диалоговом окне Формат даты выберите требуемый формат отображения.

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

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

К началу страницы

Отобразить текущую дату в календарике

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

  1. Вставьте элемент выбора даты в шаблоне формы.

  2. Дважды щелкните Выбор даты, вставленной в шаблоне формы.

  3. Откройте вкладку Данные.

  4. В разделе Значение по умолчанию нажмите кнопку Вставить формулу Изображение кнопки.

  5. В диалоговом окне Вставка формулы нажмите кнопку Вставить функцию.

  6. В списке категорий в диалоговом окне Вставка функции выберите Дата и время.

  7. В списке функции выберите сегодня и нажмите кнопку ОК два раза, чтобы вернуться в диалоговое окно Свойства выбора даты.

    Обратите внимание, что в поле значение отображается сегодня().

  8. В разделе Значение по умолчанию снимите флажок обновлять это значение при пересчете результатов формулы.

    Примечание: Если снять этот флажок установлен, дата, не обновляется автоматически при каждом открытии формы на основе этого шаблона формы. Идеально подходит в тех случаях, когда пользователи могут видеть дату создания формы. Можно оставить установленным флажком в случаях, когда у вас есть последнее обновление или в прошлый раз открыт на поле, которое необходимо изменять каждый раз при открытии формы дату.

  9. Нажмите кнопку ОК, чтобы вернуться к шаблону формы.

  10. Чтобы проверить изменения, нажмите кнопку Просмотр на стандартной панели инструментов или нажмите клавиши CTRL+SHIFT+B.

  11. Убедитесь, что дату, которая появляется в окне выбора даты выглядит так, как требуемое для. Если это не так, вы можете изменить способ отображения даты или времени, нажав кнопку » Формат » в диалоговом окне Свойства выбора даты.

К началу страницы

Отображение текущих даты и времени в календарике

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

  1. Вставьте элемент выбора даты в шаблоне формы.

  2. Дважды щелкните Выбор даты, вставленной в шаблоне формы.

  3. Откройте вкладку Данные.

  4. В поле тип данных выберите Дата и время (dateTime).

  5. Нажмите кнопку Формат.

  6. В диалоговом окне Формат даты и времени в списке Формат отображения времени следующим образом нужный вариант и нажмите кнопку ОК.

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

  8. В диалоговом окне Вставка формулы нажмите кнопку Вставить функцию.

  9. В списке категорий в диалоговом окне Вставка функции выберите Дата и время.

  10. В списке функциинажмите кнопку выполнить и нажмите кнопку ОК два раза, чтобы вернуться в диалоговое окно Свойства выбора даты.

    Обратите внимание на то, что отображается в поле значениеnow().

  11. В разделе Значение по умолчанию снимите флажок обновлять это значение при пересчете результатов формулы.

    Примечание: Если снять этот флажок установлен, дата, не обновляется автоматически при каждом открытии формы на основе этого шаблона формы. Идеально подходит в тех случаях, когда пользователи могут видеть дату создания формы. Можно оставить установленным флажком в случаях, когда у вас есть последнее обновление или в прошлый раз открыт на поле, которое необходимо изменять каждый раз при открытии формы дату.

  12. Нажмите кнопку ОК, чтобы вернуться к шаблону формы.

  13. Чтобы проверить изменения, нажмите кнопку Просмотр на стандартной панели инструментов или нажмите клавиши CTRL+SHIFT+B.

  14. Убедитесь, что дату, которая появляется в окне выбора даты выглядит так, как требуемое для. Если это не так, вы можете изменить способ отображения даты или времени, нажав кнопку » Формат » в диалоговом окне Свойства выбора даты.

К началу страницы

Советы по макету

Используйте приведенные ниже советы помогут вам настроить внешний вид, размер и других аспектов элементом выбора даты:

  • Чтобы одновременно изменить размер нескольких выбора даты, выделите выбора даты, размер которых нужно изменить, в меню Формат выберите пункт Свойства и внесите необходимые изменения на вкладке размер.

  • Чтобы изменить цвет элементом выбора даты или границу, Выбор даты, в меню Формат выберите, выберите команду границы и заливка и внесите необходимые изменения.

  • Чтобы настроить текст, встречающийся в элементом выбора даты, используйте поля Шрифт и Размер шрифта на панели инструментов Форматирование. Чтобы одновременно изменить шрифт и размер шрифта для всех выбора даты на шаблон формы, щелкните правой кнопкой мыши Выбор даты с форматированием и нажмите кнопку Применить шрифт для всех элементов управления выбора даты в контекстном меню.

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

  • В некоторых случаях текст внутри Выбор даты» и «метка слева от календарике может отображаться для немного отсутствовать выравнивания. Чтобы быстро изменить выравнивание их, дважды щелкните Выбор даты, нажмите кнопку Выровнять на вкладке размер и нажмите кнопку Применить. В случае выбора метки и даты в разных ячейках макетной таблицы, щелкните правой кнопкой мыши ячейку, содержащую подпись, в контекстном меню выберите команду Свойства таблицы и на вкладке Ячейка в группе Вертикальное выравнивание выберите Центр.

  • Чтобы изменить способ отображения даты, дважды щелкните Выбор даты, перейдите на вкладку данные и нажмите кнопку » Формат «. Выбор формата отображения в диалоговом окне Формат даты.

К началу страницы

Календарь DatePicker

Календарь DatePicker

Инструмент надстройки Excel Tools VBA, календарь выбора дат из интерактивного календаря.

Вставка даты и даты с текущем временем.

Реализованы следующие настройки:

  • добавление (отключение) кнопки вставки календаря, в контекстное меню (“Показывать при ПКМ”)
  • добавление (отключение) кнопки изменения и выбора дат на сетку таблицы Excel (“Показывать на сетке”)

Календарь DatePicker инструмент вставки дат в ячейки Excel

Календарь DatePicker инструмент вставки дат в ячейки Excel

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

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

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

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)

Трюк №89. Как добавить элемент управления Календарь в любую рабочую книгу Excel

Для гарантии правильности ввода дат пользователями элемент управления Excel Календарь (Calendar) может упростить ситуацию как для вас, так и для пользователей, работающих с вашей электронной таблицей. При помощи этого трюка можно добавить элемент управления Календарь (Calendar) в любую рабочую книгу Excel.

Если дата введена неправильно, Excel не сможет ее распознать. Иногда это означает, что вы не можете выполнять вычисления с числами, выглядящими как даты, но датами не являющимися. Кроме того, это означает, что любые диаграммы или сводные таблицы, которые основываются на этих данных, будут неверными. Хотя решить эту проблему может весьма разностороннее средство проверки данных Excel, оно также далеко от совершенства.

При помощи этого трюка можно добавить элемент управления Календарь (Calendar) в любую рабочую книгу Excel. Для начала откройте рабочую книгу, куда собираетесь добавить календарь. Лучше использовать ваш файл Personal.xls, который можно открыть командой Файл → Открыть (File → Open). Если этот пункт меню недоступен, значит, у вас пока нет файла Personal.xls. Можно создать его, записав пустой макрос. Для этого выберите команду Разработчик → Начать запись (Developer → Record New Macro) и в поле Сохранить в (Store Macro In) выберите вариант Личная книга макросов (Personal Macro Workbook). Затем щелкните на кнопке ОК, выделите любую ячейку и остановите запись. Excel автоматически создаст файл Personal.xls.

Выберите команду Разработчик → Редактор Visual Basic (Developer → Visual Basic Editor) (сочетание клавиш Alt/Option+Fll) и в VBE выберите команду Insert → UserForm. Должна появиться панель инструментов Control. (Если панель не открылась, выберите команду View → Toolbox.) Правой кнопкой мыши щелкните панель инструментов Control и в контекстном меню выберите команду Additional Controls. Прокрутите список до флажка Элемент управления Календарь 10.0 (Calendar Control 10.0) (номер версии зависит от версии Excel). Установите этот флажок и щелкните на кнопке ОК. Щелкните календарь, который теперь представляет собой часть панели инструментов, а затем щелкните форму UserForm, которую добавили ранее. При помощи маркеров изменения размера формы UserForm и элемента управления Календарь (Calendar) отрегулируйте их размер.

Удостоверьтесь, что форма UserForm выделена, и выберите команду View → Properties Window (клавиша F4). В окне Properties выберите Caption и замените слово UserForml словом Calendar. Теперь выберите команду View → Code (клавиша F7) и в частном модуле введите код, приведенный в листинге 7.14.

//Листинг 7.14 Private Sub Calendar1_Click() ActiveCell = Calendar1.Value End Sub Private Sub UserForm_Activate() Me.Calendar1.Value = Date End Sub

Выберите команду Insert → Module и в общем модуле введите код из листинга 7.15.

//Листинг 7.15 Sub ShowIt() UserForm1.Show End Sub

Закройте окно, чтобы вернуться в Excel. Выберите команду Разработчик > Макрос → Макросы (Developer > Macro → Macros) (сочетание клавиш Alt+F8) и затем выберите ShowIt. Щелкните кнопку Параметры (Options) и назначьте макросу клавишное сочетание — все готово. Нажмите выбранное сочетание клавиш, раскроется календарь с выбранной сегодняшней датой. Щелкните любую дату, и она будет вставлена в активную ячейку.

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

Была такая тема писал уже макрос да чтото не могу найти чтобы ссыл кинуть
А вот файлик остался

Тут вызывается календарь не во всех ячейках а только по столбцам H, J, G (я думаю труда не составит поправить под свои нужды, но если надо переделаю)

На лист 1
Private Sub CommandButton1_Click()
UserForm1.Top = ActiveCell.Top
UserForm1.Left = ActiveCell.Left
UserForm1.Show
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
result = False
s = ActiveCell.Address(RowAbsolute:=False, columnabsolute:=False, ReferenceStyle:=xlA1)
result = (s Like «H*») Or (s Like «J*») Or (s Like «G*»)
CommandButton1.Left = ActiveCell.Left + ActiveCell.Width
CommandButton1.Top = ActiveCell.Top
If result = True Then CommandButton1.Visible = True Else CommandButton1.Visible = False
End Sub

Добавляем форму, на нее Calendar Control из комплекта офиса
и код
Private Sub Calendar1_Click()
s1 = Calendar1.Day
s2 = Calendar1.Month
s3 = Calendar1.Year
ActiveCell = DateSerial(s3, s2, s1)
Calendar1.Today
UserForm1.Hide
End Sub


Private Sub UserForm_Initialize()
Load UserForm1
UserForm1.Hide
End Sub

Удачи с экспериментами

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 в запрете.

Понравилась статья? Поделить с друзьями:
  • Надстройка для excel для поиска
  • Надстройка для excel графики
  • Надстройка vsto для word
  • Надстройка для excel анализ данных регрессия
  • Надстройка vsto для excel