Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/JP_Сalendar - календарь из стандартных элементов управления - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: _Boroda_, китин  
JP_Сalendar - календарь из стандартных элементов управления
Alex_ST Дата: Четверг, 16.02.2012, 16:42 | Сообщение № 1
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3214
Репутация: 615 ±
Замечаний: 0% ±

2003
В календаре реализован немодальный режим работы формы.
На вкладке настроек можно задать режимы работы календаря: ввод в ActiveCell по двойному или одинарному клику, и скрывать или нет календарь после ввода.

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

Можно оформить календарь как надстройку.
Тогда в меню ячейки будет добавлен пункт вызова календаря.
Для оформления в виде надстройки необходимо в модуле JP_Сalendar_Module снять комментарии со строки Call CalendarMenuCreate в процедуре Sub Auto_Open и со строки Call CalendarMenuDelete в процедуре Sub Auto_Close
К сообщению приложен файл: 8225492.jpg (25.0 Kb) · JP_Calendar-201.zip (43.4 Kb)



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Четверг, 16.02.2012, 16:44
 
Ответить
СообщениеВ календаре реализован немодальный режим работы формы.
На вкладке настроек можно задать режимы работы календаря: ввод в ActiveCell по двойному или одинарному клику, и скрывать или нет календарь после ввода.

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

Можно оформить календарь как надстройку.
Тогда в меню ячейки будет добавлен пункт вызова календаря.
Для оформления в виде надстройки необходимо в модуле JP_Сalendar_Module снять комментарии со строки Call CalendarMenuCreate в процедуре Sub Auto_Open и со строки Call CalendarMenuDelete в процедуре Sub Auto_Close

Автор - Alex_ST
Дата добавления - 16.02.2012 в 16:42
futher Дата: Пятница, 04.10.2013, 17:49 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 20% ±

Всем доброго времени суток!
Подскажите пожалуйста чайнику, что и куда надо запихать чтобы этот календарик заработал?
Надо на одном листе в 5-6 разных местах(ячейках) вставлять дату, через такой календарик это делать будет гораздо приятней).
Добавлю, что предпринимал перед тем как написать сюда:
Открыл файл с календарём в excel, через alt+F11 вошёл в VBA,
скопировал в свой VBAProject модуль JP_Calendar_module,
а также форму JP_Calendar_Frm.
После этого в моём файле всё заработало. Однако, как только я закрыл оба файла (конечно сохранил <_< ), и снова открыл свой файл, уже ничего не работало >(
Видел и на этом, и на альтернативном форуме ещё как минимум 2 варианта подобных календарей, однако этот понравился больше других.
Буду признателен за помощь pray
 
Ответить
СообщениеВсем доброго времени суток!
Подскажите пожалуйста чайнику, что и куда надо запихать чтобы этот календарик заработал?
Надо на одном листе в 5-6 разных местах(ячейках) вставлять дату, через такой календарик это делать будет гораздо приятней).
Добавлю, что предпринимал перед тем как написать сюда:
Открыл файл с календарём в excel, через alt+F11 вошёл в VBA,
скопировал в свой VBAProject модуль JP_Calendar_module,
а также форму JP_Calendar_Frm.
После этого в моём файле всё заработало. Однако, как только я закрыл оба файла (конечно сохранил <_< ), и снова открыл свой файл, уже ничего не работало >(
Видел и на этом, и на альтернативном форуме ещё как минимум 2 варианта подобных календарей, однако этот понравился больше других.
Буду признателен за помощь pray

Автор - futher
Дата добавления - 04.10.2013 в 17:49
SkyPro Дата: Пятница, 04.10.2013, 18:12 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Код из модуля книги тоже перенесли?


skypro1111@gmail.com
 
Ответить
СообщениеКод из модуля книги тоже перенесли?

Автор - SkyPro
Дата добавления - 04.10.2013 в 18:12
futher Дата: Пятница, 04.10.2013, 18:54 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 20% ±

Код из модуля книги тоже перенесли?

если
Код из модуля книги

это код который в ThisWbk был, то - да, перенёс.
там, в исходнике, есть ещё
"Лист 1 (Лист1)"
в нём правда одна строка всего:
Option Explicit
На всякий случай перенёс и её на свой лист :) - Результат тот же (отрицательный)

PS: В исходном файле макрос календаря запускается при нажатии на кнопку, и после этого становится активен в ячейках с датами. Более того, он становится активен и в моём файле! И активен до тех пор пока открыт исходный файл...
Мне кнопка не нужна, достаточно даблклика на нужные ячейки.


Сообщение отредактировал futher - Пятница, 04.10.2013, 18:57
 
