Windows date picker в excel 2016

Элемент управления пользовательской формы DTPicker (поле с календарем), предназначенный для выбора и ввода даты. Примеры кода VBA Excel с DTPicker.

Элемент управления пользовательской формы DTPicker (поле с календарем), предназначенный для выбора и ввода даты. Примеры кода VBA Excel с DTPicker.

UserForm.DTPicker – это элемент управления пользовательской формы, представляющий из себя отформатированное текстовое поле с раскрывающимся календарем, клик по выбранной дате в котором записывает ее в текстовое поле.

Элемент управления DTPicker

При вызове календаря пользовательская форма теряет фокус – это видно на изображении. При редактировании даты непосредственно в текстовом поле DTPicker, формат поля позволяет изменять элементы даты (день, месяц, год) по отдельности.

Чтобы перемещаться между элементами даты, необходимо, или выбирать элемент мышью, или нажимать любой знак разделителя («.», «,» или «/») на клавиатуре. А клик по знаку «+» или «-», соответственно, увеличит или уменьшит значение элемента даты на единицу.

Если в элемент «год» ввести однозначное число или двузначное число, не превышающее двузначный остаток текущего года, через пару секунд автоматически добавятся первые две цифры текущего столетия (20). Если вводимое двузначное число превысит двузначный остаток текущего года, автоматически добавятся первые две цифры прошлого столетия (19).

DTPicker – это сокращение от слова DateTimePicker, не являющегося в VBA Excel ключевым словом, как и DatePicker.

Добавление DTPicker на Toolbox

Изначально на панели инструментов Toolbox нет ссылки на элемент управления DTPicker, поэтому ее нужно добавить самостоятельно.

Чтобы добавить DTPicker на панель инструментов Toolbox, кликните по ней правой кнопкой мыши и выберите из контекстного меню ссылку «Additional Controls…»:

Добавление дополнительных элементов управления на Toolbox

В открывшемся окне «Additional Controls» из списка дополнительных элементов управления выберите строку «Microsoft Date and Time Picker Control»:

Выбор DTPicker в окне «Additional Controls»

Нажмите кнопку «OK» и значок элемента управления DTPicker появится на панели инструментов Toolbox:

Значок элемента управления DTPicker на панели инструментов Toolbox

Свойства поля с календарем

Свойство Описание
CalendarBackColor Заливка (фон) календаря без заголовка.
CalendarForeColor Цвет шрифта чисел выбранного в календаре месяца.
CalendarTitleBackColor Заливка заголовка календаря и фон выбранной даты.
CalendarTitleForeColor Цвет шрифта заголовка (месяц и год) и выбранного в календаре числа.
CalendarTrailingForeColor Цвет шрифта чисел предыдущего и следующего месяца.
CheckBox В значении True отображает встроенный в DTPicker элемент управления CheckBox. По умолчанию – False.
ControlTipText Текст всплывающей подсказки при наведении курсора на DTPicker.
CustomFormat Пользовательский формат даты и времени. Работает, когда свойству Format присвоено значение dtpCustom (3).
Day (Month, Year) Задает или возвращает день (месяц, год).
DayOfWeek Задает или возвращает день недели от 1 до 7, отсчет начинается с воскресенья.
Enabled Возможность раскрытия календаря, ввода и редактирования даты/времени. True – все перечисленные опции включены, False – выключены (элемент управления становится серым).
Font Шрифт отображаемого значения в отформатированном поле элемента управления.
Format Формат отображаемого значения в поле элемента управления DTPicker, может принимать следующие значения: dtpCustom (3), dtpLongDate (0), dtpShortDate (1) (по умолчанию) и dtpTime (2).
Height Высота элемента управления DTPicker с нераскрытым календарем.
Hour (Minute, Second) Задает или возвращает часы (минуты, секунды).
Left Расстояние от левого края внутренней границы пользовательской формы до левого края элемента управления.
MaxDate Максимальное значение даты, которое может быть выбрано в элементе управления (по умолчанию – 31.12.9999).
MinDate Минимальное значение даты, которое может быть выбрано в элементе управления (по умолчанию – 01.01.1601).
TabIndex Определяет позицию элемента управления в очереди на получение фокуса при табуляции, вызываемой нажатием клавиш «Tab», «Enter». Отсчет начинается с нуля.
Top Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления.
UpDown Отображает счетчик вместо раскрывающегося календаря. True – отображается SpinButton, False – отображается календарь (по умолчанию).
Value Задает или возвращает значение (дата и/или время) элемента управления.
Visible Видимость поля с календарем. True – DTPicker отображается на пользовательской форме, False – DTPicker скрыт.
Width Ширина элемента управления DTPicker с нераскрытым календарем.

