Доброго всем дня. Во вложении пример из книги Джона Волкенбаха из 22 главы. В файле есть вкладка My Stuff с группой Galleries Помогите пожалуйста поправить обратный вызов для Gallery1 onAction, так чтобы при выборе месяца в Pick a Month макрос прокручивал лист и отображал таблицу с нужным месяцем, т.е. без какого либо фильтрования, просто переходил к этому месту на листе. Таблицам с месяцами присвоены имена _ Месяц1, Месяц2, …
Заранее спасибо.
Доброго всем дня. Во вложении пример из книги Джона Волкенбаха из 22 главы. В файле есть вкладка My Stuff с группой Galleries Помогите пожалуйста поправить обратный вызов для Gallery1 onAction, так чтобы при выборе месяца в Pick a Month макрос прокручивал лист и отображал таблицу с нужным месяцем, т.е. без какого либо фильтрования, просто переходил к этому месту на листе. Таблицам с месяцами присвоены имена _ Месяц1, Месяц2, …
'Обратный вызов для 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 по-русски не воспринимается почему-то
Привет вот так попробуйте [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
Спасибо огромное, всё заработало как надо. Только пришлось немножко помесить строчки в customUI. Подскажите пожалуйста, в данном случае он ориентируется на название перодов в колонке 2 и нет надобности обзывать таблицы (Месяц1, Месяц2, ...)? В моём случае было изменено количество столбцов и строк в Gallery1 (сделал 4х4) т.к. были добавлены промежуточные таблицы (кварталы). А чтобы смотрелось всё по порядку, соответственно пришлось в customUI сменить расположение кнопок месяцев... по умолчанию он располагает их в строках с лева на право, а я сделал в столбцах сверху вниз, и в этом случае он почему то не привязывался к названием месяца в таблице а продолжает делать как будто по строкам...
Спасибо огромное, всё заработало как надо. Только пришлось немножко помесить строчки в customUI. Подскажите пожалуйста, в данном случае он ориентируется на название перодов в колонке 2 и нет надобности обзывать таблицы (Месяц1, Месяц2, ...)? В моём случае было изменено количество столбцов и строк в Gallery1 (сделал 4х4) т.к. были добавлены промежуточные таблицы (кварталы). А чтобы смотрелось всё по порядку, соответственно пришлось в customUI сменить расположение кнопок месяцев... по умолчанию он располагает их в строках с лева на право, а я сделал в столбцах сверху вниз, и в этом случае он почему то не привязывался к названием месяца в таблице а продолжает делать как будто по строкам...kvadimod
Вадимка
Сообщение отредактировал kvadimod - Четверг, 13.11.2014, 13:48
тогда и в коде поменяйте порядок следования эл-тов [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.]
тогда и в коде поменяйте порядок следования эл-тов [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
Яндекс.Деньги 4100159601573
Сообщение отредактировал nilem - Четверг, 13.11.2014, 15:31