Страницы: 1
RSS
Меню из макросов
 
Всем привет.
Подскажите плиз 2 момента:

1. Как сделать меню из макросов.
Т.е. по горячей клавише запускался макрос, который будет открывать меню (и подменю) из других макросов. Если можно с примером
Меню отдельное, не на панели инструментов или ленте Exel


Заранее признателен
 
1. Один вопрос - одна тема.
2. Файл-пример ускорит помощь

Не забывайте отписываться в своих темах
 
Цитата
NewMaestro написал: Если можно с примером
Фраза порадовала. Сами пример зажали, а Вам сделай. Вон оно как   :D
"Все гениальное просто, а все простое гениально!!!"
 
1. Я понял, спасибо

2. Какой пример. Я же написал вроде что хотелось бы. Разжёвываю:
я стою на определенной ячейке, нажимаю горячую клавишу и запускается макрос, который реализует меню (может такое нельзя сделать, но думаю что можно), каждый из подпунктов которого будет вывзывать другой макрос, как еще сказать не знаю.
Горяча клавиша -> Меню: подменю1, подменю2, подменю3 и т.д.
При выборе Подменю1 -> запрускается макрос с соответсвующим названием и т.д., а что он будет делать это же уже не важно, пускай в примере он будет печатать цифру 1.1  1.2 и т.д  ;) . Важен сам принцип организации меню
Приложил скрин. Это у меня есть программа, которая это реализует это в винде (можно проги разные вызывать и т .д.), а тут такую же фишку надо реализовать внутри Exel

Надеюсь сейчас доступно объяснил  ;)

3. В прошлой теме отписался
Изменено: NewMaestro - 08.02.2019 12:35:31
 
Цитата
Меню отдельное, не на панели инструментов или ленте
Хмм... Это как?  И где?
Не в меню и не а панели?
А где? На заборе?
Вам в кабаке приносят отдельное меню?
Хде это отдельное меню должно, по вашему, распологаться в екселе?
 
Цитата
Александр Моторин написал:
Хмм... Это как?  И где?Не в меню и не а панели?
ок, не вопрос, пускай будет меню на ленте, но именно меню с выпадающими подменю
Изменено: NewMaestro - 08.02.2019 12:36:56
 
Изучайте Ribbon и будет Вам меню на ленте
"Все гениальное просто, а все простое гениально!!!"
 
Цитата
Nordheim написал:
Изучайте Ribbon и будет Вам меню на ленте
ну конечно, самый гениальный ответ как всегда. мне в прошлом топике так тоже советовали, а другие взяли и примеры показали и все сразу стало понятно. Я разобрался и реализовал. мне кажется вот ЭТО помощь
Изменено: NewMaestro - 08.02.2019 12:42:07
 
Цитата
NewMaestro написал:
Меню отдельное, не на панели инструментов или ленте
Я так понял, что автор хочет нечто похожее на листе в ячейке. Аналог: правый клик - Сортировка - и там уже выбор.
 
Цитата
Юрий М написал:
Я так понял, что автор хочет нечто похожее на листе в ячейке. Аналог: правый клик - Сортировка - и там уже выбор.
ну я не знаю. Просто меню (со своими подменю) из макросов и все
 
Цитата
NewMaestro написал:Я разобрался и реализовал.
С Ribbon невозможно разобраться не поняв механизма работы. Если я Вам сделаю меню, это ничего не даст.
"Все гениальное просто, а все простое гениально!!!"
 
Цитата
NewMaestro написал:
мне кажется вот ЭТО помощь
кажется. Это не помощь, а выполнение Вашей задачи за Вас с нуля. Вот что это.
Если есть желание именно разобраться - вот здесь я расписывал как создавать надстройки, в том числе с меню: Как создать свою надстройку?
Там приложены готовые примеры надстроек - изучайте.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Nordheim написал:
Если я Вам сделаю меню, это ничего не даст.
пример может быть простейший как я выше писал.
Название меню и каждый из подпунктов которого запускает пустой макрос. лучше в 3 уровня. на скрине выше я показал 2 уровня подменю
 
Цитата
NewMaestro написал:
ну я не знаю. Просто меню (со своими подменю)
Но ведь само меню должно ГДЕ-ТО отображаться? Вот я и предположил, что в ячейке. Т.е. добавить свой пункт в стандартное меню, выпадающее по ПКМ.
 
Простейший пример меню на ленте реализованный с помощью Ribbon. Изучайте, разбирайтесь.
Изменено: Nordheim - 08.02.2019 12:56:36
"Все гениальное просто, а все простое гениально!!!"
 
Цитата
Юрий М написал: Но ведь само меню должно ГДЕ-ТО отображаться?
я может не так понял. В ячейке самое то, только не постоянно оно отображаться должно получается (если я опять правильно понимаю) а только по запуску макроса

