Дата: Понедельник, 23.02.2015, 00:25 |
Сообщение № 1
Группа: Гости
Добрый вечер! Подскажите, пожалуйста, как в программе excel привязать к кнопке два макроса попеременно, то есть что бы не от одного нажатия на кнопку выполнялось сразу 2 макроса одновременно, а по очереди (1 нажатие - выполняет 1 макрос, 2 нажатие - выполняет 2ой макрос) возможно ли это? И возможно ли сделать так до 5ти нажатий?
Добрый вечер! Подскажите, пожалуйста, как в программе excel привязать к кнопке два макроса попеременно, то есть что бы не от одного нажатия на кнопку выполнялось сразу 2 макроса одновременно, а по очереди (1 нажатие - выполняет 1 макрос, 2 нажатие - выполняет 2ой макрос) возможно ли это? И возможно ли сделать так до 5ти нажатий?Аркадий
Можете менять надпись на кнопке после каждого запуска и отталкиваясь от записи на кнопке запускать нужный макрос. Или счётчик Public или Static создайте, но тогда юзеру непонятно будет какой же макрос выполниться по нажатию на кнопку.
Может ваша проблема решается иными способами? Для чего нужна пауза между нажатиями? Очень необычный подход вы выбираете)
Можете менять надпись на кнопке после каждого запуска и отталкиваясь от записи на кнопке запускать нужный макрос. Или счётчик Public или Static создайте, но тогда юзеру непонятно будет какой же макрос выполниться по нажатию на кнопку.
Может ваша проблема решается иными способами? Для чего нужна пауза между нажатиями? Очень необычный подход вы выбираете)Leanna
Лучше день потерять, потом за пять минут долететь!
Сообщение отредактировал Leanna - Понедельник, 23.02.2015, 00:31
Leanna, хотел сделать для автоматизации математических подсчетов, что бы кнопка работала хотя бы по принципу вкл/выкл (1 или 0). Использовать две кнопки отдельно - будит занимать достаточно много место, поэтому хотелось бы, что бы эту задачу выполняла одна кнопка Но, к сожалению, технически не совсем подкован P/S/ знаю, что в таком случае можно использовать флажок, при этом не прибегая к сложным алгоритмам, но хотелось бы использовать кнопку
Leanna, хотел сделать для автоматизации математических подсчетов, что бы кнопка работала хотя бы по принципу вкл/выкл (1 или 0). Использовать две кнопки отдельно - будит занимать достаточно много место, поэтому хотелось бы, что бы эту задачу выполняла одна кнопка Но, к сожалению, технически не совсем подкован P/S/ знаю, что в таком случае можно использовать флажок, при этом не прибегая к сложным алгоритмам, но хотелось бы использовать кнопку Bigimoot27
Bigimoot27, так менять программно надпись на кнопке - не подходит? Выполнили макрос "вкл" - он изменил после выполнения себя на "выкл". Выполнили "выкл" - он изменил после выполнения себя на "вкл".
Bigimoot27, так менять программно надпись на кнопке - не подходит? Выполнили макрос "вкл" - он изменил после выполнения себя на "выкл". Выполнили "выкл" - он изменил после выполнения себя на "вкл".Leanna
Лучше день потерять, потом за пять минут долететь!
И еще вариант. Только здесь еще нужно прилепить на открытие книги [vba]
Код
Private Sub Workbook_Open() Лист1.CommandButton1.Caption = "Макрос1" End Sub
[/vba] Файл перевложил [vba]
Код
Dim n_ Private Sub CommandButton1_Click() Select Case n_ Case 1 tt1 n_ = n_ + 1 Case 2 tt2 n_ = n_ + 1 Case 3 tt3 n_ = n_ + 1 Case 4 tt4 n_ = n_ + 1 Case 5 tt5 n_ = 1 Case Else tt1 n_ = 2 End Select CommandButton1.Caption = "Запустить макрос " & n_ End Sub
Sub tt1() MsgBox "Макрос1" End Sub Sub tt2() MsgBox "Макрос2" End Sub Sub tt3() MsgBox "Макрос3" End Sub Sub tt4() MsgBox "Макрос4" End Sub Sub tt5() MsgBox "Макрос5" End Sub
[/vba]
И еще вариант. Только здесь еще нужно прилепить на открытие книги [vba]
Код
Private Sub Workbook_Open() Лист1.CommandButton1.Caption = "Макрос1" End Sub
[/vba] Файл перевложил [vba]
Код
Dim n_ Private Sub CommandButton1_Click() Select Case n_ Case 1 tt1 n_ = n_ + 1 Case 2 tt2 n_ = n_ + 1 Case 3 tt3 n_ = n_ + 1 Case 4 tt4 n_ = n_ + 1 Case 5 tt5 n_ = 1 Case Else tt1 n_ = 2 End Select CommandButton1.Caption = "Запустить макрос " & n_ End Sub
Sub tt1() MsgBox "Макрос1" End Sub Sub tt2() MsgBox "Макрос2" End Sub Sub tt3() MsgBox "Макрос3" End Sub Sub tt4() MsgBox "Макрос4" End Sub Sub tt5() MsgBox "Макрос5" End Sub