DTPicker – это сокращение от слова DateTimePicker, не являющегося в VBA Excel ключевым словом, как и DatePicker.

Примеры кода VBA Excel с DTPicker

Программное создание DTPicker

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

Private Sub UserForm_Initialize()

Dim myDTPicker As DTPicker

    With Me

        .Height = 100

        .Width = 200

        ‘Следующая строка создает новый экземпляр DTPicker

        Set myDTPicker = .Controls.Add(«MSComCtl2.DTPicker», «dtp», True)

    End With

    With myDTPicker

        .Top = 24

        .Left = 54

        .Height = 18

        .Width = 72

        .Font.Size = 10

    End With

Set myDTPicker = Nothing

End Sub

Данный код должен быть размещен в модуле формы. Результат работы кода:

Динамически созданный DTPicker

Применение свойства CustomFormat

Чтобы задать элементу управления DTPicker пользовательский формат отображения даты и времени, сначала необходимо присвоить свойству Format значение dtpCustom. Если этого не сделать, то, что бы мы не присвоили свойству CustomFormat, будет применен формат по умолчанию (dtpShortDate) или тот, который присвоен свойству Format.

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

Private Sub UserForm_Initialize()

    With DTPicker1

        .Format = dtpCustom

        .CustomFormat = «Год: yyyy; месяц: M; день: d»

        .Value = Now

    End With

    With DTPicker2

        .Format = dtpCustom

        .CustomFormat = «Часы: H; минуты: m; секунды: s»

        .Value = Now

    End With

End Sub

Результат работы кода:
DTPicker - отображение даты и времени в пользовательском формате
Таблица специальных символов и строк, задающих пользовательский формат даты и времени (регистр символов имеет значение):

Символы и строки Описание
d День месяца из одной или двух цифр.
dd День месяца из двух цифр. К числу из одной цифры впереди добавляется ноль.
ddd Сокращенное название дня недели из двух символов (Пн, Вт и т.д.).
dddd Полное название дня недели.
h Час из одной или двух цифр в 12-часовом формате.
hh Час из двух цифр в 12-часовом формате. К часу из одной цифры впереди добавляется ноль.
H Час из одной или двух цифр в 24-часовом формате.
HH Час из двух цифр в 24-часовом формате. К часу из одной цифры впереди добавляется ноль.
m Минута из одной или двух цифр.
mm Минута из двух цифр. К минуте из одной цифры впереди добавляется ноль.
M Месяц из одной или двух цифр.
MM Месяц из двух цифр. К месяцу из одной цифры впереди добавляется ноль.
MMM Сокращенное название месяца из трех символов.
MMMM Полное название месяца.
s Секунда из одной или двух цифр.
ss Секунда из двух цифр. К секунде из одной цифры впереди добавляется ноль.
y Год из одной или двух последних цифр.
yy Год из двух последних цифр.
yyyy Год из четырех цифр.

Создание границ интервала дат

Простенький пример, как задать интервал дат с начала месяца до текущего дня с помощью двух элементов управления DTPicker:

Private Sub UserForm_Initialize()

    DTPicker1.Value = Now

    DTPicker1.Day = 1

    DTPicker2.Value = Now

End Sub

Результат работы кода, запущенного 23.11.2020:

Интервал дат, заданный с помощью двух элементов управления DTPicker

DTPicker – это сокращение от слова DateTimePicker, не являющегося в VBA Excel ключевым словом, как и DatePicker.

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

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

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

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

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

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

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

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

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

