Модераторы: mihanik

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание кнопрки на странице Excel, Кнопка + макрос. 
V
    Опции темы
TigraZver
  Дата 31.5.2008, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 26.3.2008

Репутация: нет
Всего: нет



Доброго времени суток народ.
Есть небольшая проблемка, может кто знает ... 
Нужно на листе Excelя  создать кнопочку и чтоб по её нажатию открывалась определенная  страница той же книги. 
Есть предложения?  
PM MAIL   Вверх
Naghual
Дата 31.5.2008, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Так а проблема то в чем?
Что именно не получается?


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
TigraZver
Дата 31.5.2008, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 26.3.2008

Репутация: нет
Всего: нет



Цитата(Naghual @ 31.5.2008,  18:18)
Так а проблема то в чем?
Что именно не получается?

Вопрос как это сделать .
Через макрос или программно?
как кнопку засунуть на страницу? 
PM MAIL   Вверх
Naghual
Дата 31.5.2008, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Отмечаешь галочкой пункт меню   Вид > Панели Инструментов > Элементы управления.
У тебя появляется панелька с элементами управления.
Выбираешь на ней Кнопку и размещаеш ее на Листе.



--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
bilya
Дата 1.6.2008, 05:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 3.1.2007

Репутация: 1
Всего: 1



Какой офис?
PM MAIL   Вверх
Naghual
Дата 1.6.2008, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



bilya, а есть принципиальная разница?   Я просто с 2007 не работал - даже интересно как там.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
TigraZver
Дата 1.6.2008, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 26.3.2008

Репутация: нет
Всего: нет



Цитата(bilya @ 1.6.2008,  05:11)
Какой офис?

2003

Добавлено через 1 минуту и 27 секунд
Цитата(Naghual @ 31.5.2008,  23:55)
Отмечаешь галочкой пункт меню   Вид > Панели Инструментов > Элементы управления.
У тебя появляется панелька с элементами управления.
Выбираешь на ней Кнопку и размещаеш ее на Листе.

С кнопкой разобрались, спасибо. Теперь вопрос что писать?
Создавать макрос или есть какой то способ прописки действия?
PM MAIL   Вверх
mihanik
Дата 1.6.2008, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109



Вот так я делал в MS Outlook.
Код


' Подключимся к панели меню приложения...
    Set objOutlook = Application
    Set objMenuBar = objOutlook.ActiveWindow.CommandBars("Menu Bar")
    Call AppendToFile(strLogFileName, "Подключился успешно." & vbCrLf)

' Если на панели остались мои кнопки с предыдущих сеансов, то удалим их
    Call AppendToFile(strLogFileName, "Ищу ""старые"" кнопки и пытаюсь их удалить.")
    For Each i In objMenuBar.Controls
        If i.Caption = "Synhronyse" Then i.Delete
    Next
    Call AppendToFile(strLogFileName, "Результат: успешно." & vbCrLf)

' Создадим свою кнопку в панели меню и придадим ей нужный вид...
    Call AppendToFile(strLogFileName, "Пытаюсь создать собственную кнопку на панели ""Меню""")
    Set MyButton = objMenuBar.Controls.Add(Type:=msoControlButton)
    With MyButton
        .BeginGroup = True
        .Style = msoButtonIconAndCaption
        .FaceId = 195
        .Caption = "Synhronyse"
        .OnAction = "MyButton_Click"
    End With
    Call AppendToFile(strLogFileName, "Результат: успешно." & vbCrLf)


В Excel всё работает примерно так же.

Добавлено через 3 минуты и 3 секунды
Или загляни сюда: http://vbstreets.ru/VBA/Articles/65843.aspx

Добавлено через 8 минут и 44 секунды
Цитата

Дополнение панели инструментов

Листинг 3.40. Дополнение панели инструментов

Код

Sub AddCustomCommandBar()
   ' Добавление кнопки на панель инструментов
   With Application.CommandBars(3).Controls.Add(Type:=msoControlButton)
      .FaceId = 42            ' Значок Word
      .Caption = "Кнопка"
      .OnAction = "Макрос"
   End With
End Sub
Листинг 3.41. Добавление кнопки на панель инструментов
Sub AddCustomButton()
   ' Добавление кнопки на панель инструментов
   With Application.Toolbars(1).ToolbarButtons.Add(button:=222)
      .Name = "Кнопка"
      .OnAction = "Макрос"
   End With
