powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Enter для textbox срабатывает только один раз
25 сообщений из 97, страница 1 из 4
VBA Enter для textbox срабатывает только один раз
    #39237931
ypmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть форма с несколькими textbox. Перемешаюсь по ним клавишей Tab. Нужно, чтобы при появлении фокуса на TextBox3 открывался календарь. Для этого использую событие Enter:
Код: vbnet
1.
2.
3.
Private Sub DatePer1_Enter()
Me.TextBox3 = Format(Get_Date(Me.DatePer1, Now), "MMMM yyyy")    ' выбор даты из календаря
End Sub



Запускаю форму, перемещаюсь по Tab TextBox1, TextBox2, TextBox3. На TextBox3 выскакивает календарь. Всё нормально.
Ставлю курсор на TextBox2, нажимаю снова Tab, курсор переходит на TextBox3, но календарь уже не появляется. Почему Enter срабатывает только 1 раз? Как сделать, чтобы при каждом переходе к TextBox3 появлялся календарь?
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39237932
ypmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DatePer это TextBox3, не поправил в коде
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39237953
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ypmailНужно, чтобы при появлении фокуса на TextBox3 открывался календарь. Для этого использую событие Enter:
А тебе не кажется, что если "при появлении фокуса", то надо использовать TextBox_GotFocus?
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39237981
ypmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaА тебе не кажется, что если "при появлении фокуса", то надо использовать TextBox_GotFocus?

Из справки:
События Enter, Exit
Office 2013 and later

....

Замечания

События Enter и Exit подобны событиям GotFocus (получение фокуса) и LostFocus (потеря фокуса) в Visual Basic. В отличии от событий GotFocus и LostFocus, события Enter и Exit не происходят тогда, когда форма получает или теряет фокус.

+ в VBA у меня нет таких событий в списке выбора события.
+ пробовал в самом коде писать GotFocus в виде TextBox_GotFocus() - не работает
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39237982
ypmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
См. название темы. VBA
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238070
hclubmk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ypmailИз справки:
События Enter, Exit
Office 2013 and later Что за приложение? Какая версия? (в 2003 Word, Excel) эти события присутствуют
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238078
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ypmailСм. название темы. VBA
Лучше см. название раздела: Visual Basic .
А с VBA надо было идти в раздел Microsoft Office.
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238086
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ypmail,

выложи тестовый пример - ответ будет гораздо быстрее
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238242
ypmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
пример
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238245
ypmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ypmail,
файл rar не прикрепляется
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238257
ypmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде файл с примером прикрепился со второй попытки. Извинтиляюсь, что не в ту тему написал, просто увидел, что есть уже такие темы VBA и бла-бла-бла, вот и тоже создал свою в этой ветке.
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238268
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О боже, дикий треш и ужас!
Вы что-нибудь слышали про циклы, про подпрограммы, функции?
Если потребуется обработать сто значений, вы сто раз напишете один и тот же код?

Я не нашел там никакой обработки события Enter.

Уберите все лишнее, сделайте файл, из которого понятно, что именно не получается
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238287
ypmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Переделал. Прямо вначале кода вариант с Enter, который срабатывает только один раз.
В конце кода вариант с MousUp, который срабатывает каждый раз.

По Вашему замечанию: я бы с удовольствием упростил код, если бы знал как это делать. Спросить не у кого, а сам я только учусь. Этот-то код собирал не одну неделю, чтобы хоть как-то работало.
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238315
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Занимательный прикол.
Если тектбокс не располагать в фрейме, то все нормально.
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238364
ypmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЗанимательный прикол.
Если тектбокс не располагать в фрейме, то все нормально.

Без фрейма работает. Я могу убрать фреймы, но как тогда нарисовать таблицу стандартными средствами, не подключая никаких дополнительных контролов?
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238367
ypmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал событие повесить на фрейм - работает как надо! Можно ничего не переделывать, просто вешать Enter на фрейм, а не на текстбокс.
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238371
ypmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!!!