Если вам часто приходится вводить даты в ячейки листа, то делать это вручную неудобно. Для ввода именно сегодняшней даты можно воспользоваться функцией СЕГОДНЯ (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
  • Автоматический ввод даты при изменении ячейки

RRS feed

  • Remove From My Forums
  • Question

  • Microsoft Date and Time Picker is not available in Excel 2016 under the Developer tab then «More Tools». The PC is Windows 10 64 bit running Office 365, 2016, 32 bit. I installed «Microsoft Visual
    Basic 6.0 Common Controls» and registered «mscomct2.ocx». Any suggestions on how this feature can be added to Excel 2016?   Thanks                       

    • Edited by
      sph422
      Wednesday, December 28, 2016 3:01 PM
      typo

All replies

  • Hi sph422,

    This is what I did:

    my environment:
      Windows 10 [64-bit]
      Office 2016 [32-bit]

    1. download «MSCOMCT2.OCX«
        http://danielcurran.com/freeware/MSCOMCT2.cab
    2. copy it to «C:%windows%SysWOW64» folder
    3. run cmd.exe
      3.1. change current directory to «C:%windows%SysWOW64»
      3.2. type «regsvr32 mscomct2.ocx» and [Enter]
    4. reboot Windows

    [*1] 
      If using 64-bit version of Windows, do as the above.

      If using 32-bit version of Windows, do as the below.
        1. download «MSCOMCT2.OCX»
        2. copy it to «C:%windows%System32» folder
        3. run cmd.exe
           3.1. change current directory to «C:%windows%System32«
           3.2. type «regsvr32 mscomct2.ocx» and [Enter]
        4. reboot Windows

    I’d like to know what you did, if the above does not work. 

    Regards,
    Ashidacchi

    • Proposed as answer by
      Yuki SunMicrosoft contingent staff
      Thursday, December 29, 2016 4:48 AM
    • Unproposed as answer by
      Yuki SunMicrosoft contingent staff
      Thursday, December 29, 2016 5:07 AM
    • Edited by
      Ashidacchi
      Thursday, December 29, 2016 5:20 AM
      correct error
    • Proposed as answer by
      Ashidacchi
      Friday, December 30, 2016 10:17 AM

  • Hi sph422,

    >> I installed «Microsoft Visual Basic 6.0 Common Controls» and registered «mscomct2.ocx»

    Where did you put the «mscomct2.ocx» file? As far as I know, how you register the control depends on the version of Windows (32-bit or 64-bit). In your environment with 64-bit Windows, I’d recommend you try taking the following steps to see the
    result:

    1. Extract the MSCOMCT2.cab you downloaded.
    2. Copy the MSCOMCT2.OCX file to C:WindowsSysWoW64:

    3. Go to StartAll ProgramsAccessories (or searching “Command Prompt” using Cortana), Right-click Command Prompt and then click on Run As Administrator. 

    4. At the command prompt, type the following and then press Enter and exist:

    %systemroot%SysWoW64regsvr32.exe mscomct2.ocx

    Hope my clarification is clear and feel free to let me know if you need further assistance on this issue.

    Best regards,
    Yuki Sun


    Please remember to mark the replies as answers if they helped.

    If you have feedback for TechNet Subscriber Support, contact
    tnmff@microsoft.com.

    • Proposed as answer by
      Yuki SunMicrosoft contingent staff
      Friday, December 30, 2016 10:00 AM

  • Hello, i´ve tried to install the mscomct2.ocx but couldn´t. Now i´m trying to remove it. Could you help me please?

    Everytime i open excel, it pops up a warning «Te file format and extension of «mscomct.ocx» don´t match. The file could be corrupted or unsafe. Unless you trust its source, don´t open it. Do you want to open it anyway?»

    If i agree, the next page is full of codes. If not, i can work normally but,the warning bugs me XD

    Help!!

RRS feed

  • Remove From My Forums
  • Question

  • Microsoft Date and Time Picker is not available in Excel 2016 under the Developer tab then «More Tools». The PC is Windows 10 64 bit running Office 365, 2016, 32 bit. I installed «Microsoft Visual
    Basic 6.0 Common Controls» and registered «mscomct2.ocx». Any suggestions on how this feature can be added to Excel 2016?   Thanks                       

    • Edited by
      sph422
      Wednesday, December 28, 2016 3:01 PM
      typo

All replies

  • Hi sph422,

    This is what I did:

    my environment:
      Windows 10 [64-bit]
      Office 2016 [32-bit]

    1. download «MSCOMCT2.OCX«
        http://danielcurran.com/freeware/MSCOMCT2.cab
    2. copy it to «C:%windows%SysWOW64» folder
    3. run cmd.exe
      3.1. change current directory to «C:%windows%SysWOW64»
      3.2. type «regsvr32 mscomct2.ocx» and [Enter]
    4. reboot Windows

    [*1] 
      If using 64-bit version of Windows, do as the above.

      If using 32-bit version of Windows, do as the below.
        1. download «MSCOMCT2.OCX»
        2. copy it to «C:%windows%System32» folder
        3. run cmd.exe
           3.1. change current directory to «C:%windows%System32«
           3.2. type «regsvr32 mscomct2.ocx» and [Enter]
        4. reboot Windows

    I’d like to know what you did, if the above does not work. 

    Regards,
    Ashidacchi

    • Proposed as answer by
      Yuki SunMicrosoft contingent staff
      Thursday, December 29, 2016 4:48 AM
    • Unproposed as answer by
      Yuki SunMicrosoft contingent staff
      Thursday, December 29, 2016 5:07 AM
    • Edited by
      Ashidacchi
      Thursday, December 29, 2016 5:20 AM
      correct error
    • Proposed as answer by
      Ashidacchi
      Friday, December 30, 2016 10:17 AM

  • Hi sph422,

    >> I installed «Microsoft Visual Basic 6.0 Common Controls» and registered «mscomct2.ocx»

    Where did you put the «mscomct2.ocx» file? As far as I know, how you register the control depends on the version of Windows (32-bit or 64-bit). In your environment with 64-bit Windows, I’d recommend you try taking the following steps to see the
    result:

    1. Extract the MSCOMCT2.cab you downloaded.
    2. Copy the MSCOMCT2.OCX file to C:WindowsSysWoW64:

    3. Go to StartAll ProgramsAccessories (or searching “Command Prompt” using Cortana), Right-click Command Prompt and then click on Run As Administrator. 

    4. At the command prompt, type the following and then press Enter and exist:

    %systemroot%SysWoW64regsvr32.exe mscomct2.ocx

    Hope my clarification is clear and feel free to let me know if you need further assistance on this issue.

    Best regards,
    Yuki Sun


    Please remember to mark the replies as answers if they helped.

    If you have feedback for TechNet Subscriber Support, contact
    tnmff@microsoft.com.

    • Proposed as answer by
      Yuki SunMicrosoft contingent staff
      Friday, December 30, 2016 10:00 AM

  • Hello, i´ve tried to install the mscomct2.ocx but couldn´t. Now i´m trying to remove it. Could you help me please?

    Everytime i open excel, it pops up a warning «Te file format and extension of «mscomct.ocx» don´t match. The file could be corrupted or unsafe. Unless you trust its source, don´t open it. Do you want to open it anyway?»

    If i agree, the next page is full of codes. If not, i can work normally but,the warning bugs me XD

    Help!!

RRS feed

  • Remove From My Forums
  • Question

  • Microsoft Date and Time Picker is not available in Excel 2016 under the Developer tab then «More Tools». The PC is Windows 10 64 bit running Office 365, 2016, 32 bit. I installed «Microsoft Visual
    Basic 6.0 Common Controls» and registered «mscomct2.ocx». Any suggestions on how this feature can be added to Excel 2016?   Thanks                       

    • Edited by
      sph422
      Wednesday, December 28, 2016 3:01 PM
      typo

All replies

  • Hi sph422,

    This is what I did:

    my environment:
      Windows 10 [64-bit]
      Office 2016 [32-bit]

    1. download «MSCOMCT2.OCX«
        http://danielcurran.com/freeware/MSCOMCT2.cab
    2. copy it to «C:%windows%SysWOW64» folder
    3. run cmd.exe
      3.1. change current directory to «C:%windows%SysWOW64»
      3.2. type «regsvr32 mscomct2.ocx» and [Enter]
    4. reboot Windows

    [*1] 
      If using 64-bit version of Windows, do as the above.

      If using 32-bit version of Windows, do as the below.
        1. download «MSCOMCT2.OCX»
        2. copy it to «C:%windows%System32» folder
        3. run cmd.exe
           3.1. change current directory to «C:%windows%System32«
           3.2. type «regsvr32 mscomct2.ocx» and [Enter]
        4. reboot Windows

    I’d like to know what you did, if the above does not work. 

    Regards,
    Ashidacchi

    • Proposed as answer by
      Yuki SunMicrosoft contingent staff
      Thursday, December 29, 2016 4:48 AM
    • Unproposed as answer by
      Yuki SunMicrosoft contingent staff
      Thursday, December 29, 2016 5:07 AM
    • Edited by
      Ashidacchi
      Thursday, December 29, 2016 5:20 AM
      correct error
    • Proposed as answer by
      Ashidacchi
      Friday, December 30, 2016 10:17 AM

  • Hi sph422,

    >> I installed «Microsoft Visual Basic 6.0 Common Controls» and registered «mscomct2.ocx»

    Where did you put the «mscomct2.ocx» file? As far as I know, how you register the control depends on the version of Windows (32-bit or 64-bit). In your environment with 64-bit Windows, I’d recommend you try taking the following steps to see the
    result:

    1. Extract the MSCOMCT2.cab you downloaded.
    2. Copy the MSCOMCT2.OCX file to C:WindowsSysWoW64:

    3. Go to StartAll ProgramsAccessories (or searching “Command Prompt” using Cortana), Right-click Command Prompt and then click on Run As Administrator. 

    4. At the command prompt, type the following and then press Enter and exist:

    %systemroot%SysWoW64regsvr32.exe mscomct2.ocx

    Hope my clarification is clear and feel free to let me know if you need further assistance on this issue.

    Best regards,
    Yuki Sun


    Please remember to mark the replies as answers if they helped.

    If you have feedback for TechNet Subscriber Support, contact
    tnmff@microsoft.com.

    • Proposed as answer by
      Yuki SunMicrosoft contingent staff
      Friday, December 30, 2016 10:00 AM

  • Hello, i´ve tried to install the mscomct2.ocx but couldn´t. Now i´m trying to remove it. Could you help me please?

    Everytime i open excel, it pops up a warning «Te file format and extension of «mscomct.ocx» don´t match. The file could be corrupted or unsafe. Unless you trust its source, don´t open it. Do you want to open it anyway?»

    If i agree, the next page is full of codes. If not, i can work normally but,the warning bugs me XD

    Help!!

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

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

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)

