Нет dtpicker в excel

3 / 3 / 0

Регистрация: 28.12.2009

Сообщений: 41

1

28.12.2009, 23:21. Показов 36672. Ответов 12


Студворк — интернет-сервис помощи студентам

Доброго времени суток!
У меня Win XP, Office 2003. Начал в Word’е делать пользовательскую форму. Вставил в форму DTPicker. После переустановки системы и офиса при открытии формы в VBA ругается, что некоторые элементы не могут быть отображены и открывает форму без DTPicker’ов. В списке Additional control нет пункта MS DTPicker.
Подскажите, как быть?



0



134 / 79 / 6

Регистрация: 06.04.2009

Сообщений: 192

29.12.2009, 06:51

2

Проверьте, есть ли в каталоге WindowsSystem32 библиотека mscomct2.ocx. Если нет — поищите на другом компе с установленным офиссом, можно более крутым и скопируйте. После этого, в VBA — Tools — References установить птицу на Microsoft Windows Common Controls-2 6.0(SP4). После этого, в Additional control поставить птицу на MS Date & Time Picker. Всё!



0



3 / 3 / 0

Регистрация: 28.12.2009

Сообщений: 41

29.12.2009, 08:26

 [ТС]

3

Цитата
Сообщение от yaser
Посмотреть сообщение

После этого, в VBA — Tools — References установить птицу на Microsoft Windows Common Controls-2 6.0(SP4).