Кстати, может подскажете как код упростить? Как он правильно пишется?
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238389
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ypmailБез фрейма работает. Я могу убрать фреймы, но как тогда нарисовать таблицу стандартными средствами, не подключая никаких дополнительных контролов?Я не понимаю, в чем проблема. Для чего там вообще используются фреймы?ypmailКстати, может подскажете как код упростить? Как он правильно пишется?Первое правило в похожем случае - забыть про копипасту. Любой повторяющийся алгоритм должен быть написан один раз и оформлен в виде процедуры, класса и т.п.
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238595
ypmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЯ не понимаю, в чем проблема. Для чего там вообще используются фреймы?
Чтобы получилась таблица :-)
Shocker.ProПервое правило в похожем случае - забыть про копипасту. Любой повторяющийся алгоритм должен быть написан один раз и оформлен в виде процедуры, класса и т.п.
Я пытался, но ничего не получилось, мне бы примерчик какой-нибудь посмотреть. На примере какого-нибуд куска моего кода, чтобы понять как это делается.
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238604
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ypmailShocker.ProЯ не понимаю, в чем проблема. Для чего там вообще используются фреймы?
Чтобы получилась таблица :-)Ответ непонятен. Что мешает составить ее просто из текстбоксов?
ypmailShocker.ProПервое правило в похожем случае - забыть про копипасту. Любой повторяющийся алгоритм должен быть написан один раз и оформлен в виде процедуры, класса и т.п.
Я пытался, но ничего не получилось, мне бы примерчик какой-нибудь посмотреть. На примере какого-нибуд куска моего кода, чтобы понять как это делается.Учиться нужно по учебникам, а не по примерам. Пример не даст системных знаний.
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238606
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ypmailЯ пытался, но ничего не получилосьНе получилось напечатать не одной буквы? Не получилось включить компьютер? Это не подход. Не получилось что-то конкретное - это и можно спросить. На конкретный вопрос будет конкретный ответ. А на беспредметные вопросы будет ответ - читай учебник. )
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238785
ypmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proypmailпропущено...

Чтобы получилась таблица :-)Ответ непонятен. Что мешает составить ее просто из текстбоксов?
Точно такую же таблицу из текстбоксов не сделаешь в плане оформления.
Shocker.Proypmailпропущено...
Я пытался, но ничего не получилось, мне бы примерчик какой-нибудь посмотреть. На примере какого-нибуд куска моего кода, чтобы понять как это делается.Учиться нужно по учебникам, а не по примерам. Пример не даст системных знаний.
Другого ответа и не ожидал.По непойми каким языком с кучей непонятных терминов написанным учебникам через пару лет точно научусь, а пока как могу так и делаю, пусть хоть так работает, чем вообще никак.
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238991
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ypmailТочно такую же таблицу из текстбоксов не сделаешь в плане оформления.Вот это мне и непонятно. У текстбокса точно такие же настройки границы, как и у фрейма. Может что-то не понимаю, может на каком-нить Win10 и каком-нить Офисе2017 это выглядит иначе...
На скриншоте две ячейки выполнены с помощью текстбоксов без фреймов. Найдете какие?
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39238999
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ypmailДругого ответа и не ожидал.По непойми каким языком с кучей непонятных терминов написанным учебникам через пару лет точно научусь, а пока как могу так и делаю, пусть хоть так работает, чем вообще никак.Что вам мешает выбрать учебник, написанный понятным языком? Не видел книжного магазина, где не дают ознакомиться с изданием перед покупкой - хоть часами сиди изучай.
Согласитесь, пересказывать учебник в топике форума - глупо.
Хотите, можно курсы организовать, мастер-класс... Но это не бесплатно же. Здесь мы все-таки отвечаем на конкретные вопросы, а не на "научите меня программировать".

И еще. Вы боитесь потратить время на чтение учебника, но я вас уверяю, чем дольше вы будете писать плохой код, тем больше он будет тянуть вас ко дну, и в конечном итоге вы потратите больше времени, чем на то, чтобы изначально разобраться и написать хорошо.
...
Рейтинг: 0 / 0
VBA Enter для textbox срабатывает только один раз
    #39239105
ypmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По ячейкам: 3 и 5, угадал? Попробую, правда заголовки колонок наверное придется оставить в Label внутри фреймов, иначе придётся как-то делать вывод текста по умолчанию в textbox с форматированием, пока для меня это сложно.

По науке: я и сам понимаю разницу между "подскажи" и "сделай за меня". Я также сторонник компактных кодов, но пока для меня это сложно, разберусь со временем. Я с VBA знаком от силы недели 2-3, и то методом научного втыка. В своём коде пробовал один раз объявлять переменную, а потом присваивать закладкам значения (Dim rng), но код перестал работать. Поэтому я вернулся к копипасту и каждый раз объявлял переменную для вставки каждой закладки. Вот и получилось:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Set rng = bm("NumberFirst1").Range 'присваиваем переменной rng ссылку на закладку "NumberFirst1"
rng.Text = Me.NumberFirst1.Text  'определяем новый текст закладки
bm.Add "NumberFirst1", rng   'заменяем закладку "NumberFirst1"
Set rng = bm("NumberFirst11").Range
rng.Text = Me.NumberFirst1.Text
bm.Add "NumberFirst11", rng

Set rng = bm("NumberFirst2").Range
rng.Text = Me.NumberFirst2.Text
bm.Add "NumberFirst2", rng
Set rng = bm("NumberFirst22").Range
rng.Text = Me.NumberFirst2.Text
bm.Add "NumberFirst22", rng



Как правильно записать, чтобы объявить один раз переменную и потом несколько раз использовать не нашел, поэтому пока оставил так.
...
Рейтинг: 0 / 0
25 сообщений из 97, страница 1 из 4
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Enter для textbox срабатывает только один раз
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]