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

Вход

Регистрация

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

 

= Мир MS Excel/Сводная диаграмма - как убрать часть подписей из легенды? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сводная диаграмма - как убрать часть подписей из легенды? (Макросы/Sub)
Сводная диаграмма - как убрать часть подписей из легенды?
VVeps Дата: Четверг, 19.10.2017, 13:24 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток, уважаемые эксперты!

Столкнулся со следующей проблемой:
Есть таблица с данными (в примере несколько строк, на самом деле их несколько тысяч). Построил сводную таблицу, на ее основе сводную диаграмму и срезы.

В итоге в легенду диаграммы выводятся все заголовки столбцов из сводной таблицы. Вопрос, как убрать определенные подписи в легенде? В примере во вложении это подписи средней в отрасли по региону. Просто удалять пробовал, но когда меняю фильтр на срезе, надпись появляется снова. Удалить всю легенду - не вариант, нужно понимать где какой график, но доп. надписи "засоряют" легенду. Предполагаю, что можно макросом удалить надписи которые содержат "Средняя", но как это сделать?

Заранее спасибо за помощь.
К сообщению приложен файл: Example.xlsx (25.0 Kb)
 
Ответить
СообщениеДоброго времени суток, уважаемые эксперты!

Столкнулся со следующей проблемой:
Есть таблица с данными (в примере несколько строк, на самом деле их несколько тысяч). Построил сводную таблицу, на ее основе сводную диаграмму и срезы.

В итоге в легенду диаграммы выводятся все заголовки столбцов из сводной таблицы. Вопрос, как убрать определенные подписи в легенде? В примере во вложении это подписи средней в отрасли по региону. Просто удалять пробовал, но когда меняю фильтр на срезе, надпись появляется снова. Удалить всю легенду - не вариант, нужно понимать где какой график, но доп. надписи "засоряют" легенду. Предполагаю, что можно макросом удалить надписи которые содержат "Средняя", но как это сделать?

Заранее спасибо за помощь.

Автор - VVeps
Дата добавления - 19.10.2017 в 13:24
nilem Дата: Четверг, 19.10.2017, 14:24 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
VVeps, привет
ПКМ по "Средняя в отрасли по региону" - выбираем опцию "Скрыть кнопки поля значения на диаграмме" - Не?


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеVVeps, привет
ПКМ по "Средняя в отрасли по региону" - выбираем опцию "Скрыть кнопки поля значения на диаграмме" - Не?

Автор - nilem
Дата добавления - 19.10.2017 в 14:24
VVeps Дата: Пятница, 20.10.2017, 07:26 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
nilem, к сожалению, нет.

Приложил скрин. То что выделено красным, нужно убрать из легенды, остальное оставить. При этом при изменении фильтра эти подписи не должны появляться. Я конечно могу удалить это руками, но когда меняю фильтр в срезе, эти надписи опять появляются. В макросах я не силен, пробовал записать удаление подписи из легенды, он выбирает по номеру подписи. Можно ли сделать макрос, чтобы он удалял подписи из легенды, которые содержат определенное слово, например "Средняя" ?
К сообщению приложен файл: 6300366.jpg (41.9 Kb)
 
Ответить
Сообщениеnilem, к сожалению, нет.

Приложил скрин. То что выделено красным, нужно убрать из легенды, остальное оставить. При этом при изменении фильтра эти подписи не должны появляться. Я конечно могу удалить это руками, но когда меняю фильтр в срезе, эти надписи опять появляются. В макросах я не силен, пробовал записать удаление подписи из легенды, он выбирает по номеру подписи. Можно ли сделать макрос, чтобы он удалял подписи из легенды, которые содержат определенное слово, например "Средняя" ?

Автор - VVeps
Дата добавления - 20.10.2017 в 07:26
_Boroda_ Дата: Пятница, 20.10.2017, 11:41 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
    With Me.ChartObjects(1).Chart
        .Legend.Delete
        .SetElement (msoElementLegendBottom)
        For i = .FullSeriesCollection.Count To 1 Step -1
            If InStr(1, .FullSeriesCollection(i).Name, "средн", 1) Then
                .Legend.LegendEntries(i).Delete
            End If
        Next i
    End With
