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

Вход

Регистрация

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

 

= Мир MS Excel/Выпадающий календарь - Страница 6 - Мир MS Excel

Старая форма входа
  • Страница 6 из 8
  • «
  • 1
  • 2
  • 4
  • 5
  • 6
  • 7
  • 8
  • »
Модератор форума: _Boroda_, китин  
Мир MS Excel » Вопросы и решения » Готовые решения » Выпадающий календарь (Для программирующих в среде VBA.)
Выпадающий календарь
BegUn Дата: Вторник, 28.04.2015, 03:27 | Сообщение № 101
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Выше всяких похвал! мне как чайнику) очень помогло в работе
у меня Excel 2010 на работе, после запускса выпал сразу дебаг, потом вроде перестал.

видел ещё галочку которую ставят в календаре зависимости надо ли закрывать календарь после выбора даты
т.о. календарик всегда открыт и только прыгаешь по нужному столбцу и выбираешь даты и времена.

hands hands hands
 
Ответить
СообщениеВыше всяких похвал! мне как чайнику) очень помогло в работе
у меня Excel 2010 на работе, после запускса выпал сразу дебаг, потом вроде перестал.

видел ещё галочку которую ставят в календаре зависимости надо ли закрывать календарь после выбора даты
т.о. календарик всегда открыт и только прыгаешь по нужному столбцу и выбираешь даты и времена.

hands hands hands

Автор - BegUn
Дата добавления - 28.04.2015 в 03:27
Skif-F Дата: Вторник, 28.04.2015, 14:17 | Сообщение № 102
Группа: Проверенные
Ранг: Участник
Сообщений: 73
Репутация: 14 ±
Замечаний: 0% ±

Excel 2007, 2010, 2013, 2016
видел ещё галочку...


Если открыть через контекстное меню ячейки, закрываться автоматом не будет, или выбирайте более ранний пост, где есть эта галочка. Но, если есть мнение, что именно в этой версии нужна галочка, могу вернуть.
 
Ответить
Сообщение
видел ещё галочку...


Если открыть через контекстное меню ячейки, закрываться автоматом не будет, или выбирайте более ранний пост, где есть эта галочка. Но, если есть мнение, что именно в этой версии нужна галочка, могу вернуть.

Автор - Skif-F
Дата добавления - 28.04.2015 в 14:17
pabchek Дата: Четверг, 30.04.2015, 14:19 | Сообщение № 103
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация: 218 ±
Замечаний: 0% ±

