Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/макрос на кнопку в ленте - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » макрос на кнопку в ленте (Макросы/Sub)
макрос на кнопку в ленте
kvadimod Дата: Четверг, 13.11.2014, 10:58 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 92
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
Доброго всем дня.
Во вложении пример из книги Джона Волкенбаха из 22 главы. В файле есть вкладка My Stuff с группой Galleries
Помогите пожалуйста поправить обратный вызов для Gallery1 onAction, так чтобы при выборе месяца в Pick a Month макрос прокручивал лист и отображал таблицу с нужным месяцем, т.е. без какого либо фильтрования, просто переходил к этому месту на листе.
Таблицам с месяцами присвоены имена _ Месяц1, Месяц2, …

Заранее спасибо.
К сообщению приложен файл: ribbon_controls.xlsm (78.6 Kb)


Вадимка

Сообщение отредактировал kvadimod - Четверг, 13.11.2014, 10:58
 
Ответить
СообщениеДоброго всем дня.
Во вложении пример из книги Джона Волкенбаха из 22 главы. В файле есть вкладка My Stuff с группой Galleries
Помогите пожалуйста поправить обратный вызов для Gallery1 onAction, так чтобы при выборе месяца в Pick a Month макрос прокручивал лист и отображал таблицу с нужным месяцем, т.е. без какого либо фильтрования, просто переходил к этому месту на листе.
Таблицам с месяцами присвоены имена _ Месяц1, Месяц2, …

Заранее спасибо.

Автор - kvadimod
Дата добавления - 13.11.2014 в 10:58
nilem Дата: Четверг, 13.11.2014, 12:44 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Привет
вот так попробуйте
[vba]
Код
'Обратный вызов для Gallery1 onAction
Sub MonthSelected(control As IRibbonControl, id As String, index As Integer)
'MsgBox "Вы выбрали " & id & " " & index
On Error Resume Next
With Sheets("Лист1")
     .Activate
     Application.Goto .Columns(2).Find(Array("Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", _
                    "Сентябрь", "Октябрь", "Ноябрь", "Декабрь")(index)), True
End With
End Sub
[/vba]
В хмл-схеме перевел назв. месяцев на русский. А вот id по-русски не воспринимается почему-то
К сообщению приложен файл: 7736927.xlsm (77.3 Kb)


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеПривет
вот так попробуйте
[vba]
Код
'Обратный вызов для Gallery1 onAction
Sub MonthSelected(control As IRibbonControl, id As String, index As Integer)
'MsgBox "Вы выбрали " & id & " " & index
On Error Resume Next
With Sheets("Лист1")
     .Activate
     Application.Goto .Columns(2).Find(Array("Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", _
                    "Сентябрь", "Октябрь", "Ноябрь", "Декабрь")(index)), True
End With
End Sub
[/vba]
В хмл-схеме перевел назв. месяцев на русский. А вот id по-русски не воспринимается почему-то

Автор - nilem
Дата добавления - 13.11.2014 в 12:44
kvadimod Дата: Четверг, 13.11.2014, 13:35 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 92
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
Спасибо огромное, всё заработало как надо.
Только пришлось немножко помесить строчки в customUI. Подскажите пожалуйста, в данном случае он ориентируется на название перодов в колонке 2 и нет надобности обзывать таблицы (Месяц1, Месяц2, ...)?
В моём случае было изменено количество столбцов и строк в Gallery1 (сделал 4х4) т.к. были добавлены промежуточные таблицы (кварталы). А чтобы смотрелось всё по порядку, соответственно пришлось в customUI сменить расположение кнопок месяцев... по умолчанию он располагает их в строках с лева на право, а я сделал в столбцах сверху вниз, и в этом случае он почему то не привязывался к названием месяца в таблице а продолжает делать как будто по строкам...


Вадимка

Сообщение отредактировал kvadimod - Четверг, 13.11.2014, 13:48
 