End Sub

Примеры создания панелей инструментов

Листинг 3.42. Панель с одной кнопкой

Код

Sub CreateCustomControlBar()
   ' Создание панели инструментов
   With Application.CommandBars.Add(Name:="Панель", Temporary:=True)
      ' Создание и настройка кнопки
      With .Controls.Add(Type:=msoControlButton)
         .Style = msoButtonIconAndCaption
         .FaceId = 66
         .Caption = "Просто кнопка"
      End With
      ' Покажем панель
      .Visible = True
   End With
End Sub

Листинг 3.43. Панель с двумя кнопками

Код

Sub CreateCustomControlBar()
   ' Создание панели инструментов
   With Application.CommandBars.Add(Name:="Панель", Temporary:=True, _
    Position:=msoBarLeft)
      ' Создание и настройка первой кнопки
      With .Controls.Add(Type:=msoControlButton)
         .Style = msoButtonWrapCaption
         .Caption = "Просто кнопка"
      End With
      ' Создание и настройка второй кнопки
      With .Controls.Add(Type:=msoControlButton)
         .Style = msoButtonIconAndWrapCaption
         .Caption = "Кнопка"
         .FaceId = 225
      End With
      ' Покажем панель
      .Visible = True
   End With
End Sub

Листинг 3.44. Создание панели справа

Код

Sub CreateCustomControlBar()
   ' Создание панели инструментов
   With Application.CommandBars.Add(Name:="Правая панель", _
    Temporary:=True)
      ' Создание и настройка кнопки
      With .Controls.Add(Type:=msoControlButton)
         .Style = msoButtonWrapCaption
         .Caption = "Кнопка"
      End With

      ' Задание позиции - справа
      .Position = msoBarRight
      ' Покажем панель
      .Visible = True
   End With
End Sub



Формирование пользовательского меню

Листинг 3.45. Создание пользовательского меню (вариант 1)

Код

Sub AddCustomMenu()
   ' Добавление меню
   With Application.CommandBars(1).Controls.Add(Type:=msoControlPopup, _
    Temporary:=True)
      .Caption = "Архив"
      With .Controls
         ' Добавление и настройка первого пункта
         With .Add(Type:=msoControlButton)
            .FaceId = 280
            .Caption = "Просмотр"
            .OnAction = "Макрос1"
         End With
         ' Добавление вложенного меню
         With .Add(Type:=msoControlPopup)
            .Caption = "База данных"
            With .Controls
               ' Добавление и настройка первого пункта _
                вложенного меню
               With .Add(Type:=msoControlButton)
                  .FaceId = 1643
                  .Caption = "Поставщики"
                  .OnAction = "Макрос2"
               End With
               ' Добавление и настройка второго пункта _
                вложенного меню
               With .Add(Type:=msoControlButton)
                  .FaceId = 1000
                  .Caption = "Покупатели"
                  .OnAction = "Макрос3"
               End With
            End With
         End With
      End With
   End With
End Sub


Листинг 3.46. Создание пользовательского меню (вариант 2)

Код

Sub AddCustomMenu1()
   ' Добавление меню с названием "Архив" в часть меню, _
    относящуюся к рабочей книге
   With MenuBars("Worksheet").Menus.Add(Caption:="Архив")
      ' Добавление кнопки
      .MenuItems.Add Caption:="Просмотр", OnAction:="Макрос1"
      ' Добавление подменю
      With .MenuItems.AddMenu(Caption:="База данных")
         ' Добавление пунктов подменю
         .MenuItems.Add Caption:="Поставщики", OnAction:="Макрос2"
         .MenuItems.Add Caption:="Покупатели", OnAction:="Макрос3"
      End With
   End With
End Sub


Листинг 3.47. Создание пользовательского меню (вариант 3)

Код

