Выше всяких похвал! мне как чайнику) очень помогло в работе у меня Excel 2010 на работе, после запускса выпал сразу дебаг, потом вроде перестал.
видел ещё галочку которую ставят в календаре зависимости надо ли закрывать календарь после выбора даты т.о. календарик всегда открыт и только прыгаешь по нужному столбцу и выбираешь даты и времена.
Выше всяких похвал! мне как чайнику) очень помогло в работе у меня Excel 2010 на работе, после запускса выпал сразу дебаг, потом вроде перестал.
видел ещё галочку которую ставят в календаре зависимости надо ли закрывать календарь после выбора даты т.о. календарик всегда открыт и только прыгаешь по нужному столбцу и выбираешь даты и времена.
Если открыть через контекстное меню ячейки, закрываться автоматом не будет, или выбирайте более ранний пост, где есть эта галочка. Но, если есть мнение, что именно в этой версии нужна галочка, могу вернуть.
Если открыть через контекстное меню ячейки, закрываться автоматом не будет, или выбирайте более ранний пост, где есть эта галочка. Но, если есть мнение, что именно в этой версии нужна галочка, могу вернуть.Skif-F
Простите неопытного за вопрос. Однако, после тестирования календаря, без сохранения макросов, модулей и прочей... при открытии нового файла в контекстном меню у меня появляется несколько строчек для вставки календаря. (Их количество увеличивалось по количеству раз тестирования примера). И теперь все файлы такие. Как поправить? Пугает зависимость - этож через некоторое время у меня контекстное меню вылезет из монитора на ноги - раздавит жеж!!! (Шутка). Да, и постоянно открывается файл "VovaK_mod8_Skif.xlsm" прям как вирус какой-то. И... у меня уже 6 строчек с календарём((((
Простите неопытного за вопрос. Однако, после тестирования календаря, без сохранения макросов, модулей и прочей... при открытии нового файла в контекстном меню у меня появляется несколько строчек для вставки календаря. (Их количество увеличивалось по количеству раз тестирования примера). И теперь все файлы такие. Как поправить? Пугает зависимость - этож через некоторое время у меня контекстное меню вылезет из монитора на ноги - раздавит жеж!!! (Шутка). Да, и постоянно открывается файл "VovaK_mod8_Skif.xlsm" прям как вирус какой-то. И... у меня уже 6 строчек с календарём((((pabchek
'Точка входа в форму. 'Входные параметры: ' Дата - начальное значение даты ' АктивнаяЯчейка - при True форма работает в немодальном режиме и помещает значение в активную ячейку ' - при False - форма работает в модальном режиме и возвращает значение в Дата ' Mode - "Только дата" ' - "Дата и время" ' - "Только время" 'Возвращаемое значение ' для "Активной ячейки" всегда True ' True - если произошёл выход по двойному клику на дне ' False - если вышли, закрыв форму по "крестику" Public Function NewShow(ByRef Дата As Date, ByVal АктивнаяЯчейка As Boolean, _ Optional ByVal Mode As String = conOnlyTime) As Boolean
[/vba]
А изучить присутствующий в примере код сложно? Для обращения к календарю определена специальная функция. Причём это описано даже на листе книги:
Цитата
Обращение к календарю из VBA выполнять через функцию NewShow.
'Точка входа в форму. 'Входные параметры: ' Дата - начальное значение даты ' АктивнаяЯчейка - при True форма работает в немодальном режиме и помещает значение в активную ячейку ' - при False - форма работает в модальном режиме и возвращает значение в Дата ' Mode - "Только дата" ' - "Дата и время" ' - "Только время" 'Возвращаемое значение ' для "Активной ячейки" всегда True ' True - если произошёл выход по двойному клику на дне ' False - если вышли, закрыв форму по "крестику" Public Function NewShow(ByRef Дата As Date, ByVal АктивнаяЯчейка As Boolean, _ Optional ByVal Mode As String = conOnlyTime) As Boolean
Otter, вам же написали формат запуска. Тем более, что в заголовке прямо указано: ByRef Дата As Date Вы производите вызов DateForm.NewShow Дата:=d, АктивнаяЯчейка:=True, Mode:="Только время" что есть у вас в этот момент d ?
Должно быть как минимум так: [vba]
Код
' при немодальной форме DateForm.NewShow Дата:=Date, АктивнаяЯчейка:=True, Mode:="Только дата"
' при модальной форме Dim d As Date d = Date DateForm.NewShow Дата:=d, АктивнаяЯчейка:=False, Mode:="Только дата"
[/vba]
Otter, вам же написали формат запуска. Тем более, что в заголовке прямо указано: ByRef Дата As Date Вы производите вызов DateForm.NewShow Дата:=d, АктивнаяЯчейка:=True, Mode:="Только время" что есть у вас в этот момент d ?
Должно быть как минимум так: [vba]
Код
' при немодальной форме DateForm.NewShow Дата:=Date, АктивнаяЯчейка:=True, Mode:="Только дата"
' при модальной форме Dim d As Date d = Date DateForm.NewShow Дата:=d, АктивнаяЯчейка:=False, Mode:="Только дата"
Подскажите пожалуйста. Строю график по таблице. В одной ячейке с названиями столбцов у меня Ваш выпадающий календарь. И если дата в эту ячейку (зеленая) внесена через выпадающий то на графике начинают отображаться столбцы #Н/Д Как недопустить отображения столбцов #Н/Д ?
Подскажите пожалуйста. Строю график по таблице. В одной ячейке с названиями столбцов у меня Ваш выпадающий календарь. И если дата в эту ячейку (зеленая) внесена через выпадающий то на графике начинают отображаться столбцы #Н/Д Как недопустить отображения столбцов #Н/Д ?hemmel
А может кто-нибудь подсказать, как сделать так, что бы календарь появлялся не в центре листа, а справа (или снизу) от ячейки в которую вводится дата.
А может кто-нибудь подсказать, как сделать так, что бы календарь появлялся не в центре листа, а справа (или снизу) от ячейки в которую вводится дата.Волчок
Если вопрос относится к моему варианту, то в функции NewShow добавить строки, устанавливающие координаты окна. Вырезка из функции (для примера): [vba]
Код
.... OkCancel = False 'Начальное значение. Т.к. возможен выход "по крестику", приходится использовать так Showed = True 'Сигналим, что форма уже отображена
Me.Top = 10 'Координата верха Me.Left = 10 'Координата левого края
If АктивнаяЯчейка Then Me.Show vbModeless NewShow = True 'Для немодального режима всегда True Else Me.Show vbModal ......
[/vba] Если же Вам необходимо, чтобы окно открывалось около ячейки, то ищите UserAutoFit от nerv'а. Например, тут: UserAutoFit
Если вопрос относится к моему варианту, то в функции NewShow добавить строки, устанавливающие координаты окна. Вырезка из функции (для примера): [vba]
Код
.... OkCancel = False 'Начальное значение. Т.к. возможен выход "по крестику", приходится использовать так Showed = True 'Сигналим, что форма уже отображена
Me.Top = 10 'Координата верха Me.Left = 10 'Координата левого края
If АктивнаяЯчейка Then Me.Show vbModeless NewShow = True 'Для немодального режима всегда True Else Me.Show vbModal ......
[/vba] Если же Вам необходимо, чтобы окно открывалось около ячейки, то ищите UserAutoFit от nerv'а. Например, тут: UserAutoFitSkif-F
Для Скифа, календарь классный получается, Предлагаю функциональность улучшить. Кнопочки соответствующие числам не попадающим в данный месяц у вас неактивны. Имеем просто "призраки" на форме, Вот предлагаю Вам сделать их тоже активными, пусть только шрифтом выделяются бледным плюс при клике по ним пусть месяц меняется на соответствующий, так-же как и при смене месяца в выпадающем списке. Эта улучшенная функциональность так-же и внешний вид улучшит, т.к неактивные кнопочки выглядят угрюмо и громоздко. Ну а на форме "Время" тоже хорошо-бы иметь текущее значение уже установленным.
Для Скифа, календарь классный получается, Предлагаю функциональность улучшить. Кнопочки соответствующие числам не попадающим в данный месяц у вас неактивны. Имеем просто "призраки" на форме, Вот предлагаю Вам сделать их тоже активными, пусть только шрифтом выделяются бледным плюс при клике по ним пусть месяц меняется на соответствующий, так-же как и при смене месяца в выпадающем списке. Эта улучшенная функциональность так-же и внешний вид улучшит, т.к неактивные кнопочки выглядят угрюмо и громоздко. Ну а на форме "Время" тоже хорошо-бы иметь текущее значение уже установленным.al-Ex
Сообщение отредактировал al-Ex - Воскресенье, 17.01.2016, 03:15
А может кто-нибудь подсказать, как сделать так, что бы календарь появлялся не в центре листа, а справа (или снизу)
В коде формы я добавил функцию:[vba]
Код
'Сохраняем текущие координаты формы перед её закрытием. Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) SaveSetting "VovaK", "Startup", "Top", DateForm.Top SaveSetting "VovaK", "Startup", "Left", DateForm.Left End Sub
[/vba]А в функции NewShow, вместо фиксированных координат, находим сохраненные координаты, от последнего закрытия формы. [vba]
Код
'Me.Left = 350 'Me.Top = 250 '------------------------------------------------------------- 'Координаты формы считываем из реестра: Me.Left = GetSetting(appname:="VovaK", section:="Startup", _ Key:="Left", Default:="350")
А может кто-нибудь подсказать, как сделать так, что бы календарь появлялся не в центре листа, а справа (или снизу)
В коде формы я добавил функцию:[vba]
Код
'Сохраняем текущие координаты формы перед её закрытием. Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) SaveSetting "VovaK", "Startup", "Top", DateForm.Top SaveSetting "VovaK", "Startup", "Left", DateForm.Left End Sub
[/vba]А в функции NewShow, вместо фиксированных координат, находим сохраненные координаты, от последнего закрытия формы. [vba]
Код
'Me.Left = 350 'Me.Top = 250 '------------------------------------------------------------- 'Координаты формы считываем из реестра: Me.Left = GetSetting(appname:="VovaK", section:="Startup", _ Key:="Left", Default:="350")