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

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

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

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

Поместите файл надстройки из вложения в папку автозагрузки Excel (C:\Program Files\Microsoft Office\OFFICExx\XLSTART).

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

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

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

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

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

а как изменить макрос на первый день недели "воскресенье"?
заранее благодарю!

Да, возможно.

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

Почему-то не скачивается

Добрый день.
Полностью русифицировал, добавил отображение значка «Календарь» во всех ячейках имеющий формат «Дата», а также добавил кнопку «ТД» - текущая дата.
Для не опытных написал макрос («Включить надстройку Excel через vba.xlsm»), чтобы автоматически установить надстройки.

Инструкция:
1) Две файлы вложить в одну папку («samradDatePicker2019.xla» и «Включить надстройку Excel через vba.xlsm»;
2) Запустить файл «Включить надстройку Excel через vba.xlsm»;
3) Нажать кнопку «Запустить настройку».

Макрос автоматически задаст пути и начнёт установку:
- Полный путь к файлу «samradDatePicker2019»
- Полный путь к папке «AddIns» + «samradDatePicker2019»
- Полный путь к папке «XLSTART» + «samradDatePicker2019»

Скачать: http://sevak-world.web-box.ru/blog/Date-Picker-excel

Спасибо, работает как часики.

КлаСС Удобно и быстро

СПАСИБО ОГРОМНОЕ!!!! Очень сильно облегчило работу

Супер!!!

Отлично работает, огромное спасибо !!!

Ай, СПАСИБААА...

Спасибо тебе огромное!!!

дай бог тебе здоровья , добрый человек. Клевая штука, аж тащусь

Спасибо!!! наконец-то я нашла этот волшебный календарик!!! еще раз ОООООООООГРОМНОЕ СПАСИБО!!!!!

Крутая штука, спасибо!

Спасибо!!!!!

Спасибо

Игорь, а как поменять формат вставляемой даты, допустим хочу 20.12.14, а надстройка дает 20.12.2014?

Здравствуйте, классный календарик! только...
в книге с общим доступом не фурычит(не работает.)).
Можно ли как-то это исправить?

В обычном режиме и режиме разметки страницы надстройка работает, а в страничном (по моему самый удобный режим) - даже не появляется в контекстном меню. Это только у меня так? И если это можно побороть, то как? Спасибо!

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

Супер! Спасибо огромное! Очень удобно

Календарь не работает в объединенных ячейках! как исправить?

Проще переписать вам и выложить сюда, а то замучают с 64 битными системами, человек который не знаком с VBA сам это вряд ли сделает.

если у вас 64-битная Windows, - то не будет работать
(читайте комментарии к статье, - ниже написано, как это исправить, или где найти универсальную версию)

Просто не я этот скрипт писал (его автор - samrad)
А дорабатывать чужие скрипты, делая их универсальными, как-то нет особого желания.

А для 14 офиса данный скрипт работает? Что-то никак не получается, хотя на 7 установилось с первого раза

Не знаю, что у вас там катит, или не катит,
но в качестве пароля на проект VBA, цифра 1 подходит к обеим выложенным версиям надстройки
(только что проверил)

единичка не катит)

А вы попробуйте ВНИМАТЕЛЬНО прочитать статью (всего-то несколько предложений), - и, возможно, найдёте там пароль...

у меня VBA запаролен, и изменить под 64 разрядку не получается. какой пароль или как это можно сделать по другому
?

Надстройка работает в любой ячейке, необходимо вызвать контекстное меню (нажать правую клавишу мыши на требуемой ячейке), в появившемся списке кликнуть пункт "Выбрать из календаря"

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

Если нужны будут даты до сегодняшнего дня, то просто меняем список.

Быстро и сердито.

Для работы этого файла в EXCEL 2010 в системе x64 нужно исправить код, а точнее добавить PtrSafe между Declare и
Function

Спасибо большое, искал такую штуку пол года

