Dtpicker vba excel 2016

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

Содержание

  1. VBA Excel. Элемент управления DTPicker
  2. Элемент управления DTPicker
  3. Добавление DTPicker на Toolbox
  4. Свойства поля с календарем
  5. Примеры кода VBA Excel с DTPicker
  6. Программное создание DTPicker
  7. Применение свойства CustomFormat
  8. Создание границ интервала дат
  9. Excel Date Picker
  10. How to Insert Date Picker in Excel?
  11. Key Takeaways
  12. Example 1 –The Date Picker Insertion
  13. Example 2 –The Code Explanation
  14. Example 3 – The Date Picker Operation
  15. Frequently Asked Questions
  16. Recommended Articles

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.

Источник

Excel Date Picker

How to Insert Date Picker in Excel?

In Excel, the drop-down calendar is technically known as Microsoft Date and Time Picker Control. It is inserted with the help of ActiveX Control and is not available for the 64-bit version of MS Excel.

Table of contents

Key Takeaways

  • The drop-down calendar is technically known as Microsoft Date and Time Picker Control in Excel.
  • The Microsoft date picker does not work on the 64-bit version of Excel.
  • The drop-down calendar is inserted with the help of ActiveX Controls in the Controls group of the Developer tab.
  • The Microsoft Date and Time Picker Control 6.0 (SP6) is selected in the “more controls” box to insert the drop-down calendar.
  • The file should be saved with the extension “.xlsm” ( macro-enabledMacro-enabledTo enable macros simply means to run or execute a macro in a particular file in order to save the time spent on repetitive actions. To enable macros, select “enable all macros” from the “trust center” of the File tab (in the “options” button).read more ) to run the VBA code.
  • In the drop-down calendar, the date, month, and year can be changed with the help of the various arrow buttons.

Example 1 –The Date Picker Insertion

We have the data of the employees of an organization. The different fields are–”employee code,” “employee name,” “employee joining date,” and “employee department.”

A drop-down calendar makes it easy for the user to enter the joining dates. For this, we insert an ActiveX Control named “Microsoft Date and Time Picker Control 6.0 (SP6).”

The steps to create a drop-down calendar are listed as follows (the first three steps make the Developer tab visible):

  1. Step 1: Under the “file” menu, choose “options.”

Step 2: A dialog box named “excel options” opens. In the option “customize ribbon” (on the left edge of the dialog box), click on the checkbox for the “developer” tab. Click “Ok.”

Step 3: The Developer tab appears at the end of the Excel ribbon.

Step 4: In the Insert tab (under the Controls group), choose “more controls” from ActiveX Controls.

Step 5: Choose “Microsoft Date and Time Picker Control 6.0 (SP6)” from the list and click “Ok.”

Step 6: Click anywhere on the worksheet to create the drop-down calendar.

Step 7: Right-click on the date picker and choose “properties” from the list.

Step 8: In the “CheckBox” property, change the value from “false” to “true.” This allows the null values to be accepted. Close the “properties” dialog box.

Step 9: Right-click on the date picker and choose “view code” from the contextual menu.

Step 10: In Visual Basic Editor, a code is already written. Replace this existing code with the following code.

Example 2 –The Code Explanation

The explanation followed by the code within a block is given as follows:

#1 – The first statement tells the Excel compiler to run the code whenever a new cell is selected (i.e., the selection is changed). The selected cell is sent to the sub procedure as “target.”

#2 – The next statement sets the height and the width of the date picker to 20 points in Excel.

Note: We use the “with” operator so that we do not refer to “DTPicker1” again and again.

#3 – The “If” clause sets the following criteria:

If any cell is selected in column C, only then does the date picker become visible. The “Intersect” function returns the address if a cell is selected in column C; otherwise, the value is null.

#4 – The “top” property of the date picker is equal to the “top” property value of the selected cell. This means that it goes along with the upper border of the selected cell.

#5 – The next statement sets the “left” property of the date picker equal to that of the next right cell (of the selected cell). This is the distance of the left border (of column D) from the extreme left of the worksheet.