Drop Down Calendar in Excel 2016

Question Info

Thank you for your kind feedback and I am glad that you have resolved the problem.

In order to close this thread, and to assist others who may search the forum archives for a solution to a similar problem, I would ask you kindly to mark my response as Answer.

48 people were helped by this reply

Did this solve your problem?

Sorry this didn’t help.

Great! Thanks for marking this as the answer.

How satisfied are you with this reply?

Thanks for your feedback, it helps us improve the site.

How satisfied are you with this response?

Thanks for your feedback.

In Excel 2016, where is the «Microsoft Date and Time Picker Control» option? How can I create a pick calendar? I am not a wiz when it comes to codes and am not very trusting when it comes to adding things from sites for a fix. I did a workaround by adding a drop-down list, but this is not ideal.

See Ron de Bruin’s Use a Calendar control or Date Picker to fill in dates page at:

1 person was helped by this reply

Did this solve your problem?

Sorry this didn’t help.

Great! Thanks for marking this as the answer.

How satisfied are you with this reply?

Thanks for your feedback, it helps us improve the site.

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

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

Наша задача — добавить в книгу 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 календарь будет автоматически отображаться на экране.

1. Электромагнитная волна (в религиозной терминологии релятивизма — «свет») имеет строго постоянную скорость 300 тыс.км/с, абсурдно не отсчитываемую ни от чего. Реально ЭМ-волны имеют разную скорость в веществе (например,

200 тыс км/с в стекле и

3 млн. км/с в поверхностных слоях металлов, разную скорость в эфире (см. статью «Температура эфира и красные смещения»), разную скорость для разных частот (см. статью «О скорости ЭМ-волн»)

2. В релятивизме «свет» есть мифическое явление само по себе, а не физическая волна, являющаяся волнением определенной физической среды. Релятивистский «свет» — это волнение ничего в ничем. У него нет среды-носителя колебаний.

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

4. В гравитационном релятивизме (ОТО) вопреки наблюдаемым фактам утверждается об угловом отклонении ЭМ-волн в пустом пространстве под действием гравитации. Однако астрономам известно, что свет от затменных двойных звезд не подвержен такому отклонению, а те «подтверждающие теорию Эйнштейна факты», которые якобы наблюдались А. Эддингтоном в 1919 году в отношении Солнца, являются фальсификацией. Подробнее читайте в FAQ по эфирной физике.

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

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

Тут вызывается календарь не во всех ячейках а только по столбцам 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

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

Понравилась статья? Поделить с друзьями:
  • Windows display language russian windows 10 скачать
  • Windows display language russian windows 10 download
  • Windows disk cleanup windows server 2012
  • Windows disc image burner где лежит
  • Windows did not shut down successfully что делать