Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2009, 17:08   #1
Lexx_forum
 
Регистрация: 16.02.2009
Сообщений: 7
По умолчанию Вставить кнопку

Можно ли через макрос вставить на листе кнопку?
Если можно , то как...и как с ней потом работать? (обработка событий, и т.д.)
Lexx_forum вне форума Ответить с цитированием
Старый 19.02.2009, 17:28   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Да, можно.
Соответственно, обработчики событий придётся прописывать тоже макросом. Можно и не прописывать обработчики, а использовать классы...
В любом случае, это долго делать.

Вопрос в другом - зачем всё это нужно? Может, поискать более простые способы решения задачи?

Проще создать все кнопки изначально, а потом скрывать / отображать необходимые кнопки по мере надобности.
EducatedFool вне форума Ответить с цитированием
Старый 19.02.2009, 18:07   #3
Lexx_forum
 
Регистрация: 16.02.2009
Сообщений: 7
По умолчанию

Мне нужно , чтобы при нажатии определенной кнопки Ексел сам мог создавать новую вкладку с данными из БД SQL Server и кнопкой, ссылающуюся на макрос, который бы потом обрабатывал эти данные....
Т.е. создавались новые однообразные типовые листы без участия пользователя.
Lexx_forum вне форума Ответить с цитированием
Старый 20.02.2009, 06:15   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Это легко реализуется при помощи шаблона листа.

Создаёте лист с кнопкой (и с макросами для этой кнопки, расположенными в молуле этого листа). При желании делаете лист скрытым.

Потом, при нажатии определённой кнопки, макрос будет копировать этот лист-шаблон в любую из книг - вот Вам и готовый лист с работающей кнопкой.
EducatedFool вне форума Ответить с цитированием
Старый 20.02.2009, 10:22   #5
Lexx_forum
 
Регистрация: 16.02.2009
Сообщений: 7
По умолчанию

Да это один из выходов.Но уточню немного.На листе должны выводиться данные из таблицы SQL Server.Вехняя строка закреплена.Количество столбцов неизвестно.Кнопка привязывалась бы к след. за последним столбцов.
Можно конечно создать шаблон и кнопку привязать к первой ячейке, тогда проблемы снимутся.
Но просто интересно самому как с помощью макроса создть кнопку.Если можно приведите пример или ссылку.
Спасибо.
Lexx_forum вне форума Ответить с цитированием
Старый 20.02.2009, 11:04   #6
Юнлинг
Форумчанин
 
Регистрация: 17.10.2008
Сообщений: 239
По умолчанию

Цитата:
Сообщение от Lexx_forum Посмотреть сообщение
Да это один из выходов.Но уточню немного.На листе должны выводиться данные из таблицы SQL Server.Вехняя строка закреплена.Количество столбцов неизвестно.Кнопка привязывалась бы к след. за последним столбцов.
Можно конечно создать шаблон и кнопку привязать к первой ячейке, тогда проблемы снимутся.
Но просто интересно самому как с помощью макроса создть кнопку.Если можно приведите пример или ссылку.
Спасибо.
А почему не сделать ToolBar меню. Тогда ты не будешь привязан к листку. а чтение макросом данных SQL это не проблема.
Кроме того это меню не будет привызано к листку или можно сделать чтобы при переходе на другой лист кроме нужного они становились бы не активными. а сделать меню очень просто
см. код
Код:
sub auto_open()

On Error Resume Next

Set cbar1 = CommandBars.Add(Name:="Custom1", Position:=msoBarTop)
cbar1.Visible = True

Set myControl = Application.CommandBars("Custom1").Controls.Add(Type:=msoControlButton)
With myControl
   .Style = msoButtonCaption
   .Caption = "<кнопка1>"
   .OnAction = "msoControlButton_onClick"
End With
...   
End Sub

Sub msoControlButton_onClick()
    макрос1()
End Sub
...

Sub auto_close()
    On Error Resume Next
    CommandBars("Custom1").Delete
End Sub
Есть правда один нюанс в 2007 excelе от прячится в пользовательское меню.
Чем это не выход из положения
Юнлинг вне форума Ответить с цитированием
Старый 20.02.2009, 11:14   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
Но просто интересно самому как с помощью макроса создть кнопку
Вот и поставьте кнопку на лист, только предварительно начните записывать макрос.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 12.03.2009, 22:19   #8
druft
Новичок
Джуниор
 
Регистрация: 12.03.2009
Сообщений: 2
По умолчанию кнопки в Excel 2007

Прошу подсказать,как сделать несколько кнопок в excel 2007 на разные сайты?
druft вне форума Ответить с цитированием
Старый 12.03.2009, 22:30   #9
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
как сделать несколько кнопок в excel 2007 на разные сайты
Элементарно.

1) Рисуем кнопки
2) Назначаем каждой гиперссылку (пункт в контекстном меню)

Пример во вложении:
Вложения
Тип файла: rar Кнопки с гиперссылками.rar (1.8 Кб, 94 просмотров)
EducatedFool вне форума Ответить с цитированием
Старый 12.03.2009, 23:22   #10
druft
Новичок
Джуниор
 
Регистрация: 12.03.2009
Сообщений: 2
По умолчанию

[QUOTE=EducatedFool;219971]Элементарно.

1) Рисуем кнопки
2) Назначаем каждой гиперссылку (пункт в контекстном меню)

Пример во вложении:[/QUO

А с помощью макросов как?Одна кнопка получается,а несколько нет.не врублюсь,что за команду писать надо(((
druft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нажать кнопку Dron_kss Работа с сетью в Delphi 1 28.03.2009 17:33
Закрасить кнопку artemavd Общие вопросы Delphi 9 12.07.2008 15:37
Как с поиощью hiew вставить в файл строчку, "раздвинуть" файл и вставить туда строчку? barand Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 28.06.2008 10:58
Нажать кнопку Teen4jump Работа с сетью в Delphi 11 29.02.2008 08:33
Как вставить Gif анимацию на кнопку Aleksandr Общие вопросы Delphi 8 24.05.2007 08:19