powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как узнать имя нажатой кнопки
10 сообщений из 10, страница 1 из 1
Как узнать имя нажатой кнопки
    #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
Как узнать имя нажатой кнопки
    #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
Как узнать имя нажатой кнопки
    #33675255
wild-daemon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо ОГРОМНОЕ!! Извините, что вчера не поблагодарил... еще раз СПАСИБО!!!!!!
...
Рейтинг: 0 / 0
Как узнать имя нажатой кнопки
    #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
Как узнать имя нажатой кнопки
    #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
Как узнать имя нажатой кнопки
    #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
Как узнать имя нажатой кнопки
    #33678656
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то на панели "формы" я тоже не нашел "ToggleButton"
посмотреть бы код вставки
или шапку обработчика
...
Рейтинг: 0 / 0
Как узнать имя нажатой кнопки
    #33678696
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, и я не нашел. Прикрепите тестовый файл, где реализована динамическая вставка переключателей и один обработчик для них.
...
Рейтинг: 0 / 0
Как узнать имя нажатой кнопки
    #33679324
Дмит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал для примера ToggleButton.
...
Рейтинг: 0 / 0
Как узнать имя нажатой кнопки
    #33679468
MX -- ALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДмитСделал для примера ToggleButton.

Спасибо !

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


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