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

Вход

Регистрация

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

 

= Мир MS Excel/Выделение Ряда Диаграммы при наведении Мышью - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выделение Ряда Диаграммы при наведении Мышью (Макросы/Sub)
Выделение Ряда Диаграммы при наведении Мышью
rever27 Дата: Вторник, 04.08.2015, 10:31 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
В офисе 2013 есть функция "Фильтр" для работы с диаграммами, в 2010, увы, ее нет. Возможно ли сделать по подобию фишку, чтоб при наведении на какой либо объект (Флажок) указателя мыши - выделить один ряд диаграммы, при наведении на Флаг 2 - выделять ряд 2? Или это из ряда Фантастики? ) (возможно через Private Sub Chart_MouseMove)
К сообщению приложен файл: 0730857.xlsx (11.4 Kb)
 
Ответить
СообщениеВ офисе 2013 есть функция "Фильтр" для работы с диаграммами, в 2010, увы, ее нет. Возможно ли сделать по подобию фишку, чтоб при наведении на какой либо объект (Флажок) указателя мыши - выделить один ряд диаграммы, при наведении на Флаг 2 - выделять ряд 2? Или это из ряда Фантастики? ) (возможно через Private Sub Chart_MouseMove)

Автор - rever27
Дата добавления - 04.08.2015 в 10:31
KSV Дата: Вторник, 04.08.2015, 13:12 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Или это из ряда Фантастики?

сделать всегда можно все :) (ну, или почти все)

По-хорошему, это делается через хук событий окна, но для вас это может быть сложновато, а долго объяснять лень.
Поэтому, если сильно надо, можете извратиться, например, так:
К сообщению приложен файл: ___MouseMove.xlsm (30.1 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщение
Или это из ряда Фантастики?

сделать всегда можно все :) (ну, или почти все)

По-хорошему, это делается через хук событий окна, но для вас это может быть сложновато, а долго объяснять лень.
Поэтому, если сильно надо, можете извратиться, например, так:

Автор - KSV
Дата добавления - 04.08.2015 в 13:12
miver Дата: Среда, 05.08.2015, 08:23 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 37 ±
Замечаний: 0% ±

Excel 2010
rever27, Предлагаю ознакомится с примером и его описанием chart-events-microsoft-excel
Он, правда, на буржуйском. Зато, очень подробный ;)
 
Ответить
Сообщениеrever27, Предлагаю ознакомится с примером и его описанием chart-events-microsoft-excel
Он, правда, на буржуйском. Зато, очень подробный ;)

Автор - miver
Дата добавления - 05.08.2015 в 08:23
rever27 Дата: Среда, 05.08.2015, 10:40 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
KSV, к сожалению ActiveX не работают на листе "Диаграмма"
miver, Интересная статья, спасибо, но про MouseMove там информации нет.
Придется думать дальше
 
Ответить
СообщениеKSV, к сожалению ActiveX не работают на листе "Диаграмма"
miver, Интересная статья, спасибо, но про MouseMove там информации нет.
Придется думать дальше

Автор - rever27
Дата добавления - 05.08.2015 в 10:40
miver Дата: Среда, 05.08.2015, 13:20 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 37 ±
Замечаний: 0% ±

Excel 2010
rever27, Если вне поля диаграммы не нажимать, то можно так
К сообщению приложен файл: 0730857.xlsm (22.0 Kb)
 
Ответить
Сообщениеrever27, Если вне поля диаграммы не нажимать, то можно так

Автор - miver
Дата добавления - 05.08.2015 в 13:20
rever27 Дата: Среда, 05.08.2015, 15:31 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
miver, Разобрался, интересная Тема. Но когда на графике 20 рядов, а идет поиск выделения каждого, то лагает жутко.
Через цикл For поиск каждого квадрата и выделение нужного ряда не запустить. Остается только прописывать каждому ряду свой код выделения?
 
Ответить
Сообщениеmiver, Разобрался, интересная Тема. Но когда на графике 20 рядов, а идет поиск выделения каждого, то лагает жутко.
Через цикл For поиск каждого квадрата и выделение нужного ряда не запустить. Остается только прописывать каждому ряду свой код выделения?

Автор - rever27
Дата добавления - 05.08.2015 в 15:31
miver Дата: Среда, 05.08.2015, 16:54 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 37 ±
Замечаний: 0% ±

