Добрый день, имеется макрос с выпадающим календарем, как-то можно его исправить чтобы при повторном нажатии на ячейку где уже выставлена дата, дата не сбивалась пока не выберешь другую дату. Функция нужна т.к не работает отмена изменений с максросами.
Поправка макроса с выпадающим календерем
09.08.2016 16:52:40
|
|
|
|
09.08.2016 17:04:29
Kraimon, закомментируйте или уберите
|
|||
|
|
09.08.2016 17:45:47
Спасибо, то что нужно
|
|
|
|
09.08.2016 20:15:49
вот пытаюсь сделать красиво (удобно) - но что-то не получается... может, есть идеи у кого-нибудь? чтобы он выпадал рядом с ячейкой? пытаюсь, например, так (хотя как только не пыталась)
P.S. в свойствах юзер-формы выставила .StartUpPosition= Manual
Изменено:
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
|
|||
|
|
09.08.2016 21:06:51
честно говоря, если выставить так (сама не поняла, что сказала в коде)
Изменено:
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
|
|||
|
|
09.08.2016 22:57:59
JeyCi, воспользуйтесь
|
|
|
|
09.08.2016 23:04:42
JeyCi, попробуйте поковыряться с этим кодом в модуле(код был взять из
Думаю, неплохо бы запустить проверку положения обрабатываемой ячейки: если таргет находится в самом низу видимой области экрана, то скроллим лист вниз на высоту формы и вызываем саму форму(или вызываем форму в верхнем положении от ячейки). Как-то так |
|
|
|
10.08.2016 02:28:26
p.s.
|
|||||||
|
|
10.08.2016 06:21:10
Изменено:
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
|
|||||
|
|
10.08.2016 12:03:05
оставлю ещё один линк по вопросу выравнивания по ячейке появляющейся UF
P.S. там в принципе веское замечание о том, что, работая с пикселями экрана - надо, вероятно, учитывать весь Window со всеми панелями - т.к. они все вносят свой вклад в местоположение на экране в пикселях... а т.к. (само собой разумеющееся) экран и настройка этих панелей не может быть одинакова у всех юзеров - поэтому с выравниванием по пикселям такие неоднозначные трюки приходится вытворять... думала, как-то кратко можно сделать в #5 - (когда нет желания нагромождать книгу кодом, если его и так много по др. вопросам) - но #5 в зоне видимости только до 400-й яч p.p.s мой вывод: быстро, кратко и приемлемо остаётся только выставлять свойство юзерформы .StartUpPosition= CenterScreen или 2 (чтобы глазами и руками не лазить в края монитора)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
|
|
|
|
10.08.2016 12:05:17
JeyCi, это к выпадающему календарю имеет какое-то отношение? Создайте отдельную тему и там обсуждайте вопрос о пикселях
|
|
|
|
10.08.2016 12:13:56
Изменено:
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
|
|||
|
|
10.08.2016 12:19:32
|
|||
|
|
02.12.2024 15:04:36
Добрый день. Хотел внедрить всплывающий календарь в свой проект. Нашел нужный вариант, но мне кажется, с таким кодом он у меня работать не будет. Не подскажете, как выйти из ситуации?
Option Explicit Sub showcalendar() slancalendar.Show ActiveCell = slancalendar.Value End Sub
Изменено: |
|
|
|
02.12.2024 15:14:49
Выйти с ситуации можно-приложив файл пример
|
|
|
|
02.12.2024 15:21:35
Прикладывал, но что-то не дошло, видимо. Значит, попытка № 2.
|
|
|
|
03.12.2024 10:39:53
Все работает. Нужно кликнуть на файл и правой клавишей выбрать Свойства и в открывшемся окне поставить галочку Разблокировать и нажать кнопку Ок.
|
|
|
|
03.12.2024 16:23:09
Зайдите в редактор vba и экспортирует форму например на раб. Стол.
затем откройте свой файл и редакторе vba выберите import и форма попадёт в ваш проект. |
|
|
|
03.12.2024 16:42:06
МатросНаЗебре, спасибо большое за рекомендацию! Перенес модуль.
|
|
|
|
03.12.2024 16:43:06
Parovoznik, спасибо большое за вариант! Буду иметь в виду.
|
|
|
|
04.12.2024 17:30:12
А не подскажете, может есть решение, как закрывать всплывающий календарь не выбором даты в нем, а нажатием на любую ячейку вне формы календаря?
|
|
|
|
05.12.2024 10:00:06
МатросНаЗебре, спасибо! Поменял в свойствах формы, но код сам не изменился, скопировал Ваш код.
У меня закомментирована строка "Target = slancalendar.Value", как указано выше, чтобы выбранная ранее дата не исчезала, если просто закрываешь календарь. Но с таким кодом дата перестала выбираться. Нажимаю на дату, она не подставляется. Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Intersect(Target, Range("B20")) Is Nothing Then slancalendar.Hide Else slancalendar.Show 'Target = slancalendar.Value End If End Sub |
|
|
|
05.12.2024 10:26:37
Бррр, там какая-то чехарда с инициированием и обновлением даты. Мой совет был относительно
|
|||
|
|
05.12.2024 10:54:15
Да, я понял, форма с таким кодом закрывается при нажатии на любую ячейку. Но дата теперь не ставится.
|
|
|
|
05.12.2024 11:16:17
Как вариант, добавьте перед каждым скрытием формы изменение значения активной ячейки.
|
|||
|
|
05.12.2024 13:15:47
В этом варианте проще вносить правки в одинаковые процедуры Label*_Click
|
|||
|
|
05.12.2024 15:11:04
В идеале бы такой календарь внедрить, как в ЕРП-системах. Можно мышью пролистывать месяцы, очень удобный функционал.
|
||||
|
|
|||