Вопрос к людям которые дружат с макросами. Есть динамический диапазон данных, который меняется от внешнего аргумента (диапазона дат), есть график ктр ссылается на эти ячейки. В зависимости от диапазона ячейки могут быть заполнены числами или #НД. В график включено некоторое количество данных, но иногда их меньше, чем было вписано и тогда линия по ним не строится, а в легенде к графику она все равно есть и обозначается тем значением, ктр находится в ячейку куда ссылается. Есть ли макрос который может автоматически удалять пустые значения из легенды, ну или определённый знак типо такого "-" ? PS знак не принципиален, можно заменить просто на "" PSS в макросах я просто "0")
Вопрос к людям которые дружат с макросами. Есть динамический диапазон данных, который меняется от внешнего аргумента (диапазона дат), есть график ктр ссылается на эти ячейки. В зависимости от диапазона ячейки могут быть заполнены числами или #НД. В график включено некоторое количество данных, но иногда их меньше, чем было вписано и тогда линия по ним не строится, а в легенде к графику она все равно есть и обозначается тем значением, ктр находится в ячейку куда ссылается. Есть ли макрос который может автоматически удалять пустые значения из легенды, ну или определённый знак типо такого "-" ? PS знак не принципиален, можно заменить просто на "" PSS в макросах я просто "0")ponomortema
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]
В модуль листа положите
[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
_Boroda_, Да, конечно. он все время выдает эту ошибку. А если надо чтобы оно работало на нескольких листа? просто так же копировать в другие листы?
_Boroda_, Да, конечно. он все время выдает эту ошибку. А если надо чтобы оно работало на нескольких листа? просто так же копировать в другие листы?ponomortema
А если надо чтобы оно работало на нескольких листа?
Или на каждый лист, или использовать похожий, но немного другой код в модуле книги [vba]
Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 'тут код End Sub
[/vba] Писать его смысла нет - у Вас и первый-то не работает по неизвестной причине. А приложить файл с макросом я не могу - политика безопасности запрещает
А если надо чтобы оно работало на нескольких листа?
Или на каждый лист, или использовать похожий, но немного другой код в модуле книги [vba]
Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 'тут код End Sub
[/vba] Писать его смысла нет - у Вас и первый-то не работает по неизвестной причине. А приложить файл с макросом я не могу - политика безопасности запрещает _Boroda_