Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 13.05.2018
Сообщений: 86
1
Excel

Правки в код Всплывающего Календаря

08.06.2018, 20:34. Показов 2470. Ответов 26
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток форумчане!
Нашел довольно функциональный календарик для заполнения ячеек датой и временем
Привел его к приятному виду

Код для меня еще слишком сложный, поэтому не удается внести в него правки

Возникли следующие вопросы:
1) Как сделать шаг значений часов и минут
Мне ни к чему время с 19:00 до 8 утра, поэтому я хотел бы исключить эти значения из комбо бокса.
Минуты также не нужны вплодь до каждой

То есть Диапазон значений должен быть следующим:
8:00, 8:10, 8:20, 8:30, 8:40, 8:50, 9:00 ...
И так вплоть до 18:40, 18:50, 19:00

2) Как назначить запуск формы в действие по ПКМ, видел такую возможность в надстройке XLTools

3) Вместе с крестиком убрать внешние границы формы, чтобы она состояла только из рабочей области
Миниатюры
Правки в код Всплывающего Календаря  
Вложения
Тип файла: rar Всплывающий календарь.rar (59.5 Кб, 10 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2018, 20:34
Ответы с готовыми решениями:

Код всплывающего окна
Скажите мне код как создать это окно как на картинке

Код всплывающего окна
Есть код, реализован на API, нашел его на форуме, в чем хочу разобраться: если в onclik на кнопку...

Не совсем понятный код всплывающего меню
Здравствуйте, недавно начал изучать js и jQuery в совокупности, попутно применяя полученные знания...

Разобрать код календаря
Есть код календаря: <?php // Вычисляем число дней в текущем месяце $dayofmonth =...

26
11517 / 3803 / 681
Регистрация: 13.02.2009
Сообщений: 11,222
10.06.2018, 11:06 2
1 тема = 1 вопрос!
Там же код не скрыт, не запаролен.
Комменты на русском языке

Visual Basic
1
2
'Заполнение списка ComboBox_Hour
For i = 0 To 23: ComboBox_Hour.AddItem Format(i, "00"): Next i
заполняй нужными тебе часами типа:
Visual Basic
1
For i = 8 To 19
Неужели трудно сообразить?
Аналогично и с минутами. Можно просто добавить шаг:
Visual Basic
1
2
'Заполнение списков ComboBox_Minute и ComboBox_Second
For i = 0 To 59 step 10
1
162 / 61 / 13
Регистрация: 03.03.2015
Сообщений: 176
10.06.2018, 11:46 3
Цитата Сообщение от Alex77755 Посмотреть сообщение
For i = 0 To 59 step 10
Ага, только глюкает. Пока не могу понять почему.
Run Time Error '380'

Добавлено через 7 минут
Вроде бы как ошибка ListBox.(Тут combobox))

Добавлено через 7 минут
Похоже ComboBox_Minute это встроенный компонент и у него число строк зашито от 0 до 59. Надо почитать как менять это значение.
1
162 / 61 / 13
Регистрация: 03.03.2015
Сообщений: 176
10.06.2018, 12:41 4
Там надо было еще в нескольких местах поделить на 10. Теперь в списке десятки минут. Вообще, для практики, если надо исследовать код VBA, щелкаете слева от текста по полоске в нужном месте текста программы. Должен появиться красный или бардовый кружок.Это точка останова(breackpoint). После запуска программы исполнение дойдет до этой точки и дальше можно нажимая F8 по шагам пройтись и посмотреть, что она делает. Заодно наводите мышку на переменную и смотрите ее значение в данный момент.
И Debug.Print в помощь. Оставил их парочку в тексте. Посмотрите. Успехов))
Вложения
Тип файла: rar Всплывающий календарь.rar (58.3 Кб, 5 просмотров)
1
11517 / 3803 / 681
Регистрация: 13.02.2009
Сообщений: 11,222
10.06.2018, 14:15 5
с ПКМ
Вложения
Тип файла: rar Всплывающий календарь.rar (59.5 Кб, 3 просмотров)
1
0 / 0 / 0
Регистрация: 13.05.2018
Сообщений: 86
10.06.2018, 16:43  [ТС] 6
Alex77755,
Выдает ошибку:
Microsoft Visual Basic for Applications
Compile error:
The code in this project must be updated for use on 64-bit systems. Please review and update Declare statements and then mark them with the PtrSafe attribute.
0
Модератор
Эксперт MS Access
12082 / 4942 / 791
Регистрация: 07.08.2010
Сообщений: 14,511
Записей в блоге: 4
10.06.2018, 16:56 7
Код в этом проекте должен быть обновлен для использования в 64-битных системах. Просмотрите и обновите заявления Declare, а затем пометьте их атрибутом PtrSafe.
какие у вас версии windows и access
2
0 / 0 / 0
Регистрация: 13.05.2018
Сообщений: 86
10.06.2018, 17:00  [ТС] 8
shanemac51, Windows 7 SP1; MS Office 2010
0
11517 / 3803 / 681
Регистрация: 13.02.2009
Сообщений: 11,222
10.06.2018, 17:16 9
да там АПИ и не нужны. Это я начинал делать форму без крестика
Вложения
Тип файла: rar Всплывающий календарь.rar (58.2 Кб, 5 просмотров)
1
11517 / 3803 / 681
Регистрация: 13.02.2009
Сообщений: 11,222
10.06.2018, 17:18 10
meledoor, читай внимательно сообщения бейсика и ответы
для использования в 64-битных системах
Windows 7 SP1; MS Office 2010
В этой системе работает!!! только в 32 битной
1
0 / 0 / 0
Регистрация: 13.05.2018
Сообщений: 86
10.06.2018, 17:35  [ТС] 11
Alex77755,
Выдает ошибку на этой строчке

