Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как узнать имя нажатой кнопки / 10 сообщений из 10, страница 1 из 1
18.04.2006, 17:42:23
    #33674355
wild-daemon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать имя нажатой кнопки
Всем привет! Помогите решить задачку. На рабочем листе програмно создаются кнопки:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 Row_ =  11 : Top_ = StartTop
 Do Until Sheets("Лист1").Cells(Row_,  2 ) = ""
   Sheets("Лист1").Buttons.Add(StartLeft_1, Top_, Sheets("Лист1").Cells(Row_,  9 ).Width, Sheets("Лист1").Cells(Row_,  9 ).Height).Select
   Selection.OnAction = "Delet_Material_Record"
   Selection.Name = "Cmd_" & Sheets("Лист1").Cells(Row_,  5 ): Selection.Caption = "Уд": Selection.Font.ColorIndex =  3 
   
   Top_ = Top_ + Sheets("Лист1").Cells(Row_,  9 ).Height: Row_ = Row_ +  1 
 Loop

При нажатии одной из таких кнопок необходимо узнать ее имя. Как програмно это реализовать? Помогите пожалуста. Заранее благодарен, Дмитрий.
...
Рейтинг: 0 / 0
18.04.2006, 20:36:35
    #33674773
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать имя нажатой кнопки
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Public Sub CreateButton()
    ActiveSheet.Buttons.Add( 153 . 75 ,  57 . 75 ,  100 . 5 ,  33 ).Select
    Selection.OnAction = "ButtonName"
End Sub

Public Sub ButtonName()
    Dim strButtonName As String
    
    strButtonName = Application.Caller

    MsgBox ("Вы нажали кнопку: " & strButtonName)
End Sub
...
Рейтинг: 0 / 0
19.04.2006, 08:44:00
    #33675255
wild-daemon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать имя нажатой кнопки
Спасибо ОГРОМНОЕ!! Извините, что вчера не поблагодарил... еще раз СПАСИБО!!!!!!
...
Рейтинг: 0 / 0
19.04.2006, 09:16:56
    #33675316
MX -- ALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать имя нажатой кнопки
Ashton
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Public Sub CreateButton()
    ActiveSheet.Buttons.Add( 153 . 75 ,  57 . 75 ,  100 . 5 ,  33 ).Select
    Selection.OnAction = "ButtonName"
End Sub

Public Sub ButtonName()
    Dim strButtonName As String
    
    strButtonName = Application.Caller

    MsgBox ("Вы нажали кнопку: " & strButtonName)
End Sub

а если кнопка типа "ToggleButton" ?
как можно уловить нажатие если таких кнопок
сотни - созданы динамически
on-процедур нет на каждую кнопу,
а есть только одна на всех ?
".OnAction" не признает
СПАСИБО !
...
Рейтинг: 0 / 0
19.04.2006, 10:39:50
    #33675582
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать имя нажатой кнопки
Т.е. ты создаешь выключатели из состава элементов управления и на нажатие назначаешь им одну процедуру, т.е. получается

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub ToggleButton1_Click()
    Proc1
End Sub

Private Sub ToggleButton2_Click()
    Proc1
End Sub

Public Sub Proc1()
    ' ...
End Sub

И тебе нужно из этой процедуры отловить какую кнопку нажали?
...
Рейтинг: 0 / 0
20.04.2006, 11:01:21
    #33678480
MX -- ALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать имя нажатой кнопки
AshtonТ.е. ты создаешь выключатели из состава элементов управления и на нажатие назначаешь им одну процедуру, т.е. получается

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub ToggleButton1_Click()
    Proc1
End Sub

Private Sub ToggleButton2_Click()
    Proc1
End Sub

Public Sub Proc1()
    ' ...
End Sub

И тебе нужно из этой процедуры отловить какую кнопку нажали?
Private Sub ToggleButton1_Click()
Proc1
End Sub
такого кода вообще нет
на рабочем листе с кнопами вообще нет кода
перехватчик один на всех и в сидит в модуле книги
для обычных кноп при их программном создании пишу
onAction на перехватчик - и никаких проблем

а для этих - не катит - нельзя оказывается onAction
...
Рейтинг: 0 / 0
20.04.2006, 11:40:19
    #33678656
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать имя нажатой кнопки
что-то на панели "формы" я тоже не нашел "ToggleButton"
посмотреть бы код вставки
или шапку обработчика
...
Рейтинг: 0 / 0
20.04.2006, 11:48:48
    #33678696
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать имя нажатой кнопки
Да, и я не нашел. Прикрепите тестовый файл, где реализована динамическая вставка переключателей и один обработчик для них.
...
Рейтинг: 0 / 0
20.04.2006, 14:07:36
    #33679324
Дмит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать имя нажатой кнопки
Сделал для примера ToggleButton.
...
Рейтинг: 0 / 0
20.04.2006, 14:41:25
    #33679468
MX -- ALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать имя нажатой кнопки
ДмитСделал для примера ToggleButton.

Спасибо !

то что надо !
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как узнать имя нажатой кнопки / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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