Ответить
Сообщение
Код из модуля книги тоже перенесли?

если
Код из модуля книги

это код который в ThisWbk был, то - да, перенёс.
там, в исходнике, есть ещё
"Лист 1 (Лист1)"
в нём правда одна строка всего:
Option Explicit
На всякий случай перенёс и её на свой лист :) - Результат тот же (отрицательный)

PS: В исходном файле макрос календаря запускается при нажатии на кнопку, и после этого становится активен в ячейках с датами. Более того, он становится активен и в моём файле! И активен до тех пор пока открыт исходный файл...
Мне кнопка не нужна, достаточно даблклика на нужные ячейки.

Автор - futher
Дата добавления - 04.10.2013 в 18:54
_Boroda_ Дата: Пятница, 04.10.2013, 19:20 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16734
Репутация: 6534 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
В своей новой книге в модуле книги встаньте на последнюю строку
[vba]
Код
Sub Reload_Appl(): Set Appl = Application: End Sub
[/vba]
в любое место между Sub и End Sub и нажмите F5
Потом введите в любую ячейку дату, Ентер, и 2 раза топните мышой на ячейку с датой.
Если захотите
Можно оформить календарь как надстройку.
Тогда в меню ячейки будет добавлен пункт вызова календаря.
Для оформления в виде надстройки необходимо в модуле JP_Сalendar_Module снять комментарии со строки Call CalendarMenuCreate в процедуре Sub Auto_Open и со строки Call CalendarMenuDelete в процедуре Sub Auto_Close


Еще нужно в JP_Сalendar_Module в процедуре JP_Calendar заменить ThisWbk на ThisWorkbook.

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


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВ своей новой книге в модуле книги встаньте на последнюю строку
[vba]
Код
Sub Reload_Appl(): Set Appl = Application: End Sub
[/vba]
в любое место между Sub и End Sub и нажмите F5
Потом введите в любую ячейку дату, Ентер, и 2 раза топните мышой на ячейку с датой.
Если захотите
Можно оформить календарь как надстройку.
Тогда в меню ячейки будет добавлен пункт вызова календаря.
Для оформления в виде надстройки необходимо в модуле JP_Сalendar_Module снять комментарии со строки Call CalendarMenuCreate в процедуре Sub Auto_Open и со строки Call CalendarMenuDelete в процедуре Sub Auto_Close


Еще нужно в JP_Сalendar_Module в процедуре JP_Calendar заменить ThisWbk на ThisWorkbook.

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

Автор - _Boroda_
Дата добавления - 04.10.2013 в 19:20
Alex_ST Дата: Пятница, 04.10.2013, 20:49 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3214
Репутация: 615 ±
Замечаний: 0% ±