Note: To get the reference of the next right cell, we use the “ Offset Offset The OFFSET function in excel returns the value of a cell or a range (of adjacent cells) which is a particular number of rows and columns from the reference point. read more ” function with “0” as the row argument and “1” as the column argument. This gets a reference to the cell in the next column.

#6 – This statement links the date picker with the target cell. It allows the value selected in the drop-down calendar to be displayed in the cell.

#7 – The “else” statement tells the compiler not to display the date picker when a cell other than that in column C is selected.

#8 – At the end, we close the “If” statement.

#9 – We also close the “with” statement.

#10 – Now, the sub procedure ends.

Example 3 – The Date Picker Operation

With the selection of a cell in column C, the drop-down calendar appears at the top right corner of the selected cell.

The working of the drop-down calendar is explained as follows:

  • The drop-down calendar can be opened by clicking the down arrow.

  • To enter a date in the selected cell, click on that date from the calendar of the required month.

  • To go to the previous or the next month, click the arrow buttons placed at the left and the right side of the calendar.

  • The month can be chosen from the drop-down calendar by clicking on it.

  • The required year can be chosen and changed by clicking the up and down arrow buttons.

Frequently Asked Questions

1. Select the calendar control and put on the “design mode.” Alternatively, drag a corner of the date picker (design mode on) to resize it.
2. In the “properties” window, set the desired height, width, and font.
3. Drag the control when the cursor changes to a four-point arrow. This moves the date picker to the preferred location.
4. Select the date picker and on the Format menu, make changes to “borders and shading.” This changes the border and the color of the date picker.

– To display the billing and shipping dates of customer orders
– To show the departure dates of flights on travel request forms
– To show the joining date of employees in the Excel database of an organization
– To display the date of birth on insurance forms

For selecting the date range, the user has to select the start and the end date of a process. In such cases, the date picker displays two input boxes adjacent to each other.
The date picker control assists the user to insert “to” and “from” dates on a form template. Such range selection in the calendar is often used in flight applications. With the selection of the two dates, the date range is highlighted in the calendar.

Recommended Articles

This has been a guide to the Excel date picker. Here we discuss how to insert the date picker in Excel along with practical examples and a downloadable Excel template. You may learn more about Excel from the following articles –

Источник

 

CATS

Пользователь

Сообщений: 28
Регистрация: 22.04.2019

Чем заменить DTPicker Ecell 2016 64 бита?

 

CATS

Пользователь

Сообщений: 28
Регистрация: 22.04.2019

 

Jack Famous

Пользователь

Сообщений: 10846
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

CATS, просто погуглите DTPicker — кучу инфы выдаёт… Например

тут

же или вот

тут

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

CATS

Пользователь

Сообщений: 28
Регистрация: 22.04.2019

Я вот что-то из этого скачал вот скрин, как это поместить в Userform?

Изменено: CATS26.04.2019 16:01:48

 

Jack Famous

Пользователь

Сообщений: 10846
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

CATS, вызов календаря — это тоже вызов какой-то UserForm, а значит нужно узнать её название в редвкторе, и повесить на какое-нибудь событие ВАШЕЙ формы (например нажатие кнопки) макрос НазваниеФормыКалендаря.Show

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

CATS

Пользователь

Сообщений: 28
Регистрация: 22.04.2019

#6

25.04.2019 14:45:59

Цитата
Jack Famous написал:
вызов какой-то

Вы знаете что такое Userform?

 

Jack Famous

Пользователь

Сообщений: 10846
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

CATS, по прямому переводу))) ну просветите меня, если что-то вас так смутило в моём совете  :D

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

Тут все двояко. Если использовать DTPicker, то все просто это контрол со своими свойствами, выбрал и не нужно больше никаких телодвижений. Но поговаривают, что он иногда глючит (тут мне сказать нечего, потому что с Excel работаю постольку поскольку).
С формой на которой реализован календарь, код будет сложней ту постоянно нужно делать ссылку на значение формы, что бы куда то  вставить дату, причем на сколько я понимаю это нужно делать по событию на самой форме с календарем. Может конечно есть способ проще, но я о таком к сожалению не знаю.
На счет DTPicker, там нужна какая то библиотека, если скачать и поставить куда следует, то все будет работать (после подключения в самой среде программирования).
Пишу , потому что столкнулся с такой проблемой, написал программку с использованием DTPicker , а у начальства не работало потому что не был установлен DTPicker. Ребята из тех. поддержки  скачали и установили библиотеку с DTPicker и все заработало как часы.