Здравствуйте Антон.
Отличная программа, а почему работает только в ячейках, в которые уже внесена дата?
Помойму, чаще небходимо вносить в ячейку дату, чем ее менять.
Можно сделать так, что бы календарик появлялся на любой ячейке с форматом дата?

Подскажите пожалуйста, почему "Исправленная надстройка (первый день недели - понедельник)" не работает в связке со скриптом записи всех изменений в книге на отдельный лист LOG.
Скрипт в txt выложил на sderni.ru/168193

Для этого надо в коде найти все WinAPI функции (их там 8 штук, в верхних строках модулей),
и переписать их, сделав универсальными
Как это сделать — написано здесь: http://excelvba.ru/articles/WinAPI

Например, вместо

Private Declare Function GetOSVersion Lib "Kernel32" Alias "GetVersionExA" _
                                      (lpVersionInformation As OSVERSIONINFO) As Long

написать

#If VBA7 Then    '  Office 2010
    Private Declare PtrSafe Function GetOSVersion Lib "Kernel32" Alias "GetVersionExA" _
                                          (lpVersionInformation As OSVERSIONINFO) As Long
#Else    '  Office 2003-2007
    Private Declare Function GetOSVersion Lib "Kernel32" Alias "GetVersionExA" _
                                          (lpVersionInformation As OSVERSIONINFO) As Long
#End If

И так для всех 8 функций

подскажите, как настроить для 64-битной системы

Сделал кто-нибудь такой вариант?
Хотелось бы чтобы иконка календарика показывалась всегда для определенного диапазона ячеек.

Просто добавьте кнопку "Выбор даты" в Normal.dotm (то есть это начиная с Word 2007).

Подскажите пожалуйста, где нужно подправить, чтобы иконка календарика появлялась если выделено больше одной ячейки?

Добрый вечер,
может кто дать готовую надстройку работающую во всех офисах и разной битности ОС.

За ранее спасибо

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

Здравствуйте. Запустил надстройку. Все работает. Только в той ячейке где вставлялась дата, потом не возможно записать уже слово или цифры. Excel ругается "Введенное значение не верно" "Набор значений которые могут быть введены в ячейку ограничен". Ставил в значениях ячейки и текст и числа все равно ругается. Как быть?

Есть ли готовое решение для использования этого календарика не на листе екселя, а на встроенных формах vba? Было бы здорово!

Да, можно.
Сделайте - вам за это даже спасибо скажут.

А можно сделать этот календарик не надстройкой а файликом экселя и запускать его через событие Private Sub Worksheet_SelectionChange(ByVal Target As Range)?

Спасибо, Антон! Помогло. Заработало. Только появился другой косяк. Раньше (в Office 2003 и Winx32) при выделении ячейки с форматом "Дата" справа показывалась иконка. Теперь, если ячейка пустая (формат "Дата"), иконка не появляется. Она появляется только в ячейке с уже вставленной датой и в следующей ячейке ниже. Как сделать, чтоб иконка появлялась во всех ячейках с форматом "Дата"?

Для работы надстройки календаря на Office 2010 x64 необходимо в код всех модулей после Declare вставить PtrSafe. Затем прогнать код на ошибки - нажать F5, сохранить все изменения в надстройке, и произвести цикл закрытия/открытия рабочей книги Excel.

А возможно ли в данной надстройке поменять цвет шрифта/заливки (например на красный) дней определенных дат, либо регулярных дней недели? Речь конечно же идет о праздниках и выходных. И какие изменения необходимо внести в код в связи с этим?

Предполагаю что речь идет о формате отображения дней, месяцев или лет, от даты на календаре. Меняя формат например на "дней", видно сколько осталось дней от даты на календаре до даты под "мышкой", ну и в других случаях соответственно. На формат ячейки это никак не влияет.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
          _             _____            ____ 
__ __ | | __ ___ |_ _| _ _ / ___|
\ \ / / | |/ / / __| | | | | | | | | _
\ V / | < | (__ | | | |_| | | |_| |
\_/ |_|\_\ \___| |_| \__, | \____|
|___/
Введите код, изображенный в стиле ASCII-арт.

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.