Цитата
Юрий М написал: ПКМ
это клик Правой кнопкой мыши ? Если Да, то этот вариант подходит, только наверное надо чтобы он работа не на постоянке, а при определенных условиях наверное
 
Цитата
NewMaestro написал:
только не постоянно оно отображаться
Что значит постоянно? Нажали правую кнопку мышки - появилось меню. У Вас разве сейчас не так?
 
да-да, именно так

Если я правильно понял, то в стандартное меню ПКМ можно добавить СВОЁ меню с подменю, так?
Это был бы Идеальный вариант
Изменено: NewMaestro - 08.02.2019 13:05:27
 
Доброе время суток.
Цитата
NewMaestro написал:
пример может быть простейший как я выше писал.
А что воспользоваться существующими в инете решения - религия не позволяет? Например Creating a PopUp Menu
 
Цитата
Nordheim написал:
Простейший пример меню на ленте реализованный с помощью Ribbon. Изучайте, разбирайтесь.
Это как вариант, но через ПКМ было бы ИДЕАЛЬНО!
 
Цитата
Юрий М написал:
Нажали правую кнопку мышки - появилось меню
Предложите свой вариант примера?
 
У меня нет примера - не пользуюсь этим ) По ссылке из #19 смотрели?
 
Цитата
Юрий М написал:
У меня нет примера - не пользуюсь этим ) По ссылке из #19 смотрели?
я понял, буду изучать, займет намного больше времени чем я думал  :cry:

Можно считать тему закрытой (не решенной), т.к. привести работающий пример тут, к сожалению, не кому, точнее нет желания  ;)
Придется пока использовать вариант Nordheim
Всем Спасибо и хороших выходных  
Изменено: NewMaestro - 08.02.2019 20:27:49
 
Цитата
NewMaestro написал:
Придется пока использовать вариант  Nordheim
Ну удачи... :D
"Все гениальное просто, а все простое гениально!!!"
 
Цитата
NewMaestro написал:
привести работающий пример тут, к сожалению, не кому, точнее нет желания
А самому поискать - никак? Что за манера - плакаться? Разжалобить пытаетесь? )
Я вот в поиск ввёл запрос Popup и нашёл пример. Посмотрите пример от Sanja в этой теме.
 
Цитата
NewMaestro написал:
привести работающий пример
интересно, как вы определили, что код по ссылке не рабочий? Я так скопипастил, повесил на ctrl+shift+l - отработало, как было описано в статье.
 
С выбором в выпадающем списке на форме.
Код:
Код
Private Sub ComboBox1_Click()
Me.Hide
Application.Run (ComboBox1.List(ComboBox1.ListIndex))
End Sub

Private Sub UserForm_Activate()
Dim oo As Object, a&, b&, c&, dt$, arr(), wb As Workbook
Set wb = ThisWorkbook
Set oo = wb.VBProject.vbComponents
For a = 1 To oo.Count
  If oo.Item(a).Type = 1 Then
    With oo.Item(a).CodeModule
      If .CountofLines > 1 Then
        For b = 1 To .CountofLines
          dt = .Lines(b, 1)
          If InStr(dt, "Sub") > 0 And InStr(dt, ")") - InStr(dt, "(") = 1 Then
            c = c + 1: ReDim Preserve arr(1 To c): b = b + 1
            arr(c) = Mid$(dt, InStr(dt, "Sub") + 4, InStr(dt, "(") - InStr(dt, "Sub") - 4)
            Do While InStr(.Lines(b, 1), "End Sub") < 1: b = b + 1: Loop
          End If
        Next
      End If
    End With
  End If
Next
Me.Caption = "Выбор макроса"
ComboBox1.List = arr
Set wb = Nothing: Set oo = Nothing
End Sub
 
Цитата
NewMaestro написал: 1. Как сделать меню из макросов ... Меню отдельное, не на панели инструментов или ленте Exel
Цитата
NewMaestro написал: клик Правой кнопкой мыши ? Если Да, то этот вариант подходит
Ну, так вам есть что почитать в интернете и книгах ... : ) ... например:

https://docs.microsoft.com/ru-ru/previous-versions/office/gg469862(v=office.14)
https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2010/gg469862(v=office.14...

https://www.mrexcel.com/forum/excel-questions/661447-customizing-right-click-menu-commandbars-cell.h...
https://www.mrexcel.com/forum/excel-questions/525939-vba-list-available-commandbars-excel-2010-a.htm...

https://www.rondebruin.nl/win/s6/win001.htm
https://social.msdn.microsoft.com/Forums/office/en-US/667e7bb2-4359-4cf7-9e59-fb51d7ecde5a/how-do-i-...

Например под право-клик:
Это было для темы:
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=105966&a...
Страницы: 1
Наверх