Доброго времени суток! Не силен в макросах.Пытался переделать макрос на скрытие строк под свои условия, но не получается. Вложил файл для наглядности. Условия: Если B19:B22 объединенные ячейки=пусто, если внести туда текст открываются следующие четыре объединенные объединенные ячейки B23:B26 и так до определенной строки, а если очистить объединенные ячейки 4 строки скроются. В файле на одну строку работает как надо, вот на 4 никак. Спасибо!
Доброго времени суток! Не силен в макросах.Пытался переделать макрос на скрытие строк под свои условия, но не получается. Вложил файл для наглядности. Условия: Если B19:B22 объединенные ячейки=пусто, если внести туда текст открываются следующие четыре объединенные объединенные ячейки B23:B26 и так до определенной строки, а если очистить объединенные ячейки 4 строки скроются. В файле на одну строку работает как надо, вот на 4 никак. Спасибо!Serj
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 3 Then Exit Sub If Target.Row < 11 Or Target.Row >= 31 Then Exit Sub Rows(Target.Row + 4).Resize(4).Hidden = Target.Cells.Count > 1 End Sub
[/vba]
у Вас столбец В вообще скрыт по столбцу С:[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 3 Then Exit Sub If Target.Row < 11 Or Target.Row >= 31 Then Exit Sub Rows(Target.Row + 4).Resize(4).Hidden = Target.Cells.Count > 1 End Sub
При удалении из столбца т. е. из ячейки строки не скрываются вообще. Принцип хотелось такой же как листе Таб, при очищении ячейки одна строка скрывается, а здесь нужно 4.
При удалении из столбца т. е. из ячейки строки не скрываются вообще. Принцип хотелось такой же как листе Таб, при очищении ячейки одна строка скрывается, а здесь нужно 4. Serj
Александр СПАСИБО Вам! Доделал с вашей подсказкой. Вот код который делает что мне нужно
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Range("c14:c40"), Target) Is Nothing Then If Target > 0 Then Rows(Target.Row + 4).Resize(4).Hidden = False Else Rows(Target.Row + 4).Resize(4).Hidden = True End If End If End Sub
[/vba]
Александр СПАСИБО Вам! Доделал с вашей подсказкой. Вот код который делает что мне нужно
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Range("c14:c40"), Target) Is Nothing Then If Target > 0 Then Rows(Target.Row + 4).Resize(4).Hidden = False Else Rows(Target.Row + 4).Resize(4).Hidden = True End If End If End Sub
При удалении из столбца т. е. из ячейки строки не скрываются вообще.
странно, конечно... скачиваю файл с макросом из сообщения №2, активирую объединенную ячейку C15:C18, нажимаю Del - строки 19-22 скрываются. зачем "доделывать" то, что работает?
При удалении из столбца т. е. из ячейки строки не скрываются вообще.
странно, конечно... скачиваю файл с макросом из сообщения №2, активирую объединенную ячейку C15:C18, нажимаю Del - строки 19-22 скрываются. зачем "доделывать" то, что работает? ikki
помощь по Excel и VBA ikki@fxmail.ru, icq 592842413, skype alex.ikki
ага. понял. некоторые пользователи не знают про клавишу Del и удаляют текст из ячейки, заходя в неё. вариант для обоих случаев:[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 3 Then Exit Sub If Target.Row < 11 Or Target.Row >= 31 Then Exit Sub Rows(Target.Row + 4).Resize(4).Hidden = Target.Cells(1) = "" End Sub
[/vba]
ага. понял. некоторые пользователи не знают про клавишу Del и удаляют текст из ячейки, заходя в неё. вариант для обоих случаев:[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 3 Then Exit Sub If Target.Row < 11 Or Target.Row >= 31 Then Exit Sub Rows(Target.Row + 4).Resize(4).Hidden = Target.Cells(1) = "" End Sub