Изменено: Nordheim25.04.2019 16:16:03

«Все гениальное просто, а все простое гениально!!!»

 

sokol92

Пользователь

Сообщений: 4445
Регистрация: 10.09.2017

Текущая версия Date Picker на сайте

автора

.

 

CATS

Пользователь

Сообщений: 28
Регистрация: 22.04.2019

#11

26.04.2019 15:32:26

Цитата
vikttur написал:
сможете объяснить дублирование тем?

Нууу, 1 вопрос-1 тема

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Вы и тему о помощи с макросами вторую создали (удалена)

Чем отличаются вопросы?
Как заполнить ячейку зачением? Как записать в ячейку значение? — тоже будем считать разными вопросами?

 

CATS

Пользователь

Сообщений: 28
Регистрация: 22.04.2019

#13

26.04.2019 15:48:46

Цитата
Nordheim написал: На счет DTPicke

Я что-то не могу найти место куда надо положить календарик

Прикрепленные файлы

  • ТТТ.png (55.24 КБ)

 

sokol92

Пользователь

Сообщений: 4445
Регистрация: 10.09.2017

#14

26.04.2019 16:01:51

Найдите папку XLSTART

Владимир

Do you need a DatePicker Calendar in your Excel spreadsheets? Follow this quick and simple tutorial to find out how. (If you prefer video, scroll down to the bottom of the page!)

Step 1. Enable Developer Mode in Excel

  • File
  • Options
  • Customize Ribbon
  • Ensure Developer checkbox is enabled

Enable Developer Mode

[sibwp_form id=100]

Step 2. Setup DateTime Control box

  • Microsoft Date and Time Picker Control
  • Click on random cell to place control box
  • Edit or remember the name box of the DateTime Picker, in this case, we will leave it as DatePicker1

Name Date Picker

  • Right click on DateTime Control box
  • DTPicker Object
  • Properties

DTPicker Object > Properties

  • Enable CheckBox

Enable Checkbox

Excel Training Guide

Step 3. Copy the Visual Basic code

To assign column A as a DatePicker, copy the following code:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) With Sheet1.DTPicker1 .Height = 20         .Width = 20         If Not Intersect(Target, Range("A:A")) Is Nothing Then             .Visible = True             .Top = Target.Top             .Left = Target.Offset(0, 1).Left             .LinkedCell = Target.Address         Else             .Visible = False         End If     End With                      End Sub

Code language: PHP (php)
  • Right click the DateTime Control box
  • View Code

View Code

  • Replace all of the existing code with the code from above
  • Close the Visual Basic editor

Paste Code

  • Deselect Design Mode

Deselect Design Mode

  • Click on any cell to remove DateTime Control box
  • Click on any cell in Column A to add a Date

Pick Date

Congratulations!

Important: Make sure that when you save the spreadsheet, you “Save As: Macro enabled workbook”

How to have multiple columns with DatePickers

The above steps only work for single columns, or columns that are right next to each other. If you wanted the DatePicker column to be in column B instead, then you would change the line

If Not Intersect(Target, Range("A:A")) Is Nothing Then

Code language: JavaScript (javascript)

to

If Not Intersect(Target, Range("B:B")) Is Nothing Then

Code language: JavaScript (javascript)

Or if you wanted it from Column E to Column G, then you would change that line to

If Not Intersect(Target, Range("E:G")) Is Nothing Then

Code language: JavaScript (javascript)

However, if you need a DatePicker in two or more non-adjacent columns, then you will need a separate DatePicker (each with a separate name in the Name Box) for each non-adjacenet group. For example, let’s say we need column A, B, E, F, and H to all be DatePickers. We would need to perform the above steps 3 separate times for 3 separate DatePickers.

  • 1 for columns A, B
  • 1 for columns E, F
  • 1 for column H