2003
еще нужно в JP_Сalendar_Module в процедуре JP_Calendar заменить ThisWbk на ThisWorkbook.
Саш, спасибо за ответ (у меня запарка, а ты ответил).
Честно говоря, я абсолютно не помню, зачем я переименовал модуль ЭтаКнига в ThisWbk :(
Но разве если МОЙ файл с МОИМ именем модуля книги решить оформить в виде надстройки, то что-то надо переименовывать? Ведь в коде записано обращение к МОЕМУ модулю книги по МНОЮ заданному имени.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
еще нужно в JP_Сalendar_Module в процедуре JP_Calendar заменить ThisWbk на ThisWorkbook.
Саш, спасибо за ответ (у меня запарка, а ты ответил).
Честно говоря, я абсолютно не помню, зачем я переименовал модуль ЭтаКнига в ThisWbk :(
Но разве если МОЙ файл с МОИМ именем модуля книги решить оформить в виде надстройки, то что-то надо переименовывать? Ведь в коде записано обращение к МОЕМУ модулю книги по МНОЮ заданному имени.

Автор - Alex_ST
Дата добавления - 04.10.2013 в 20:49
futher Дата: Суббота, 05.10.2013, 11:08 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 20% ±

в любое место между Sub и End Sub и нажмите F5

Вроде работает, но всё равно только после запуска макроса "вручную".
Как сделать чтобы макрос сам активизировался после даблклика на ячейку с датой?
 
Ответить
Сообщение
в любое место между Sub и End Sub и нажмите F5

Вроде работает, но всё равно только после запуска макроса "вручную".
Как сделать чтобы макрос сам активизировался после даблклика на ячейку с датой?

Автор - futher
Дата добавления - 05.10.2013 в 11:08
RAN Дата: Суббота, 05.10.2013, 13:51 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
futher, ну зачем засорять Готовое решение своими вопросами?
Для этого есть "Вопросы по VBA".
A завтра появится кто-то, кому нужно активизировать по правому клику.
И что от готового решения останется?


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщениеfuther, ну зачем засорять Готовое решение своими вопросами?
Для этого есть "Вопросы по VBA".
A завтра появится кто-то, кому нужно активизировать по правому клику.
И что от готового решения останется?

Автор - RAN
Дата добавления - 05.10.2013 в 13:51
RAN Дата: Суббота, 05.10.2013, 13:56 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
По готовому.
Понадобилось как-то нарисовать календарь на листе.
Вручную оказалось скучно и грустно.
Добавил на календарь кнопочку для автоматизации процесса.
К сообщению приложен файл: JP_Calendar_R-2.rar (45.3 Kb)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПо готовому.
Понадобилось как-то нарисовать календарь на листе.
Вручную оказалось скучно и грустно.
Добавил на календарь кнопочку для автоматизации процесса.

Автор - RAN
Дата добавления - 05.10.2013 в 13:56
_Boroda_ Дата: Суббота, 05.10.2013, 14:40 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 16734
Репутация: 6534 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Леш, извини, ежели чего не так.
Я немного поторопился в предыдущем ответе - переименовать нужно не для преобразования в надстройку, а для включения календаря в другую книгу, без участия твоего файла.
Переписал там свой пост.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЛеш, извини, ежели чего не так.
Я немного поторопился в предыдущем ответе - переименовать нужно не для преобразования в надстройку, а для включения календаря в другую книгу, без участия твоего файла.
Переписал там свой пост.

Автор - _Boroda_
Дата добавления - 05.10.2013 в 14:40
Alex_ST Дата: Суббота, 05.10.2013, 16:10 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3214
Репутация: 615 ±
Замечаний: 0% ±

2003
Саш, ну ты и поправил свой пост...
Я честно, сделав вид что не знаю, что ты хотел сказать его прочёл...
Теперь уж точно без пузыря не понять :D



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеСаш, ну ты и поправил свой пост...
Я честно, сделав вид что не знаю, что ты хотел сказать его прочёл...
Теперь уж точно без пузыря не понять :D

Автор - Alex_ST
Дата добавления - 05.10.2013 в 16:10
Alex_ST Дата: Суббота, 05.10.2013, 16:14 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3214
Репутация: 615 ±
Замечаний: 0% ±

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

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



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
Как сделать чтобы макрос сам активизировался после даблклика на ячейку с датой?

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

Автор - Alex_ST
Дата добавления - 05.10.2013 в 16:14
RAN Дата: Вторник, 08.10.2013, 19:55 | Сообщение № 13
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Отправил я человека отсюда, а зазря.
В автоёпене строчки не хватает
[vba]
Код
  ThisWbk.Reload_Appl
[/vba]
А может Appl и не глючило, а просто не запускалось?


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеОтправил я человека отсюда, а зазря.
В автоёпене строчки не хватает
[vba]
Код
  ThisWbk.Reload_Appl
[/vba]
А может Appl и не глючило, а просто не запускалось?

Автор - RAN
Дата добавления - 08.10.2013 в 19:55
Alex_ST Дата: Четверг, 10.10.2013, 22:28 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3214
Репутация: 615 ±
Замечаний: 0% ±

2003
А ведь и верно: забыл в Auto_Open вставить Call ThisWbk.Reload_Appl :'(
Но у меня почему-то и так работало.
Спасибо, Андрей, за поправку. Может, и в самом деле будет лучше работать.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеА ведь и верно: забыл в Auto_Open вставить Call ThisWbk.Reload_Appl :'(
Но у меня почему-то и так работало.
Спасибо, Андрей, за поправку. Может, и в самом деле будет лучше работать.

Автор - Alex_ST
Дата добавления - 10.10.2013 в 22:28
kReo1 Дата: Вторник, 03.06.2014, 18:58 | Сообщение № 15
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день, Уважаемые!
Я прошу прощения. Облазил весь скрипт и не смог найти, как установить чек боксы "двойного нажатия" и "автозакрытия после ввода данных" по умолчанию в состояние (True).

Пробовал изменять значения внутри скрипта:

arrFrmSetup(0) = DblClickBox
arrFrmSetup(0) = HideBox

так же устанавливал сами чек боксы на графической форме в состояние:
Value = True

итог - не получилось. Подскажите где искать решение?

С Уважением,

Евгений
 
Ответить
СообщениеДобрый день, Уважаемые!
Я прошу прощения. Облазил весь скрипт и не смог найти, как установить чек боксы "двойного нажатия" и "автозакрытия после ввода данных" по умолчанию в состояние (True).

Пробовал изменять значения внутри скрипта:

arrFrmSetup(0) = DblClickBox
arrFrmSetup(0) = HideBox

так же устанавливал сами чек боксы на графической форме в состояние:
Value = True

итог - не получилось. Подскажите где искать решение?

С Уважением,

Евгений

Автор - kReo1
Дата добавления - 03.06.2014 в 18:58
RAN Дата: Вторник, 03.06.2014, 22:00 | Сообщение № 16
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Смотреть лениво, но, с вероятностью 99% нажать F4 и изменить в свойствах конкретного элемента значение true


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеСмотреть лениво, но, с вероятностью 99% нажать F4 и изменить в свойствах конкретного элемента значение true

Автор - RAN
Дата добавления - 03.06.2014 в 22:00
Alex_ST Дата: Вторник, 03.06.2014, 22:04 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3214
Репутация: 615 ±
Замечаний: 0% ±

2003
А в модуле JP_Сalendar_Module не смотрели? :D
Там же даже с комментариями написано:[vba]
Код
Sub Auto_Open()
     arrFrmSetup = Array(True, False)   ' начальная установка чек-боксов календаря _
                    arrFrmSetup(0) = True => "Ввод двойным щелчком" _
                    arrFrmSetup(1) = False >= "Не прятать после ввода"
     Call ThisWbk.Reload_Appl
     '   Call CalendarMenuCreate
End Sub
[/vba]уж куда может быть более подробный комментарий?
А что Вы хотели сказать загадочными выражениями
arrFrmSetup(0) = DblClickBox
arrFrmSetup(0) = HideBox
это только Вам известно, т.к. в моём коде переменных с такими названиями нет, а есть только элементы управления с такими именами. Вот Вы и присваиваете одному и тому же элементу массива поочерёдно значения не установленных элементов управления, а потом эти элементы по значениям массива устанавливает программа инициализации формы... Замкнутый круг получается.
Читайте внимательно комментарии. Там всё написано предельно ясно. Включайте мозги.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеА в модуле JP_Сalendar_Module не смотрели? :D
Там же даже с комментариями написано:[vba]
Код
Sub Auto_Open()
     arrFrmSetup = Array(True, False)   ' начальная установка чек-боксов календаря _
                    arrFrmSetup(0) = True => "Ввод двойным щелчком" _
                    arrFrmSetup(1) = False >= "Не прятать после ввода"
     Call ThisWbk.Reload_Appl
     '   Call CalendarMenuCreate
End Sub
[/vba]уж куда может быть более подробный комментарий?
А что Вы хотели сказать загадочными выражениями
arrFrmSetup(0) = DblClickBox
arrFrmSetup(0) = HideBox
это только Вам известно, т.к. в моём коде переменных с такими названиями нет, а есть только элементы управления с такими именами. Вот Вы и присваиваете одному и тому же элементу массива поочерёдно значения не установленных элементов управления, а потом эти элементы по значениям массива устанавливает программа инициализации формы... Замкнутый круг получается.
Читайте внимательно комментарии. Там всё написано предельно ясно. Включайте мозги.

Автор - Alex_ST
Дата добавления - 03.06.2014 в 22:04
RAN Дата: Вторник, 03.06.2014, 22:22 | Сообщение № 18
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Надо же! Не угадал. 1%... :(


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеНадо же! Не угадал. 1%... :(

Автор - RAN
Дата добавления - 03.06.2014 в 22:22
Alex_ST Дата: Вторник, 03.06.2014, 22:28 | Сообщение № 19
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3214
Репутация: 615 ±
Замечаний: 0% ±

2003
[offtop]Не на того напал, Андрей, кто тупо и в лоб значения элементов в форме прописывает! :) [/offtop]



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 03.06.2014, 22:28
 
Ответить
Сообщение[offtop]Не на того напал, Андрей, кто тупо и в лоб значения элементов в форме прописывает! :) [/offtop]

Автор - Alex_ST
Дата добавления - 03.06.2014 в 22:28
kReo1 Дата: Среда, 04.06.2014, 13:44 | Сообщение № 20
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
[offtop]Alex_ST, сегодня открыл и сразу все увидел. вчера сидел в сильной запарке, под носом ничего не видел
Спасибо![/offtop]
 
Ответить
Сообщение[offtop]Alex_ST, сегодня открыл и сразу все увидел. вчера сидел в сильной запарке, под носом ничего не видел
Спасибо![/offtop]

Автор - kReo1
Дата добавления - 04.06.2014 в 13:44
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!