Файл скопировал, но у меня нет в References пункта Microsoft Windows Common Controls-2 6.0(SP4). %(



0



0 / 0 / 0

Регистрация: 28.09.2009

Сообщений: 88

29.12.2009, 13:14

4

После переустановки системы и офиса при открытии формы в VBA ругается, что некоторые элементы не могут быть отображены и открывает форму без DTPicker’ов.

В прошлый раз Вы устанавливали Access в составе Office — поэтому был и DTPicker, библиотека с которым устанавливается именно при полной установке Access.

В этот раз, видимо, Вы решили обойтись без Access…

В стандартной установке ни в 2003 ни в 2007 календаря нет, надо дополнительно в опциях установки Access ставить галку на элементе управления календарь

Можете попробовать «альтернативный» календарь:

http://excelvba.ru/Screenshots… -12-14.JPG

Или такую его версию:

http://excelvba.ru/Screenshots… -06-07.JPG

Файл скопировал, но у меня нет в References пункта Microsoft Windows Common Controls-2 6.0(SP4).

После копирования файла его необходимо зарегистрировать:
(просто скопировать файл недостаточно)

Жмём Пуск — Выполнить
вводим команду regsvr32 MSCOMCT2.OCX
и нажимаем ОК



0



134 / 79 / 6

Регистрация: 06.04.2009

Сообщений: 192

29.12.2009, 15:20

5

Цитата
Сообщение от EducatedFool
Посмотреть сообщение

В стандартной установке ни в 2003 ни в 2007 календаря нет, надо дополнительно в опциях установки Access ставить галку на элементе управления календарь

Я никогда не ставлю Access, в связи с отсутствием необходимости в нём, библиотеку копирую, дальше по описанному сценарию. Необходимости регистрации тоже ни разу не было. Правда, я использую 2000 офис.



0



3 / 3 / 0

Регистрация: 28.12.2009

Сообщений: 41

29.12.2009, 17:37

 [ТС]

6

Цитата
Сообщение от EducatedFool
Посмотреть сообщение

В прошлый раз Вы устанавливали Access в составе Office — поэтому был и DTPicker, библиотека с которым устанавливается именно при полной установке Access.

В этот раз, видимо, Вы решили обойтись без Access…

Можете попробовать «альтернативный» календарь:

Или такую его версию:

После копирования файла его необходимо зарегистрировать:
(просто скопировать файл недостаточно)

Жмём Пуск — Выполнить
вводим команду regsvr32 MSCOMCT2.OCX
и нажимаем ОК

Спасибо! Заработало!
Acces у меня установлен, и, насколько помню, не полностью.

А что это за утилитка такая regsvr32? Расскажите или линк, плиз, киньте. Что это такое, для чего нужно и параметры командной строки. Заранее благодарен.



1



0 / 0 / 0

Регистрация: 28.09.2009

Сообщений: 88

30.12.2009, 07:10

7

Лучший ответ Сообщение было отмечено как решение

Решение

Линк нужен?

Пожалуйста

Средство Regsvr32 (Regsvr32.exe) предназначено для регистрации и отмены регистрации элементов управления OLE, например автоматически регистрируемых DLL- или OCX-файлов.

regsvr32

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

Синтаксис

regsvr32 [/u] [/s] [/n] [/i[:cmdline]] dllname

Параметры

/u Отменяет регистрацию сервера.
/s Задает запуск regsvr32 без вывода сообщений на экран.
/n Указывает не вызывать DllRegisterServer. Этот параметр можно использовать с параметром /i.
/i:cmdline Вызывает DllInstall с помощью дополнительной передачи [cmdline]. При использовании с параметром /u вызывает удаление dll.

dllname Задает имя файла dll для последующей регистрации.
/? Вывод справки в командной строке.



0



3 / 3 / 0

Регистрация: 28.12.2009

Сообщений: 41

30.12.2009, 09:25

 [ТС]

8

Спасибо!



0



134 / 79 / 6

Регистрация: 06.04.2009

Сообщений: 192

30.12.2009, 15:55

9

Цитата
Сообщение от EducatedFool
Посмотреть сообщение

«альтернативный» календарь

EducatedFool, Вы это сами создали? Это круто!!!



0



0 / 0 / 0

Регистрация: 28.09.2009

Сообщений: 88

31.12.2009, 07:04

10

Цитата
Сообщение от yaser
Посмотреть сообщение

EducatedFool, Вы это сами создали?

Не, это не моя работа.
Календарь этот разработал Avsha с соседнего форума.
Я лишь немного доработал способ вызова — чтобы выбор даты можно было вызывать как функцию с параметрами.

Поначалу я пользовался DTPicker-ами, но при переносе файла на другой комп приходится таскать вместе с файлом бибилиотеку Common Controls (или какую-то другую, не помню уже), а потом ещё и регистрировать её.

Раньше я так и делал (свой файл сопровождал инсталлятором), пока не встретил реализацию календаря от Avsha.
Теперь пользуюсь только ей.



0



4 / 4 / 0

Регистрация: 23.11.2009

Сообщений: 53

05.10.2010, 15:33

11

Цитата
Сообщение от yaser
Посмотреть сообщение

После этого, в Additional control

Ребят не подскажите где именно находиться Additional control



0



134 / 79 / 6

Регистрация: 06.04.2009

Сообщений: 192

06.10.2010, 21:23

12

Цитата
Сообщение от Fire6i9
Посмотреть сообщение

Ребят не подскажите где именно находиться Additional control

Запускаем редактор VBA, п. меню View->Toolbox, на вкладке Controls кликаем ПКМ — результат на лице…



1



3 / 3 / 0

Регистрация: 28.12.2009

Сообщений: 41

19.07.2011, 17:05

 [ТС]

13

А как «возродить» этот элемент в MSO 2007?



0



Элемент управления пользовательской формы 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.

{quote}{login=Tatyana Ivanova}{date=22.11.2011 06:06}{thema=Как установить DTPicker на другом компьютере?}{post}При переносе файла с W7 на Windows Datacenter Server перестал находиться DTPicker. В Tools — References рядом с библиотекой MS Windows Common Control галка стоит, «missing» нет.  
Что можно сделать? Что лучше для ввода даты использовать, чтобы при переносе проблем не было?{/post}{/quote}  

  Я делал так:  

  Установил Microsoft Date & Time Picker по следующей инструкции с сайта:  

http://social.msdn.microsoft.com/Forums/en/exceldev/thread/c7ccebe5-5d7f-4fb2-ae16-1438e0e736a4  

  Other than having to give a user these type of instructions (assuming they’re correct):  

  How to install ‘Microsoft Date & Time Picker’ if it’s missing:  

  * Download MSCOMCT2.OCX  

http://activex.microsoft.com/controls/vb6/MSCOMCT2.CAB  

  * Save downloaded file in relevant directory:  

  For Windows 95, 98, or ME:  
c:windowssystem  

  For Windows NT or 2000:  
c:WINNTsystem32  

  For Windows XP or 7:  
c:windowssystem32  

  * Register the library file:    
eg:  Start > Run > regsvr32 windowssystem32MSCOMCT2.OCX  

  For Windows 95, 98, or ME:  
regsvr32 windowssystemMSCOMCT2.OCX  

  For Windows NT or 2000:  
regsvr32 WINNTsystem32MSCOMCT2.OCX  

  For Windows XP or 7:  
regsvr32 windowssystem32MSCOMCT2.OCX  

  You should see a message saying «DllRegisterServer … succeeded»    

  Может поможет!

@chamiralakmal 

Doesn’t the calendar control also work?

The control element «Microsoft MonthView Control 6.0 (SP4) can also not be found under other controls. The nice thing about the Date and Time Picker is that you can provide a date input field with little effort, which always delivers a date as the result.

Display the form in the VB editor;

under Extras / Additional Controls … check the entry ‘Microsoft Date and Time Picker Control’;

Drag the new ‘DTPicker’ icon from the toolbox into the form.

Insert a date picker

https://support.microsoft.com/en-us/office/insert-a-date-picker-afa0aea0-d4e3-4424-8e0a-c08f65928f84…

Which Excel version of 365 do you have? … and which operating system? … if it doesn’t work

and you would like to give us feedback (which I would be happy, especially if it works please specify.

Thank you for your patience and time.

Nikolino

I know I don’t know anything (Socrates)

* Kindly Mark and Vote this reply if it helps please, as it will be beneficial to more Community members reading here.

Запустите MS Excel, перейдите на вкладку «Разработчик», запустите Visual Basic.
Нажмите Tools — References. кнопку Browse. и укажите местоположение файла MSCAL.OCX
После этого в списке References появится «Microsoft Calendar Control 2007». Отметьте его и нажмите OK.
Добавьте в проект UserForm и нажмите ПКМ по окну «Toolbox», далее Additional Controls. В списке найдите и отметьте «Элемент управления Календарь 11.0»
А далее вы, надеюсь, разберетесь.

Источник

«DTPicker» (Date and Time Picker) missing after upgrading to Office 365.

LinkBack
Thread Tools
Rate This Thread
Display

«DTPicker» (Date and Time Picker) missing after upgrading to Office 365.

When running my VBA excel program, the DTPicker box that I have on my Userform for users to easily select a date is throwing an «object not found» type error.

I’ve had this problem before on individual machines running earlier versions of excel (2013, 2016) but was remedied by registering the activeX file MSCOMCT2.ocx in either the System32 or Syswow64 folders in the C:windows directory.

All the pc’s that run this file have the OCX file registered and are getting the same error.

In VBA developer, the userform toolbox shows the icon where the DTPicker should be, but is blanked out of sorts. See below (circled in red):

Perhaps I’m missing something simple, as I wouldn’t be surprised. I created this program awhile back and don’t use VBA often at all.

Any help would be fantastic!

Re: «DTPicker» (Date and Time Picker) missing after upgrading to Office 365.

I’d avoid use of Date Picker. It’s only available for 32 bit install of Office and not for 64 bit.

While majority of people use 32 bit install, there are few like myself that use 64 bit.

There are few custom date picker, that’s available out there. I’d recommend following myself.
https://trevoreyre.com/portfolio/excel-datepicker/

It’s stand alone addin and once imported into project, does not require any install on user side.

Источник

DTpicker not available even after registering MSCOMCT2.OCX

LinkBack
Thread Tools
Display

DTpicker not available even after registering MSCOMCT2.OCX

I have some Excel macros that use DTPicker and I have always been able to run them in different machines by the registering MSCOMCT2.ocx, after copying it to windowssyswow64, then registering it via cmd admin: «Regsvr32 c:windowssyswow64mscomct2.ocx»

On one specific machine I still get the «Could not load an object because it is not available on this machine» error, in spite of having followed the procedure above
step by step. I checked via regedit that MSCOMCT2.ocx is registered.

The system runs on Win7 64bits, Office 2010.

Any thoughts of what may be going on? I read something about an incompatiblity with IE10 but this machine runs IE8.

Re: DTpicker not available even after registering MSCOMCT2.OCX

Hello
Welcome to the forum
* Extract The File Named ‘mscomct2’ >> Copy The Extracted Files
* Navigate To C:Windows|System32 (32 Bit) Or C:WindowssysWOW64 (64 Bit)
* Paste The Files In The Location As Shown In Previous Step
* From Start Menu >> Type ‘cmd’ >> Right-Click >> Run as administator
* In cmd Window Type : ‘regsvr32 mscomct2.ocx’
* In 64 Bit Make Sure That The Path Is C:WindowssysWOW64 In cmd Window

*After Registering The ocx File, Open Excel File And Insert A UserForm
* Right-Click ToolBox >> Click ‘Additional Controls’ >> Select ‘Microsoft Date and Time Picker’

Re: DTpicker not available even after registering MSCOMCT2.OCX

Thanks, but that is the procedure I have been doing and it has been working fine — except on one specific machine where, in spite of having done it step by step, I continue to get the error when running the macro.

Re: DTpicker not available even after registering MSCOMCT2.OCX

You’re welcome. I know that you applied the steps but I posted again may be you forgot a step
Can you post snapshot of the error .

Re: DTpicker not available even after registering MSCOMCT2.OCX

Thanks again Yasser! Next Monday I will have access to that specific machine and will send you the snapshots. Best regards!

Re: DTpicker not available even after registering MSCOMCT2.OCX

Dear Yasser, please find attached the snapshots required. In spite of the language, I believe the images can be understood:

1- Mscomct2.ocx properly registered:

2- When running the macro on Excel, error message: Can not load an object because it is not available on this computer

3- Due to the error, date controls are not available:

4- This is how it should look like, running fine in other machines:

Re: DTpicker not available even after registering MSCOMCT2.OCX

Hello
Try go to References in Tools and if any Missing found (uncheck these missing options)

Re: DTpicker not available even after registering MSCOMCT2.OCX

Is that computer perhaps running 64bit Office as well as 64bit Windows? If it is, you cannot use that control.

Re: DTpicker not available even after registering MSCOMCT2.OCX

So that I ask the proper question to the user with the machine that has the error, about «. go to References in Tools and if any Missing found (uncheck these missing options)» > can you please confirm that I am supposed to check what is seen in the snapshot attached (taken from my machine)? I understand that any missing references would/will be identified as such. Once I get the confirmation I will ask the user to check it for me.

Dear xlnitwit, I will check if that machine is running 32bit or 64bit Office and revert.

Re: DTpicker not available even after registering MSCOMCT2.OCX

News is that checking References in Tools there is no Missing found BUT machine is running 64bit Office!! Is there any workaround for that?

Re: DTpicker not available even after registering MSCOMCT2.OCX

There is no 64bit version of the Common Controls. You might consider using a userform instead- there are many examples of ‘homegrown’ date picker forms on the internet.

Re: DTpicker not available even after registering MSCOMCT2.OCX

Try this date picker and it is ready for you to use
Have a look at the code in userform and in worksheet module

Re: DTpicker not available even after registering MSCOMCT2.OCX

Thank you all and thanks Yasser for the xlsm file: great help!!

Re: DTpicker not available even after registering MSCOMCT2.OCX

You’re welcome
Glad we can offer some help for you

Re: DTpicker not available even after registering MSCOMCT2.OCX

Re: DTpicker not available even after registering MSCOMCT2.OCX

Just wanted to thank you guys. This worked great! I can’t believe that this is still an issue. 2020 and I’m using Office 365 on Windows 10. Very much appreciated, thank you.
Lee

Re: DTpicker not available even after registering MSCOMCT2.OCX

Agreed, thanks for this precise description of what happened to me just now and resolution.

Out of interest, does anyone know why the DTpicker control doesn’t work on 64bit Office365? I.e. even when you have registered mscomct2.ocx and selected the relevant reference?

Re: DTpicker not available even after registering MSCOMCT2.OCX

It was compiled for 32bit platforms.

Re: DTpicker not available even after registering MSCOMCT2.OCX

How to make use of DatePicker.xlsm file inside VBA UserForm?

Re: DTpicker not available even after registering MSCOMCT2.OCX

We are happy to help, however whilst you feel your request is similar to this thread, experience has shown that things soon get confusing when answers refer to particular cells/ranges/sheets which are unique to your post and not relevant to the original.

Please see Forum Rule #4 about hijacking and start a new thread for your query.

If you are not familiar with how to start a new thread see the FAQ: How to start a new thread

Ali

Enthusiastic self-taught user of MS Excel who’s always learning!
Don’t forget to say «thank you» to anyone who has offered you help in your thread. You can reward them by clicking on * Add Reputation below theur user name on the left, if you wish.

Forum Rules (updated September 2018): please read them here.
How to use the Power Query code you’ve been given: help here. More about the Power suite here.

Источник

How to add Calendar, Date-Picker?

I need to add a Calendar Date Picker in Excel 2013.

I found that the MonthView and the DT Picker are no longer in the ActiveX menu and the links for a CAB file that supposedly contains these does not work. There are instruction documents, but they rely on a control that doesn’t exist.

I have an Excel Addin that does what I want, but I want to do this with VBA rather than install the Addin on every machine that will use this.

5 Answers 5

Once you have registered the mscomct2.ocx control (YOU WILL NEED TO REGISTER THIS FILE ON ALL COMPUTERS THAT WILL USE THIS WORKBOOK!), you can either add one of below controls in the Worksheet or in a UserForm:

  • Date and Time Picker (DTPicker), left/top of screenshots
  • MonthView, right/bottom of screenshots

WORKSHEET (ActiveX)

  1. In Developer tab, Controls group, click Insert, then bottom right button for More Controls.
  2. Scroll down and select Microsoft Date and Time Picker Control 6.0 (SP6) or Microsoft MonthView Control 6.0 (SP6) then click OK.
    |
  3. When you are out of Design Mode, clicking on the DTPicker control is like this, while the MonthView takes more space:
    |

UserForm

  1. In the Toolbox for the UserForm selected, right click on empty space of the Controls tab, click Additional Controls
  2. Scroll down and tick Microsoft Date and Time Picker Control 6.0 (SP6) or Microsoft MonthView Control 6.0 (SP6):
    |
  3. Now the controls are in your Controls tab to add on UserForms
  4. Default size of the controls on UserForm:

In either way, you will need to implement the actions when you click on these controls.

Источник

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

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

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

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

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

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

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

Изначально на панели инструментов 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 на пользовательской форме с любым именем:

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

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

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

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

Результат работы кода:

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

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

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

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

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

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

Источник

Adblock
detector

Понравилась статья? Поделить с друзьями:
  • Нет 3d карта в excel
  • Несущественная потеря точности excel что
  • Нестрогий поиск в excel
  • Нестандартные диаграммы для excel
  • Нестандартная трубчатая диаграмма в excel