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

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

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

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

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

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

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

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

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

Комментарии

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

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

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

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

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

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

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

Насколько мне известно, вариант отображения даты зависит от формата ячейки (на ячейке правой кнопкой, "Формат ячеек" вкладка "Число" "Дата" либо из "(все форматы)" выбрать нужный, при желании отредактировав). Календарь ни при чём.
Отличный календарь, жаль, что не выходит у меня настроить его на х64...
Куда вот это вставить?
If Win64 Then
Declare Function MyMathFunc Lib "User32" (ByVal N As LongLong) As LongLong
Else
Declare Function MyMathFunc Lib "User32" (ByVal N As Long) As Long
If

что такое дисплей формат (внизу файла). Связано это как то с изменением формата даты и если да, то как это работает (дата вставляется в одном и том же формате)

круть!

Не разобрался, что и где добавить в 64х версии 2010 офиса. Может, кто понял и поделится? Буду признателен

Ага, разобрался, работает и в десятом офисе.

Windows 7 Enterprise SP1 EN x84, Office 2010 Pro x32, - календарь работает нормально и на защищенных листах.(без иконки, я её отключил)

Спасибо, в 2003 Excele у меня этот календарь (по ссылке с другого сайта) на заблокированных листах работает частично. С кнопки Date Picker на панели открывается календарь, но рядом с ячейкой иконка не появляется. В 2010 вообще не заработал, хотя версия с этого сайта работала, но как-то криво.

Смотри тут

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

А с чего вы взяли, что иконка берется не с диска?

Макрос DisplayIcon рисует прямоугольник возле ячейки, и выполняет заливку этой фигуры картинкой из файла

oShape.Fill.UserPicture sPathToIcon
А файл этот предварительно создаётся макросом CreateIconFile.
Сам графический файл побайтово формируется в процедуре WriteIcon, и записывается на жесткий диск.

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

Кстати! А можно сделать так, чтоб календарик также, как и в Excel, млжно было бы вызвать в Word&

Очень хороший календарик! Правда, одно "но". Лично мне привычнее, чтоб дни недели распологались бы вертикально.

При запуске Excel 2003 выкидывал ошибку и закрывался.
Помогло: запустил скачанный файл, открыл Visual Basic, открыл проект - forms - FrmCal
закрыл Visual Basic. Ничего не менял. Перезапустил Excel.
Всё заработало. Странно, но помогло )))

Очень удобно, спасибо!
Скинул сюда "c:\Users\Администратор\AppData\Roaming\Microsoft\AddIns"
Exсel 2010-й, папки "....OFFICExx\XLSTART" у меня нет.

а можно внизу где "вперед... дней" рядом в углу установить значок "сегодня", чтобы при нажатии на него сразу показывался текущий месяц?

Еще раз привет !
До сих пор у меня не получилось установить эту функцию. При запуске Эксель выдаёт информацию об ошибке (в переводе):

Недопустимый вызов процедуры или параметр (Ошибка 5)
Некоторая часть запроса не может быть закончена. Эта ошибка имеет следующие причины и решения:
Параметр вероятно превышает диапазон разрешенных значений. Например, функция Sin может только принять значения в пределах некоторого диапазона. Положительные параметры меньше чем 2,147,483,648 приняты, в то время как 2,147,483,648 генерирует эту ошибку.
Проверьте(Отметьте) диапазоны, разрешенные для параметров.
Эта ошибка может также произойти, если попытка сделана, чтобы назвать(вызвать) процедуру, которая не правильна(допустима) на текущей платформе. Например, некоторые процедуры могут только быть правильны(допустимы) для Windows Microsoft, или для Macintosh, и так далее.
Проверьте(Отметьте) определенную платформой информацию о процедуре.
Для дополнительной информации, выберите рассматриваемый элемент(пункт) и нажмите F1 (в Windows) или СПРАВКЕ (на Macintosh).

Что это значит? Не могу понять! Заранее спасибо

Добавил в заголовки к этой и другим статьям, описывающим макросы с применением WinAPI, причины и способы устранения проблем несовместимости макросов при работе в 64-битных Windows и Office 2010

Пытался запустить на 64-битной платформе, не работает. Excel говорит, что ошибка компиляции в скрытом модуле modMouse. Что я делаю не так?

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

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

Привет, учитель!
Скачал я надстройку, сохранил в положенном месте, а в Экселе ничего не изменилось и не добавилось. Может я чего то не понимаю?

вот русский вариант с понедельником

Спасибо за исправленную версию, прикрепил доработанный файл надстройки к статье.

rapidshare.com/files/422489464/samradDatePicker_ru_monday.rar
вот русский вариант с понедельником, спасибо за рекомендации, как сделать

В коде формы frmCal в строчке Переменная077 = Weekday(Переменная0175, vbSunday) поменяй на (Переменная0175, vbMonday), a затем поменяй на самой форме дни недели соответственно.

А как сделать, что бы неделя начиналась с пн?

ДА прибудет с тобой сила мастер ВбА

Надо найти функцию CreateIconFile, и указать в ней путь к вашему файлу с иконкой:

Public Sub CreateIconFile()
    sPathToIcon = "D:\Distr\аватары\EducatedFool.bmp"
End Sub

после чего сохранить файл надстройки, и перезапустить его.

Результат:

а как поменять иконку которая с права в ячейке отображается???

Спасибо, все работает :)

Прошу прощения, не увидел сразу )

Что-не работает ((
Пароль от проекта не подскажите. В свою очередь готов поделиться некими полезными инструментами.

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

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

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

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