Visual Basic
1
2
3
4
Private Sub Set_ComboBox_Hour(MyDate As Date) 'Установка ComboBox_Hour
    MyHour = Format(MyDate, "hh")
   [COLOR="Red"] ComboBox_Hour = MyHour[/COLOR]
End Sub
Добавлено через 8 минут
nape63, Спасибо большое!
Не понимал, что за кружки да стрелочки) Теперь будет проще разбираться
0
11517 / 3803 / 681
Регистрация: 13.02.2009
Сообщений: 11,222
10.06.2018, 17:39 12
не могу проверить в 64 битной
1
0 / 0 / 0
Регистрация: 13.05.2018
Сообщений: 86
10.06.2018, 17:47  [ТС] 13
Alex77755, Выдает следующую ошибку:
Microsoft Visual Basic
Run-time error '380':
Could not set the Value property. Invalid property value.

Добавлено через 4 минуты
Alex77755,
Optns.FaceId = 123 'циферка меняет картинку. Поиграться можно
Возможно из памяти компьютера загружать?
0
162 / 61 / 13
Регистрация: 03.03.2015
Сообщений: 176
10.06.2018, 17:50 14
Гляньте в моем примере. Убрал ошибку 380. Там завязано и с секундами.
1
0 / 0 / 0
Регистрация: 13.05.2018
Сообщений: 86
10.06.2018, 17:55  [ТС] 15
nape63, Я смотрел!
Не могу понять, что там прописать
0
162 / 61 / 13
Регистрация: 03.03.2015
Сообщений: 176
10.06.2018, 18:01 16
Это место как и Alex77755, писал :
Visual Basic
1
2
3
4
5
6
7
8
9
10
'Заполнение списка ComboBox_Hour
For i = 0 To 23: ComboBox_Hour.AddItem Format(i, "00"): Next i
'Заполнение списков ComboBox_Minute и ComboBox_Second
'ComboBox_Minute.ListRows = 6
For i = 0 To 59 Step 10
Debug.Print ComboBox_Minute.ListRows
 
    ComboBox_Minute.AddItem Format(i, "00")
    ComboBox_Second.AddItem Format(i, "00")
Next i
И надо еще здесь добавить :
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Set_ComboBox_Minute(MyDate As Date) 'Установка ComboBox_Minute
    MyMinute = Minute(MyDate) / 10
    ComboBox_Minute.ListIndex = MyMinute
End Sub
 
Private Sub Set_ScrollBar_Minute(MyDate As Date) 'Установка ScrollBar_Minute
    MyMinute = Minute(MyDate) / 10
    ScrollBar_Minute.Value = MyMinute
End Sub
 
Private Sub Set_ComboBox_Second(MyDate As Date) 'Установка ComboBox_Second
    MySecond = Second(MyDate) / 10
    ComboBox_Second.ListIndex = MySecond
End Sub
И отдельное спасибо ув.Галине ))) Она кому-то подсказывала как убрать кракозебры в коде. Подсмотрел, а сейчас воспользовался случаем и попробовал. Перед копированием кода надо переключиться на русский )))
1
0 / 0 / 0
Регистрация: 13.05.2018
Сообщений: 86
10.06.2018, 18:11  [ТС] 17
nape63, Что именно добавить то?
Прописываю следующее:

For i = 8 To 19: ComboBox_Hour.AddItem Format(i, "00"): Next i
0
11517 / 3803 / 681
Регистрация: 13.02.2009
Сообщений: 11,222
10.06.2018, 18:48 18
Там завязано и с секундами.
а они нужны? закомментировать же можно всё лишнее
в том числе и Optns.FaceId
1
0 / 0 / 0
Регистрация: 13.05.2018
Сообщений: 86
10.06.2018, 18:57  [ТС] 19
Alex77755, Помогите, пожалуйста
Как починить код? Я уже методом проб и ошибок половину кода перебрал

Может быть изменить тип данных? С Date на Integer, к примеру
0
162 / 61 / 13
Регистрация: 03.03.2015
Сообщений: 176
10.06.2018, 18:59 20
Цитата Сообщение от Alex77755 Посмотреть сообщение
а они нужны?
. Не стал рубить с плеча. Нет времени копать глубоко. Просто сейчас другим занят. А в чужом коде только тронь. И поехало))) Бывает такого накрутят. Да чего рассказывать, вы сами спецы ))) Может чуть позже покопаюсь. До вечера надо работу скинуть. И так целый день балду пинал )))
1
10.06.2018, 18:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2018, 18:59
Помогаю со студенческими работами здесь

Изменить код вывода календаря
Доброго времени суток, у Меня есть код, который выводит календарь на указанный год. Мне нужно,...

Скрипт всплывающего меню со смайликами никто не подскажет, вот код, но не очень?
<textarea id="text"></textarea> <div style="width:200px; height:200px; position:relative;...

Можно ли написать код напоминания календаря?
Хотелось бы реализовать в Exel принцип напоминания даты календаря. В файле есть список дат с...

Можно ли сократить приведенный код календаря
Здравствуйте. Ннедавно начал заниматься vb. Попался урок с заданием сделать календарь. Все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru