Элемент управления пользовательской формы DTPicker (поле с календарем), предназначенный для выбора и ввода даты. Примеры кода VBA Excel с DTPicker.
UserForm.DTPicker – это элемент управления пользовательской формы, представляющий из себя отформатированное текстовое поле с раскрывающимся календарем, клик по выбранной дате в котором записывает ее в текстовое поле.
При вызове календаря пользовательская форма теряет фокус – это видно на изображении. При редактировании даты непосредственно в текстовом поле DTPicker, формат поля позволяет изменять элементы даты (день, месяц, год) по отдельности.
Чтобы перемещаться между элементами даты, необходимо, или выбирать элемент мышью, или нажимать любой знак разделителя («.», «,» или «/») на клавиатуре. А клик по знаку «+» или «-», соответственно, увеличит или уменьшит значение элемента даты на единицу.
Если в элемент «год» ввести однозначное число или двузначное число, не превышающее двузначный остаток текущего года, через пару секунд автоматически добавятся первые две цифры текущего столетия (20). Если вводимое двузначное число превысит двузначный остаток текущего года, автоматически добавятся первые две цифры прошлого столетия (19).
DTPicker – это сокращение от слова DateTimePicker, не являющегося в VBA Excel ключевым словом, как и DatePicker.
Добавление DTPicker на Toolbox
Изначально на панели инструментов Toolbox нет ссылки на элемент управления DTPicker, поэтому ее нужно добавить самостоятельно.
Чтобы добавить DTPicker на панель инструментов Toolbox, кликните по ней правой кнопкой мыши и выберите из контекстного меню ссылку «Additional Controls…»:
В открывшемся окне «Additional Controls» из списка дополнительных элементов управления выберите строку «Microsoft Date and Time Picker Control»:
Нажмите кнопку «OK» и значок элемента управления 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 |
Данный код должен быть размещен в модуле формы. Результат работы кода:
Применение свойства 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 |
Результат работы кода:
Таблица специальных символов и строк, задающих пользовательский формат даты и времени (регистр символов имеет значение):
Символы и строки | Описание |
---|---|
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 – это сокращение от слова DateTimePicker, не являющегося в VBA Excel ключевым словом, как и DatePicker.
Надстройка samradDatePicker (русифицированная) для облегчения ввода даты в ячейки листа Excel.
Добавляет в контекстное меня ячеек пункт выбора даты, а при выделении ячеек, содержащих дату, справа от ячейки отображает значок календаря.
Поместите файл надстройки из вложения в папку автозагрузки Excel (C:Program FilesMicrosoft OfficeOFFICExxXLSTART).
В контекстном меню ячеек появляется новый пункт — «Выбрать дату из календаря«.
Рядом с ячейками, в которые уже введена дата, будет отображаться маленький календарик, щелчок по которому вызовет большой календарь — для выбора даты.
Второй прикреплённый к статье файл — та же надстройка, только в которой неделя начинается с понедельника (в оригинале надстройки — с воскресенья)
Пароль на проект VBA — 1 (единица)
PS: Этот макрос написал не я (автор — samrad)
Файл с макросом взят на просторах интернета.
Поскольку макрос делал не я, — доработками его я не занимаюсь, никаких гарантий работы дать не могу, по использованию не консультирую.
Всплывающий календарь
Если вам часто приходится вводить даты в ячейки листа, то делать это вручную неудобно. Для ввода именно сегодняшней даты можно воспользоваться функцией СЕГОДНЯ (TODAY), сочетанием клавиш Ctrl+; или макросом, но если нужны разные даты из прошлого или будущего, то вбивать их руками долго.
К сожалению, в стандартном арсенале средств Excel нет встроенного выпадающего календаря (в отличие от Word), да еще и в последних версиях, начиная с Excel 2007, Microsoft зачем-то убрала из стандартного комплекта поставки библиотеку mscalc.osx, которая позволяла быстро создать пользовательскую форму с календарем.
Естественно, это «узкое место» не осталось без внимания опытных пользователей и экспертов Excel MVP, которые оперативно создали несколько интерактивных календарей на макросах для удобного ввода дат. Вот подборка неплохих, на мой взгляд, бесплатных вариантов:
Windows Date Picker Автор: Ron de Bruin Цена: бесплатно Ссылка
|
|
Excel Date Picker Автор: Jim Cone Цена: бесплатно Ссылка
|
|
Mini Calendar and Date Picker Автор: VERTEX Цена: бесплатно. Ссылка в Office Apps Store
|
|
Date Picker Автор: Sam Radakovitz, руководитель команды программистов Excel в Microsoft Цена: бесплатно Сайт автора умер, ссылки не работают, но можно скачать заботливо сохраненную мной когда-то копию здесь.
|
P.S.
Установка надстроек:
- в Excel 2003 и старше — меню Сервис — Надстройки — Обзор (Tools — Add-ins — Browse)
- в Excel 2007 и новее — Файл — Параметры — Надстройки — Перейти — Обзор (File — Options — Add-ins — Go To — Browse)
Ссылки по теме
- Всплывающий календарь из надстройки PLEX
- Автоматический ввод даты при изменении ячейки
- 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
-
Edited by
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 WindowsI’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
-
Proposed as answer by
-
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
-
Proposed as answer by
-
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!!
- 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
-
Edited by
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 WindowsI’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
-
Proposed as answer by
-
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
-
Proposed as answer by
-
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!!
- 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
-
Edited by
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 WindowsI’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
-
Proposed as answer by
-
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
-
Proposed as answer by
-
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. Для этого:
- Выделить ячейку в которую необходимо вставить дату.
- Перейти на вкладку VBA-Excel.
- Выбрать команду Вставить дату.
- В диалоговом окне Календаря выбрать нужную дату.
Работа с формой календаря
Форма календаря имеет достаточно широкий функционал.
- Можно быстро перейти к текущему числу.
- Быстро переключить месяц путем выбора его из списка.
- Изменять год с помощью переключателей.
- При выборе даты отображаются дни недели и подсвечиваются выходные дни.
- Вы можете вызвать окно ввода даты и продолжать работать с данными. Закрывать окно нет необходимости.
- Закрыть календарь можно в любой момент путем нажатия на крестик в правом верхнем углу.
Всплывающий календарь
Если вам часто приходится вводить даты в ячейки листа, то делать это вручную неудобно. Для ввода именно сегодняшней даты можно воспользоваться функцией СЕГОДНЯ (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
Удачи с экспериментами