Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2009, 16:13   #1
RGZZ
Пользователь
 
Регистрация: 21.04.2009
Сообщений: 15
По умолчанию Как настроить переключение между элементами управления, созданных на листе?

Никак не могу разобраться, как задать переключение между элементами, созданными на листе, а не в форме. Хотелось бы, чтобы между четырьмя элементами в приложенном файле происходило переключение клавишей ТАБ. И, чтобы при нажатии ЕНТЕР, при нахождении в каком-либо ТЕКСТБОКСЕ, происходило бы нажатие на кнопку FILTER

sample.rar
RGZZ вне форума Ответить с цитированием
Старый 30.04.2009, 19:42   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Добавьте к Вашему коду ещё несколько строк:
(не забыв предварительно разгруппировать все элементы, а то не удаётся передать фокус соседнему текстбоксу)

Код:
Private Sub First_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 9 Then KeyCode = 0: Me.Second.Activate ' нажат Tab
    If KeyCode = 13 Then CommandButton2_Click ' нажат Enter
End Sub
Private Sub Second_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 9 Then KeyCode = 0: Me.First.Activate
    If KeyCode = 13 Then CommandButton2_Click
End Sub

' без этого безобразия текстбоксы при получении фокуса почему-то исчезают с экрана :(
Private Sub Second_GotFocus()
    Me.Second.Text = Me.Second.Text & " ":    Me.Second.Text = Trim(Me.Second.Text)
End Sub
Private Sub First_GotFocus()
    Me.First.Text = Me.First.Text & " ":    Me.First.Text = Trim(Me.First.Text)
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 01.05.2009, 08:47   #3
RGZZ
Пользователь
 
Регистрация: 21.04.2009
Сообщений: 15
По умолчанию

спасибо большое!
При нажатии ентер все фильтруется, но вот при нажатии ТАБ, ругается на меня такими словами:

Run time error '1004'
Activate metod of OLEObject class failed

Private Sub First_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 9 Then KeyCode = 0: Me.Second.Activate ' нажат Tab
If KeyCode = 13 Then CommandButton2_Click ' нажат Enter
End Sub

-------------------------------------

Разобрался! Я по невнимательности разгруппировал не до конца ))

СПАСИБО.

Последний раз редактировалось RGZZ; 01.05.2009 в 09:27. Причина: разобрался
RGZZ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу разобраться с элементами управления на форме aRmЯn Общие вопросы по Java, Java SE, Kotlin 1 17.04.2009 01:36
ячейка на одном листе, в которую необходимо подставлять данные из столбца, находящегося на другом листе Ирина Водолагина Microsoft Office Excel 4 04.03.2009 23:38
Как сделать так, чтобы переключение между окнами было автоматическим? barand Свободное общение 9 07.07.2008 23:54
Access в Delphi. Как аполнить массив элементами поля таблицы? VladimirAleks БД в Delphi 3 12.09.2007 14:28