Excel 2010
rever27, Где Ваш файл? Думаю что тормаза из-за большого количества перерисовки. Есть вариантоы решения, но нужно смотреть ;)
 
Ответить
Сообщениеrever27, Где Ваш файл? Думаю что тормаза из-за большого количества перерисовки. Есть вариантоы решения, но нужно смотреть ;)

Автор - miver
Дата добавления - 05.08.2015 в 16:54
rever27 Дата: Четверг, 06.08.2015, 00:24 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
miver, Это был долгий вечер мучений, но я добил код, жаль не до идеала.

Вкратце:
1) Вначале ищем область наших "Прямоугольников", которые отвечают каждый за свой ряд. Продолжаем выполнять макрос только, если указатель в данном общем диапазоне
2) После выделения любого ряда(прямоугольника), запоминает вверх и низ активного прямоугольника, и продолжаем выполнение кода только, если указатель покинет эту зону (Ось Х нас уже не интересуют, т.к. предел проверяется в первом пункте)
3) Выполняем цикл перебора всех Рядов Диаграммы, с условием, что если данный ряд не видим, то пропускаем его выделение.

Прикладываю то, что получилось.
Так же в код заложена подсветка активной ячейки при выделении и затемнение остальных. В общем, все функции, что есть в 2013 Екселе. Для тех, кому сердцу дорог 2010 )

miver, KSV. Буду рад, если посмотрите код на предмет улучшения быстродействия. Со своей стороны на 1,5 недели мучений выжал из него все, что мог )
К сообщению приложен файл: 0737384.xlsm (89.7 Kb)


Сообщение отредактировал rever27 - Четверг, 06.08.2015, 00:25
 
Ответить
Сообщениеmiver, Это был долгий вечер мучений, но я добил код, жаль не до идеала.

Вкратце:
1) Вначале ищем область наших "Прямоугольников", которые отвечают каждый за свой ряд. Продолжаем выполнять макрос только, если указатель в данном общем диапазоне
2) После выделения любого ряда(прямоугольника), запоминает вверх и низ активного прямоугольника, и продолжаем выполнение кода только, если указатель покинет эту зону (Ось Х нас уже не интересуют, т.к. предел проверяется в первом пункте)
3) Выполняем цикл перебора всех Рядов Диаграммы, с условием, что если данный ряд не видим, то пропускаем его выделение.

Прикладываю то, что получилось.
Так же в код заложена подсветка активной ячейки при выделении и затемнение остальных. В общем, все функции, что есть в 2013 Екселе. Для тех, кому сердцу дорог 2010 )

miver, KSV. Буду рад, если посмотрите код на предмет улучшения быстродействия. Со своей стороны на 1,5 недели мучений выжал из него все, что мог )

Автор - rever27
Дата добавления - 06.08.2015 в 00:24
miver Дата: Четверг, 06.08.2015, 08:41 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 37 ±
Замечаний: 0% ±

Excel 2010
rever27, Убрал постоянные вычисления PointsPerPixel. Тормоза у меня не наблюдается. Так что, даже и не знаю что там можно еще ускорить
К сообщению приложен файл: 5622285.xlsm (91.4 Kb)
 
Ответить
Сообщениеrever27, Убрал постоянные вычисления PointsPerPixel. Тормоза у меня не наблюдается. Так что, даже и не знаю что там можно еще ускорить

Автор - miver
Дата добавления - 06.08.2015 в 08:41
rever27 Дата: Четверг, 06.08.2015, 09:23 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
miver, Визуально стало быстрее. Благодарю.
Торможение замечается, если компьютер загружен тяжелыми программами. Поэтому и просматриваю каждую строчку, чтобы убрать лишнее "ЕСЛИ", лишнее действие.

В продолжение темы появился еще вопрос: http://www.excelworld.ru/forum/10-18675-1#153326 )
 
Ответить
Сообщениеmiver, Визуально стало быстрее. Благодарю.
Торможение замечается, если компьютер загружен тяжелыми программами. Поэтому и просматриваю каждую строчку, чтобы убрать лишнее "ЕСЛИ", лишнее действие.

В продолжение темы появился еще вопрос: http://www.excelworld.ru/forum/10-18675-1#153326 )

Автор - rever27
Дата добавления - 06.08.2015 в 09:23
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выделение Ряда Диаграммы при наведении Мышью (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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