Новости:

Новая редакция правил форума: 2.4. Если вопрос или ответ содержится во вложенном файле, все-равно кратко описывайте в сообщении вопрос или суть решения. Это необходимо, чтобы тему можно было найти через поиск.

Главное меню

Отображение кнопки на каждом листе книги

Автор ВЕВ, 24.05.2013, 12:19

« назад - далее »

ВЕВ

Назначил макрос переключателю в Excel (для быстрой навигации между листами книни). Но эта кнопочка осталась на листе, где я создавал. А как сделать так, чтобы эта кнопочка отображалась на каждом листе книги?
Читал, что надо сохранять в личной книге макросов, но у меня такого варианта нет. Есть только: все открытые книги, эта книга.
WinXP. офис 2007

Serge 007

Цитата: ВЕВ от 24.05.2013, 12:19...как сделать так, чтобы эта кнопочка отображалась на каждом листе книги?
Кнопка - это объект. Объект в Excel можно разместить только на листе, но не на книге. Так что на каждый лист вставляйте по кнопке и назначайте им всем один и тот же макрос. А лучше назначить макросу сочетание клавиш или добавить кнопку на ПБД

Цитата: ВЕВ от 24.05.2013, 12:19
...сохранять в личной книге макросов, но у меня такого варианта нет...
Он есть у всех :)
Для того что бы появилась возможность сохранять макросы в личной книге макросов её сперва надо создать. Запишите любой макрос макрорекордером, а в окошке выбора куда его сохранять выберите "Личная книга макросов".
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

ВЕВ

листов в книге около 60, и на каждом надо 4-5 кнопок создать. Не очень удобно так открывать каждый лист и создавать макрос.
А Вы говорили про ПБД. Можно сделать, чтобы именно эта панель появлялась ТОЛЬКО для этой книги?

Serge 007

Цитата: ВЕВ от 24.05.2013, 12:54
Не очень удобно так открывать каждый лист и создавать макрос.
Макрос используется ОДИН, а создавать надо КНОПКУ

Цитата: ВЕВ от 24.05.2013, 12:54
Можно сделать, чтобы именно эта панель появлялась ТОЛЬКО для этой книги?
Вероятно можно на программном уровне, но я о таких способах не слышал.
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

ВЕВ

Спасибо! Кажется получилось. На одном листе создал кнопку, назначил ей макрос. А потом "тупо" скопировал эту кнопку на другие листы. Работает. Спасибо за помощь.

Serge 007

Вот таким макросом можно за секунду добавить кнопку с назначенным ей одним и тем же макросом на все листы книги:
Sub Add_Button()
Dim ws As Worksheet
    For Each ws In ActiveWorkbook.Worksheets
    ws.Buttons.Add(231, 32.25, 72, 72).OnAction = "Макрос1"
Next ws
End Sub
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

Prist

А я бы посоветовал в данном случае на событие открытия книги создавать свою панель с этими кнопками:
Private Sub Workbook_Open()
    On Error Resume Next
    Application.CommandBars("Мои кнопки").Delete
    On Error GoTo 0
    With Application.CommandBars.Add("Мои кнопки", temporary:=True)
        With .Controls.Add
            .Caption = "Кнопка1"
            .Style = 2
            .OnAction = "Макрос1"
        End With
        With .Controls.Add
            .Caption = "Кнопка2"
            .Style = 2
            .OnAction = "Макрос2"
        End With
        ' и т.д.
        .Visible = True
    End With
End Sub

а на событие закрытия удалять:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    On Error Resume Next
    Application.CommandBars("Мои кнопки").Delete
End Sub

Все это надо прописать в модуль ЭтаКнига. Что это и где найти: Что такое модуль? Какие бывают модули?
Тогда при открытии книги меню будет появляться, а при закрытии удаляться. Еще можно на событие Activate и Deactivate показывать/скрывать это меню, если не надо, чтобы оно отображалось при переходе в другую книгу.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453

Serge 007

Цитата: Prist от 24.05.2013, 21:43
А я бы посоветовал в данном случае на событие открытия книги создавать свою панель с этими кнопками
Дим, у ТС
Цитата: ВЕВ от 24.05.2013, 12:19WinXP. офис 2007
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

Prist

Сергей, это ничего не меняет. Данный метод работает в любой версии Excel и Windows. Просто в случае с 2007 и старше, кнопки появляются на вкладке "Надстройки". Чтобы создать отдельную вкладку - надо создавать XML-схему для файла. Что, в общем-то тоже несложно.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453

cooperdon78

Serge 007, благодарю, мне помогли ваши решения!