Excel 2007
Простите неопытного за вопрос. Однако, после тестирования календаря, без сохранения макросов, модулей и прочей... при открытии нового файла в контекстном меню у меня появляется несколько строчек для вставки календаря. (Их количество увеличивалось по количеству раз тестирования примера). И теперь все файлы такие. Как поправить? Пугает зависимость - этож через некоторое время у меня контекстное меню вылезет из монитора на ноги - раздавит жеж!!! (Шутка). Да, и постоянно открывается файл "VovaK_mod8_Skif.xlsm" прям как вирус какой-то. И... у меня уже 6 строчек с календарём((((
К сообщению приложен файл: 3728219.jpg (49.8 Kb)


"Учиться, учиться и еще раз учиться!"
WM: R399923528092


Сообщение отредактировал pabchek - Четверг, 30.04.2015, 14:26
 
Ответить
СообщениеПростите неопытного за вопрос. Однако, после тестирования календаря, без сохранения макросов, модулей и прочей... при открытии нового файла в контекстном меню у меня появляется несколько строчек для вставки календаря. (Их количество увеличивалось по количеству раз тестирования примера). И теперь все файлы такие. Как поправить? Пугает зависимость - этож через некоторое время у меня контекстное меню вылезет из монитора на ноги - раздавит жеж!!! (Шутка). Да, и постоянно открывается файл "VovaK_mod8_Skif.xlsm" прям как вирус какой-то. И... у меня уже 6 строчек с календарём((((

Автор - pabchek
Дата добавления - 30.04.2015 в 14:19
RAN Дата: Четверг, 30.04.2015, 14:39 | Сообщение № 104
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub Мяу()
Application.CommandBars("cell").Reset
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Sub Мяу()
Application.CommandBars("cell").Reset
End Sub
[/vba]

Автор - RAN
Дата добавления - 30.04.2015 в 14:39
pabchek Дата: Четверг, 30.04.2015, 14:46 | Сообщение № 105
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация: 218 ±
Замечаний: 0% ±

Excel 2007
Спасибо, помогло! А что это было? Да и календариком хотелось пользоваться


"Учиться, учиться и еще раз учиться!"
WM: R399923528092


Сообщение отредактировал pabchek - Четверг, 30.04.2015, 14:47
 
Ответить
СообщениеСпасибо, помогло! А что это было? Да и календариком хотелось пользоваться

Автор - pabchek
Дата добавления - 30.04.2015 в 14:46
Skif-F Дата: Четверг, 30.04.2015, 15:53 | Сообщение № 106
Группа: Проверенные
Ранг: Участник
Сообщений: 73
Репутация: 14 ±
Замечаний: 0% ±

Excel 2007, 2010, 2013, 2016
Прошу прощения. Всё исправил.
К сообщению приложен файл: VovaK_mod9_Skif.xlsm (57.1 Kb)
 
Ответить
СообщениеПрошу прощения. Всё исправил.

Автор - Skif-F
Дата добавления - 30.04.2015 в 15:53
Otter Дата: Понедельник, 04.05.2015, 14:12 | Сообщение № 107
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
А у меня такая беда. При запуске календаря из другой формы он глючит. Запускается без кнопок. Как исправить эту беду.
К сообщению приложен файл: 8919992.xlsm (55.4 Kb) · 5504986.jpg (18.1 Kb)
 
Ответить
СообщениеА у меня такая беда. При запуске календаря из другой формы он глючит. Запускается без кнопок. Как исправить эту беду.

Автор - Otter
Дата добавления - 04.05.2015 в 14:12
Skif-F Дата: Понедельник, 04.05.2015, 22:02 | Сообщение № 108
Группа: Проверенные
Ранг: Участник
Сообщений: 73
Репутация: 14 ±
Замечаний: 0% ±

Excel 2007, 2010, 2013, 2016
А изучить присутствующий в примере код сложно?
Для обращения к календарю определена специальная функция. Причём это описано даже на листе книги:
Цитата
Обращение к календарю из VBA выполнять через функцию NewShow.

Например так:
[vba]
Код
DateForm.NewShow Дата:=d, АктивнаяЯчейка:=True, Mode:="Только время"
[/vba]
Описание функции:
[vba]
Код
'Точка входа в форму.
'Входные параметры:
'   Дата - начальное значение даты
'   АктивнаяЯчейка - при 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.

Например так:
[vba]
Код
DateForm.NewShow Дата:=d, АктивнаяЯчейка:=True, Mode:="Только время"
[/vba]
Описание функции:
[vba]
Код
'Точка входа в форму.
'Входные параметры:
'   Дата - начальное значение даты
'   АктивнаяЯчейка - при True форма работает в немодальном режиме и помещает значение в активную ячейку
'                  - при False - форма работает в модальном режиме и возвращает значение в Дата
'   Mode - "Только дата"
'        - "Дата и время"
'        - "Только время"
'Возвращаемое значение
'   для "Активной ячейки" всегда True
'   True - если произошёл выход по двойному клику на дне
'   False - если вышли, закрыв форму по "крестику"
Public Function NewShow(ByRef Дата As Date, ByVal АктивнаяЯчейка As Boolean, _
                         Optional ByVal Mode As String = conOnlyTime) As Boolean
[/vba]

Автор - Skif-F
Дата добавления - 04.05.2015 в 22:02
Otter Дата: Понедельник, 04.05.2015, 23:07 | Сообщение № 109
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Цитата
Например так:
DateForm.NewShow Дата:=d, АктивнаяЯчейка:=True, Mode:="Только время"
Ну попробовал и так затыкается на дате Дата:=d и дальше не идет.

Если я правильно понял должно быть так
[vba]
Код
Private Sub Start_Click()
     DateForm.NewShow Дата:=d, АктивнаяЯчейка:=True, Mode:="Только время"
End Sub
[/vba]


Сообщение отредактировал Otter - Понедельник, 04.05.2015, 23:15
 
Ответить
Сообщение
Цитата
Например так:
DateForm.NewShow Дата:=d, АктивнаяЯчейка:=True, Mode:="Только время"
Ну попробовал и так затыкается на дате Дата:=d и дальше не идет.

Если я правильно понял должно быть так
[vba]
Код
Private Sub Start_Click()
     DateForm.NewShow Дата:=d, АктивнаяЯчейка:=True, Mode:="Только время"
End Sub
[/vba]

Автор - Otter
Дата добавления - 04.05.2015 в 23:07
AndreTM Дата: Вторник, 05.05.2015, 04:01 | Сообщение № 110
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
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]


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение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]

Автор - AndreTM
Дата добавления - 05.05.2015 в 04:01
Otter Дата: Вторник, 05.05.2015, 09:13 | Сообщение № 111
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Спасибо за разъяснения. Теперь понятно.
 
Ответить
СообщениеСпасибо за разъяснения. Теперь понятно.

Автор - Otter
Дата добавления - 05.05.2015 в 09:13
hemmel Дата: Воскресенье, 24.05.2015, 19:20 | Сообщение № 112
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Подскажите пожалуйста.
Строю график по таблице.
В одной ячейке с названиями столбцов у меня Ваш выпадающий календарь.
И если дата в эту ячейку (зеленая) внесена через выпадающий то на графике начинают отображаться столбцы #Н/Д
Как недопустить отображения столбцов #Н/Д ?
К сообщению приложен файл: __.rar (34.0 Kb)
 
Ответить
СообщениеПодскажите пожалуйста.
Строю график по таблице.
В одной ячейке с названиями столбцов у меня Ваш выпадающий календарь.
И если дата в эту ячейку (зеленая) внесена через выпадающий то на графике начинают отображаться столбцы #Н/Д
Как недопустить отображения столбцов #Н/Д ?

Автор - hemmel
Дата добавления - 24.05.2015 в 19:20
hemmel Дата: Среда, 27.05.2015, 07:35 | Сообщение № 113
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Вопрос решен. Использовал календарь от Skif-F
календарь от Skif-F отлично работает с графиками yes
 
Ответить
СообщениеВопрос решен. Использовал календарь от Skif-F
календарь от Skif-F отлично работает с графиками yes

Автор - hemmel
Дата добавления - 27.05.2015 в 07:35
Волчок Дата: Вторник, 13.10.2015, 23:08 | Сообщение № 114
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
А может кто-нибудь подсказать, как сделать так, что бы календарь появлялся не в центре листа, а справа (или снизу) от ячейки в которую вводится дата.
 
Ответить
СообщениеА может кто-нибудь подсказать, как сделать так, что бы календарь появлялся не в центре листа, а справа (или снизу) от ячейки в которую вводится дата.

Автор - Волчок
Дата добавления - 13.10.2015 в 23:08
Skif-F Дата: Среда, 14.10.2015, 22:14 | Сообщение № 115
Группа: Проверенные
Ранг: Участник
Сообщений: 73
Репутация: 14 ±
Замечаний: 0% ±

Excel 2007, 2010, 2013, 2016
Если вопрос относится к моему варианту, то в функции 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'а. Например, тут:
UserAutoFit

Автор - Skif-F
Дата добавления - 14.10.2015 в 22:14
Волчок Дата: Пятница, 16.10.2015, 01:59 | Сообщение № 116
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Skif-F, Спасибо, координаты поменял, всё работает.
 
Ответить
СообщениеSkif-F, Спасибо, координаты поменял, всё работает.

Автор - Волчок
Дата добавления - 16.10.2015 в 01:59
al-Ex Дата: Воскресенье, 17.01.2016, 02:59 | Сообщение № 117
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
Для Скифа, календарь классный получается,
Предлагаю функциональность улучшить.
Кнопочки соответствующие числам не попадающим в данный месяц у вас неактивны.
Имеем просто "призраки" на форме,
Вот предлагаю Вам сделать их тоже активными, пусть только шрифтом выделяются бледным
плюс при клике по ним пусть месяц меняется на соответствующий,
так-же как и при смене месяца в выпадающем списке.
Эта улучшенная функциональность так-же и внешний вид улучшит,
т.к неактивные кнопочки выглядят угрюмо и громоздко.
Ну а на форме "Время" тоже хорошо-бы иметь текущее значение уже установленным.


Сообщение отредактировал al-Ex - Воскресенье, 17.01.2016, 03:15
 
Ответить
СообщениеДля Скифа, календарь классный получается,
Предлагаю функциональность улучшить.
Кнопочки соответствующие числам не попадающим в данный месяц у вас неактивны.
Имеем просто "призраки" на форме,
Вот предлагаю Вам сделать их тоже активными, пусть только шрифтом выделяются бледным
плюс при клике по ним пусть месяц меняется на соответствующий,
так-же как и при смене месяца в выпадающем списке.
Эта улучшенная функциональность так-же и внешний вид улучшит,
т.к неактивные кнопочки выглядят угрюмо и громоздко.
Ну а на форме "Время" тоже хорошо-бы иметь текущее значение уже установленным.

Автор - al-Ex
Дата добавления - 17.01.2016 в 02:59
Skif-F Дата: Воскресенье, 17.01.2016, 23:24 | Сообщение № 118
Группа: Проверенные
Ранг: Участник
Сообщений: 73
Репутация: 14 ±
Замечаний: 0% ±

Excel 2007, 2010, 2013, 2016
Ну а на форме "Время" тоже хорошо-бы иметь текущее значение уже установленным


Это уже есть, только почему-то я давным-давно это отсёк. Раскомментируйте в модуле формы строки:
[vba]
Код
'    CurrentHour = Hour(Дата) 'Текущий час
'    CurrentMinute = Minute(Дата) 'Текущая минуты
'    CurrentScnd = Second(Дата)  'Текущая секунда
[/vba]

По остальным вопросам - пробуйте.
К сообщению приложен файл: VovaK_mod10_Ski.xlsm (60.0 Kb)
 
Ответить
Сообщение
Ну а на форме "Время" тоже хорошо-бы иметь текущее значение уже установленным


Это уже есть, только почему-то я давным-давно это отсёк. Раскомментируйте в модуле формы строки:
[vba]
Код
'    CurrentHour = Hour(Дата) 'Текущий час
'    CurrentMinute = Minute(Дата) 'Текущая минуты
'    CurrentScnd = Second(Дата)  'Текущая секунда
[/vba]

По остальным вопросам - пробуйте.

Автор - Skif-F
Дата добавления - 17.01.2016 в 23:24
al-Ex Дата: Вторник, 19.01.2016, 12:03 | Сообщение № 119
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
А может кто-нибудь подсказать, как сделать так, что бы календарь появлялся не в центре листа, а справа (или снизу)

В коде формы я добавил функцию:[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")

    Me.Top = GetSetting(appname:="VovaK", section:="Startup", _
                       Key:="Top", Default:="250")
    
[/vba] теперь где закрыли там и появится.
К сообщению приложен файл: Ski.xlsm (47.7 Kb)


Сообщение отредактировал al-Ex - Вторник, 19.01.2016, 12:44
 
Ответить
Сообщение
А может кто-нибудь подсказать, как сделать так, что бы календарь появлялся не в центре листа, а справа (или снизу)

В коде формы я добавил функцию:[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")

    Me.Top = GetSetting(appname:="VovaK", section:="Startup", _
                       Key:="Top", Default:="250")
    
[/vba] теперь где закрыли там и появится.

Автор - al-Ex
Дата добавления - 19.01.2016 в 12:03
котов Дата: Суббота, 05.03.2016, 11:12 | Сообщение № 120
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
al-Ex, сделайте календарь для 2003 Эксэля, будет польза ещё эксэлистам
 
Ответить
Сообщениеal-Ex, сделайте календарь для 2003 Эксэля, будет польза ещё эксэлистам

Автор - котов
Дата добавления - 05.03.2016 в 11:12
Мир MS Excel » Вопросы и решения » Готовые решения » Выпадающий календарь (Для программирующих в среде VBA.)
  • Страница 6 из 8
  • «
  • 1
  • 2
  • 4
  • 5
  • 6
  • 7
  • 8
  • »
Поиск:

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