Ответить
СообщениеСпасибо огромное, всё заработало как надо.
Только пришлось немножко помесить строчки в customUI. Подскажите пожалуйста, в данном случае он ориентируется на название перодов в колонке 2 и нет надобности обзывать таблицы (Месяц1, Месяц2, ...)?
В моём случае было изменено количество столбцов и строк в Gallery1 (сделал 4х4) т.к. были добавлены промежуточные таблицы (кварталы). А чтобы смотрелось всё по порядку, соответственно пришлось в customUI сменить расположение кнопок месяцев... по умолчанию он располагает их в строках с лева на право, а я сделал в столбцах сверху вниз, и в этом случае он почему то не привязывался к названием месяца в таблице а продолжает делать как будто по строкам...

Автор - kvadimod
Дата добавления - 13.11.2014 в 13:35
kvadimod Дата: Четверг, 13.11.2014, 14:00 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 92
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
Это примерно так получилось... При выборе Апрель, он показывает Февраль...
файл во вложении
К сообщению приложен файл: 6240758.xlsm (74.8 Kb)


Вадимка

Сообщение отредактировал kvadimod - Четверг, 13.11.2014, 14:02
 
Ответить
СообщениеЭто примерно так получилось... При выборе Апрель, он показывает Февраль...
файл во вложении

Автор - kvadimod
Дата добавления - 13.11.2014 в 14:00
nilem Дата: Четверг, 13.11.2014, 15:29 | Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
тогда и в коде поменяйте порядок следования эл-тов
[vba]
Код
'Обратный вызов для Gallery1 onAction
Sub MonthSelected(control As IRibbonControl, id As String, index As Integer)
On Error Resume Next
With Sheets("Лист1")
'    .Activate
      Application.Goto .Columns(2).Find(Array("Январь", "Апрель", "Июль", "Октябрь", "Февраль", "Май", "Август", "Ноябрь", _
                     "Март", "Июнь", "Сентябрь", "Декабрь", _
                     "1 квартал", "2 квартал", "3 квартал", "4 квартал")(index)), True
End With
End Sub
[/vba]
Find просто ищет во 2-м столбце названия из нашего массива, и, если находит такую ячейку, то Application.Goto перемещает ее в левый верхний угол.
Как-то специально называть таблицы нет необходимости.
[p.s.]"Уокенбах" обычно пишут :)[/p.s.]


Яндекс.Деньги 4100159601573

Сообщение отредактировал nilem - Четверг, 13.11.2014, 15:31
 
Ответить
Сообщениетогда и в коде поменяйте порядок следования эл-тов
[vba]
Код
'Обратный вызов для Gallery1 onAction
Sub MonthSelected(control As IRibbonControl, id As String, index As Integer)
On Error Resume Next
With Sheets("Лист1")
'    .Activate
      Application.Goto .Columns(2).Find(Array("Январь", "Апрель", "Июль", "Октябрь", "Февраль", "Май", "Август", "Ноябрь", _
                     "Март", "Июнь", "Сентябрь", "Декабрь", _
                     "1 квартал", "2 квартал", "3 квартал", "4 квартал")(index)), True
End With
End Sub
[/vba]
Find просто ищет во 2-м столбце названия из нашего массива, и, если находит такую ячейку, то Application.Goto перемещает ее в левый верхний угол.
Как-то специально называть таблицы нет необходимости.
[p.s.]"Уокенбах" обычно пишут :)[/p.s.]

Автор - nilem
Дата добавления - 13.11.2014 в 15:29
kvadimod Дата: Пятница, 14.11.2014, 08:38 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 92
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
Ок! Спасибо огромное, попробую поменять порядок.


Вадимка
 
Ответить
СообщениеОк! Спасибо огромное, попробую поменять порядок.

Автор - kvadimod
Дата добавления - 14.11.2014 в 08:38
kvadimod Дата: Пятница, 14.11.2014, 10:16 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 92
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
Всё здорово, всё получилось!
Спасибо огромное!


Вадимка
 
Ответить
СообщениеВсё здорово, всё получилось!
Спасибо огромное!

Автор - kvadimod
Дата добавления - 14.11.2014 в 10:16
nilem Дата: Пятница, 14.11.2014, 11:15 | Сообщение № 8
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Лады :)


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеЛады :)

Автор - nilem
Дата добавления - 14.11.2014 в 11:15
Мир MS Excel » Вопросы и решения » Вопросы по VBA » макрос на кнопку в ленте (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!