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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Автоматически убирать пустые значения из легенды (Формулы/Formulas)
Автоматически убирать пустые значения из легенды
ponomortema Дата: Пятница, 03.06.2022, 15:32 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Вопрос к людям которые дружат с макросами.
Есть динамический диапазон данных, который меняется от внешнего аргумента (диапазона дат), есть график ктр ссылается на эти ячейки. В зависимости от диапазона ячейки могут быть заполнены числами или #НД. В график включено некоторое количество данных, но иногда их меньше, чем было вписано и тогда линия по ним не строится, а в легенде к графику она все равно есть и обозначается тем значением, ктр находится в ячейку куда ссылается. Есть ли макрос который может автоматически удалять пустые значения из легенды, ну или определённый знак типо такого "-" ?
PS знак не принципиален, можно заменить просто на ""
PSS в макросах я просто "0")
К сообщению приложен файл: 9988851.xlsx (25.4 Kb)
 
Ответить
СообщениеВопрос к людям которые дружат с макросами.
Есть динамический диапазон данных, который меняется от внешнего аргумента (диапазона дат), есть график ктр ссылается на эти ячейки. В зависимости от диапазона ячейки могут быть заполнены числами или #НД. В график включено некоторое количество данных, но иногда их меньше, чем было вписано и тогда линия по ним не строится, а в легенде к графику она все равно есть и обозначается тем значением, ктр находится в ячейку куда ссылается. Есть ли макрос который может автоматически удалять пустые значения из легенды, ну или определённый знак типо такого "-" ?
PS знак не принципиален, можно заменить просто на ""
PSS в макросах я просто "0")

Автор - ponomortema
Дата добавления - 03.06.2022 в 15:32
_Boroda_ Дата: Пятница, 03.06.2022, 16:46 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
В модуль листа положите

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("M4:M5")) Is Nothing Then
        c0_ = 15'  первый столбец
        c1_ = 115'   последний столбец
        r_ = 7'   строка
        Application.ScreenUpdating = 0
        Columns(c0_).Resize(, c1_ - c0_ + 1).EntireColumn.Hidden = False
        For i = c0_ To c1_ Step 2
            If Cells(r_, i) = "-" Then
                Columns(i).Resize(, 2).EntireColumn.Hidden = True
            End If
        Next i
        Application.ScreenUpdating = 1
    End If
End Sub
[/vba]


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

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("M4:M5")) Is Nothing Then
        c0_ = 15'  первый столбец
        c1_ = 115'   последний столбец
        r_ = 7'   строка
        Application.ScreenUpdating = 0
        Columns(c0_).Resize(, c1_ - c0_ + 1).EntireColumn.Hidden = False
        For i = c0_ To c1_ Step 2
            If Cells(r_, i) = "-" Then
                Columns(i).Resize(, 2).EntireColumn.Hidden = True
            End If
        Next i
        Application.ScreenUpdating = 1
    End If
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 03.06.2022 в 16:46
ponomortema Дата: Пятница, 03.06.2022, 17:34 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

_Boroda_, Выдает ошибку "Expected End Sub".
 
Ответить
Сообщение_Boroda_, Выдает ошибку "Expected End Sub".

Автор - ponomortema
Дата добавления - 03.06.2022 в 17:34
_Boroda_ Дата: Вторник, 07.06.2022, 10:49 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А Вы точно весь код скопировали? Последнюю строчку не забыли?


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

Автор - _Boroda_
Дата добавления - 07.06.2022 в 10:49
ponomortema Дата: Среда, 08.06.2022, 17:50 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

_Boroda_, Да, конечно. он все время выдает эту ошибку. А если надо чтобы оно работало на нескольких листа? просто так же копировать в другие листы?
 
Ответить
Сообщение_Boroda_, Да, конечно. он все время выдает эту ошибку. А если надо чтобы оно работало на нескольких листа? просто так же копировать в другие листы?

Автор - ponomortema
Дата добавления - 08.06.2022 в 17:50
_Boroda_ Дата: Четверг, 09.06.2022, 09:21 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
он все время выдает эту ошибку

Значит, у Вас в модуле листа еще что-то есть и оно мешает. Код рабочий, несколько раз проверял

А если надо чтобы оно работало на нескольких листа?
Или на каждый лист, или использовать
похожий, но немного другой код в модуле книги
[vba]
Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'тут код
End Sub
[/vba]
Писать его смысла нет - у Вас и первый-то не работает по неизвестной причине.
А приложить файл с макросом я не могу - политика безопасности запрещает


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

Значит, у Вас в модуле листа еще что-то есть и оно мешает. Код рабочий, несколько раз проверял

А если надо чтобы оно работало на нескольких листа?
Или на каждый лист, или использовать
похожий, но немного другой код в модуле книги
[vba]
Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'тут код
End Sub
[/vba]
Писать его смысла нет - у Вас и первый-то не работает по неизвестной причине.
А приложить файл с макросом я не могу - политика безопасности запрещает

Автор - _Boroda_
Дата добавления - 09.06.2022 в 09:21
mkotik Дата: Четверг, 09.06.2022, 10:32 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 181
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Всем привет!
Извините, что вмешался...
Проверил работоспособность макроса _Boroda_, все работает.
Файл прикладываю.
К сообщению приложен файл: _____.xlsm (31.8 Kb)
 
Ответить
СообщениеВсем привет!
Извините, что вмешался...
Проверил работоспособность макроса _Boroda_, все работает.
Файл прикладываю.

Автор - mkotik
Дата добавления - 09.06.2022 в 10:32
ponomortema Дата: Четверг, 09.06.2022, 17:19 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Всем спасибо, все заработало!
 
Ответить
СообщениеВсем спасибо, все заработало!

Автор - ponomortema
Дата добавления - 09.06.2022 в 17:19
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Автоматически убирать пустые значения из легенды (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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