End Sub
[/vba]
К сообщению приложен файл: Example-19-1.xlsm (32.8 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
    With Me.ChartObjects(1).Chart
        .Legend.Delete
        .SetElement (msoElementLegendBottom)
        For i = .FullSeriesCollection.Count To 1 Step -1
            If InStr(1, .FullSeriesCollection(i).Name, "средн", 1) Then
                .Legend.LegendEntries(i).Delete
            End If
        Next i
    End With
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 20.10.2017 в 11:41
VVeps Дата: Четверг, 26.10.2017, 10:21 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, супер! Спасибо.

Только когда переношу макрос на лист где много диаграмм, он не работает. Не могли бы пояснить, что значит Me.ChartObjects(1).Chart?
И, как я понимаю, ваш макрос должен работать при обновлении листа? Или диаграммы?

Я на основании вашего макроса, сваял свой, который по кнопке удаляет лишнее из легенды. Но хотелось бы, чтобы это происходило автоматически.
[vba]
Код
Sub DeletLegend()
      
    With ActiveSheet.ChartObjects(1).Chart
        .Legend.Delete
        .SetElement (msoElementLegendBottom)
        For i = .FullSeriesCollection.Count To 1 Step -1
            If InStr(1, .FullSeriesCollection(i).Name, "средн", 1) Then
                .Legend.LegendEntries(i).Delete
            End If
        Next i
    End With
End Sub
[/vba]
 
Ответить
Сообщение_Boroda_, супер! Спасибо.

Только когда переношу макрос на лист где много диаграмм, он не работает. Не могли бы пояснить, что значит Me.ChartObjects(1).Chart?
И, как я понимаю, ваш макрос должен работать при обновлении листа? Или диаграммы?

Я на основании вашего макроса, сваял свой, который по кнопке удаляет лишнее из легенды. Но хотелось бы, чтобы это происходило автоматически.
[vba]
Код
Sub DeletLegend()
      
    With ActiveSheet.ChartObjects(1).Chart
        .Legend.Delete
        .SetElement (msoElementLegendBottom)
        For i = .FullSeriesCollection.Count To 1 Step -1
            If InStr(1, .FullSeriesCollection(i).Name, "средн", 1) Then
                .Legend.LegendEntries(i).Delete
            End If
        Next i
    End With
End Sub
[/vba]

Автор - VVeps
Дата добавления - 26.10.2017 в 10:21
_Boroda_ Дата: Четверг, 26.10.2017, 10:26 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Me.ChartObjects(1).Chart - первая диаграмма на том листе, в модуле которого находится макрос. Если диаграмм несколько, то их нужно перебрать циклом. А может и не нужно. Зависит от того, что и как у Вас в файле
Worksheet_PivotTableUpdate начинает работать при обновлении сводной таблицы


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеMe.ChartObjects(1).Chart - первая диаграмма на том листе, в модуле которого находится макрос. Если диаграмм несколько, то их нужно перебрать циклом. А может и не нужно. Зависит от того, что и как у Вас в файле
Worksheet_PivotTableUpdate начинает работать при обновлении сводной таблицы

Автор - _Boroda_
Дата добавления - 26.10.2017 в 10:26
VVeps Дата: Четверг, 26.10.2017, 10:37 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, а что значит Me? Даже гугл не помог мне с этим вопросом

Попробую самостоятельно сделать чтобы диаграммы обновлялись при изменении листа.

Спасибо.
 
Ответить
Сообщение_Boroda_, а что значит Me? Даже гугл не помог мне с этим вопросом

Попробую самостоятельно сделать чтобы диаграммы обновлялись при изменении листа.

Спасибо.

Автор - VVeps
Дата добавления - 26.10.2017 в 10:37
_Boroda_ Дата: Четверг, 26.10.2017, 10:39 | Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
на том листе, в модуле которого находится макрос

- это и есть в данном случае Me


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
на том листе, в модуле которого находится макрос

- это и есть в данном случае Me

Автор - _Boroda_
Дата добавления - 26.10.2017 в 10:39
buchlotnik Дата: Четверг, 26.10.2017, 10:43 | Сообщение № 9
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Цитата
Me
значит "я" :) У вас какое событие обрабатывается? Правильно Worksheet_PivotTableUpdate. Так вот Ме - это этот самый Worksheet и есть
 
Ответить
Сообщение
Цитата
Me
значит "я" :) У вас какое событие обрабатывается? Правильно Worksheet_PivotTableUpdate. Так вот Ме - это этот самый Worksheet и есть

Автор - buchlotnik
Дата добавления - 26.10.2017 в 10:43
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сводная диаграмма - как убрать часть подписей из легенды? (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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