Sub AddCustomMenu2()
   ' Добавление меню с названием "Архив" в часть меню, _
    относящуюся к рабочей книге
   With MenuBars("Worksheet").Menus.Add(Caption:="Архив")
      ' Добавление кнопки
      .MenuItems.Add Caption:="Просмотр", OnAction:="Макрос1"
      ' Добавление подменю
      With .MenuItems.AddMenu(Caption:="База данных")
         ' Добавление первого пункта подменю
         With .MenuItems.Add(Caption:="Поставщики")
            ' Настройка кнопки
            .OnAction = "Макрос2"
         End With
         ' Добавление второго пункта подменю
         With .MenuItems.Add(Caption:="Покупатели")
            ' Настройка кнопки
            .OnAction = "Макрос3"
         End With
      End With
   End With
End Sub



Добавлено через 13 минут и 30 секунд
О!!!

Нашёл свой старый проект по Excel

Код

Sub MakeMyMenu()
Dim objCmndBars As CommandBars
Dim objCmndBar As CommandBar
Dim objMyButton As CommandBarButton

' Удаляем старое меню
    Set objCmndBars = Application.CommandBars
        For Each objCmndBar In objCmndBars
            If objCmndBar.Name = "Mihanik" Then objCmndBar.Delete
        Next
    Set objCmndBars = Nothing
    
' Создаём новое меню
    Set objCmndBar = Application.CommandBars.Add("Mihanik", msoBarTop)
        objCmndBar.Visible = True
        ' Добавим кнопки в созданное меню
        
        ' Кнопка "Создать новый документ"
        Set objMyButton = objCmndBar.Controls.Add(Type:=msoControlButton)
        With objMyButton
            .BeginGroup = True
            .Style = msoButtonIconAndCaption
            .FaceId = 195
            .Caption = "NewDoc"
            .OnAction = "NewDoc_Click"
        End With
        
        
    Set objCmndBar = Nothing


End Sub



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Naghual
Дата 1.6.2008, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



mihanik, крут!!!


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
mihanik
Дата 2.6.2008, 06:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109



Но это всё немного не о теме.

Проще нарисовать обычную кнопку на листе и назначить простейший макрос.



Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  Sheets1.rar 6,01 Kb


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Naghual
Дата 2.6.2008, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Цитата(mihanik @  2.6.2008,  06:33 Найти цитируемый пост)
Проще нарисовать обычную кнопку на листе и назначить простейший макрос.

Так вот и я о том-же!!!
 smile 


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Staruha
Дата 2.6.2008, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



Да уж mihanik как с цепи сорвался  Я конечно себе в копилочку smile запишу но начинающих ты ипугаешь просто таким кодом и у них отпадет все желание... smile  программировать

Код

 Лист2.Activate

так попроще будет

Добавлено @ 10:34
хотя впрочем ,если к примеру адрес -переменное значение например выбираем из списка
Код

Adrs = Лист4.Range("A4").Value
Adr = Лист4.Cells(4, Adrs)
A = Лист4.Cells(5, Adrs)

 Nam = Sheets.Parent.Name
Workbooks(Adr).Sheets(A).Activate
Workbooks(Adr).Sheets(A).Range("A1").Value = Nam


Это сообщение отредактировал(а) Staruha - 2.6.2008, 10:36


--------------------
Возмездие настигнет
PM MAIL   Вверх
Staruha
Дата 2.6.2008, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



Да тут в добавок открывается другая книга свернутая на столе


--------------------
Возмездие настигнет
PM MAIL   Вверх
TigraZver
Дата 2.6.2008, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 26.3.2008

Репутация: нет
Всего: нет



Ну народ порадовалиsmile 
Активненько smile И весьма продуктивненько! 

mihanik порадовал своим энтузиазмом  - взято на заметку smile Мерси.
Staruha ну зря ты так на Мишку... он молодца smile 
VB не в быту у меня, но с программированием знакомства есть , так что в основном все понятно.
Но все же сделала через макрос smile

так что всем спасибо еще раз и  наверно тему закрываю.

Это сообщение отредактировал(а) TigraZver - 2.6.2008, 13:39
PM MAIL   Вверх
bilya
Дата 3.6.2008, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 3.1.2007

Репутация: 1
Всего: 1



Naghual, дык в том и дело - не могу я в этом безобразии (2007) найти элементы управления (на всякий случай краснею). А вообще - по-моему - издевательство. Так перекрутить офис к которому за десятилетие народ уже привык и приспособился, и, по типу которого, даже всякие опен_офисы понаделали... Не люблю я его. Как не делаю что-нибудь в нем - так матерю
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.1507 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.