The steps will be very similar, but the code will be:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)    With Sheet1.DTPicker1    .Height = 20             .Width = 20             If Not Intersect(Target, Range("A:B")) Is Nothing Then .Visible = True .Top = Target.Top .Left = Target.Offset(0, 1).Left .LinkedCell = Target.Address Else .Visible = False End If End With With Sheet1.DTPicker2    .Height = 20             .Width = 20             If Not Intersect(Target, Range("E:F")) Is Nothing Then .Visible = True .Top = Target.Top .Left = Target.Offset(0, 1).Left .LinkedCell = Target.Address Else .Visible = False End If End With With Sheet1.DTPicker3    .Height = 20             .Width = 20             If Not Intersect(Target, Range("H:H")) Is Nothing Then .Visible = True .Top = Target.Top .Left = Target.Offset(0, 1).Left .LinkedCell = Target.Address Else .Visible = False End If End With End Sub

Code language: PHP (php)

Important legal notice: This post contains affiliate links.  We are compensated for many of our product recommendations.  Pragmatic Ways is a participant in the Amazon Associates affiliate program, as well as other affiliate programs.  While we are always careful to only recommend the products we use and recommend, we want to be open and transparent about our relationship with companies we recommend.

Adam Allard

Hi, I’m Adam Allard. I’m a Full Stack Software Engineer for Northrop Grumman creating web applications for the DoD. At this time I’m primarily working with Java and Angular based applications, although I have some years of experience in various languages and frameworks from previous jobs where I dabbled with Python & Django, C# & Xamarin, PHP, and Bootstrap. My hobbies include time with my family, wondering when the Green Bay Packers will win their next Super Bowl, drinking over-priced beer, and of course learning and teaching.

Recent Posts

link to Unit Conversions

Unit Conversions

The tables below are all the unit conversion factors used in the Unit Converter App tutorial, where we walked through together building out a JavaFX and SceneBuilder interface.

Click here to…

link to How to add JavaFX to Eclipse (the easy way)

How to add JavaFX to Eclipse (the easy way)

Step 1. Download JavaFX

Go to https://gluonhq.com/products/javafx/ and download the appropriate SDK for your operating system. Make sure you download the SDK and make sure you choose the correct…

  • Remove From My Forums
  • Question

  • Hello:

    I inserted the date picker (mscomct2.ocx) in a new Excel 2016 VBA form, and it creates this code automatically:

    Private Sub DTPicker1_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date)

    End Sub

    I could not find an example of VBA code to capture and date once the user selects a data on the form’s calendar control.  I’m sure there is an example, but all I could locate was how to register the data picker.  In other words, how to reference
    the date captured by the calendar control so I can use it in my VBA code.

    Regards,


    Rich Locus, Logicwurks, LLC

    http://www.logicwurks.com

Answers

  • Hi RichLocus,

    The callback «Private Sub DTPicker1_CallbackKeyDown» is not the function to select a data on the form’s calendar control.

    It can only be triggered by pressing the keyboard «up» or «down».

    I set a break point for the callback function, and it could be executed.

    Please look at the gif below:

    Please feel free to ask any questions. Looking forward to hearing from you.

    Best Regards,

    Yuki


    MSDN Community Support Please remember to click «Mark as Answer» the responses that resolved your issue, and to click «Unmark as Answer» if not. This can be beneficial to other community members reading this thread.

    • Marked as answer by

      Friday, August 31, 2018 4:36 PM

  • The DP’s CallbackKeyDown event is an oddity, from memory first need to set a custom format. But just trap its Change event, and in the event return its Value property.

    • Edited by
      Peter Thornton (Excel MVP 2008-13)
      Thursday, August 30, 2018 8:59 AM
    • Marked as answer by
      RichLocus
      Friday, August 31, 2018 4:36 PM

Like this post? Please share to your friends:
  • Dtd запрещен xml excel
  • Dsum excel на русском
  • Dsn excel что такое
  • Dsc word что это
  • Drunk in love word