Страницы: 1 2 След.
RSS
скрыть строки по значению в ячейке
 
Добрый день

Нужна ваша помощь
Нужно чтобы строки спрятались от значения в определенной ячейке. В этой ячейке формула.

Как сделать скрыть строки, если в определенную ячейку вводить значение, я разобрался, спасибо вашему форуму, но вот найти именно то что мне нужно у меня не получилось

Заранее благодарен
 
Т.е. Вы хотите чтобы макрос скрывал нужные строки при изменении значения в результате пересчета формулы?
Изменено: LVL - 19.04.2013 13:54:46
 
Объясните подробней.
Не понятна суть вопроса, для чего выводить дополнительную ячейку с формулой, если можно, анализировать значение ячейки В6?

Или вам нужно скрывать только абрикосы?
Редко но метко ...
 
Я сильно сократил саму таблицу, ради примера

главное значение в ячейке A1, а это значения зависят еще от нескольких ячеек, не только B6
 
Цитата
LVL пишет:
Т.е. Вы хотите чтобы макрос скрывал нужные строки при изменении значения в результате пересчета формулы?

именно это и нужно
 
На сколько мне известно, отследить изменение значения ячейки при пересчете формулы в ней нельзя.
 
Тогда сильно сокращенный макрос  :)
Редко но метко ...
 
Огромное Спасибо
все работает
 
А вот у меня не будет работать
На фирме не хотят ставить новый оффис (стОит Ексель 2003), боятся штрафов
GIG_ant, пожалуйста, макрос бросьте сюда
Изменено: Геннадий - 19.04.2013 15:39:41
 
Геннадий,
Редко но метко ...
 
Спасибо!
 
Цитата
Геннадий пишет:
На фирме не хотят ставить новый оффис (стОит Ексель 2003), боятся штрафов
Скачайте конвертер - за него не штрафуют ))
 
Странно, но теперь не работает "отменить" (ctrl-z) функция после любого ввода данных в любую ячейку, даже на другом листе или книге, если в это же самое время время открыт файл с макросом
Изменено: dat3010 - 22.04.2013 14:14:55
 
Юрий М:Скачайте конвертер - за него не штрафуют ))
_____________________________________
Всё ОК. Спасибо!
 
Подскажите пжлста код, как скрать строки №2-7 на второй странице, если на первой значение A1=Yes, а если значение A1=No, на второй странице скрать строки №10-15.
 
Скрытие (скрАтие)  :)  должно происходить по кнопке или автоматически?
 
Вы не сказали, по какому условию отображать. Поэтому попробуйте так (скопируйте в модуль первого листа):
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        If Target = "Yes" Then
            Sheets("Лист2").Rows("2:7").EntireRow.Hidden = True
        Else
            Sheets("Лист2").Rows("2:7").EntireRow.Hidden = False
        End If
        If Target = "No" Then
            Sheets("Лист2").Rows("10:15").EntireRow.Hidden = True
        Else
            Sheets("Лист2").Rows("10:15").EntireRow.Hidden = False
        End If
    End If
End Sub
 
Юрий М, благодарю, то что требовалось.  :)  

Скажите, пжлста а что в этом коде не так, не хочет работать.

Код
Sub HideMe(A As Long) 'A - номер столбца для проверки 
    Dim i As Long 
    For i = 33 to 42
        If Cells(i, A).Value = 0 Then
            Rows(i).Hidden = True 
        Else 
            Rows(i).Hidden = False 
        End If 
    Next i 
End Sub
Изменено: mapk - 01.07.2013 15:29:14
 
А зачем это? (A As Long)
Если хотите указывать не номер, а букву столбца, то пишите в кавычках: If Cells(i, "A")
 
Ну можно и так - тогда вызывать придётся другим кодом, указывая столбец:
call  HideMe(4)
Будет по D проверять.
 
Ну да - номер, а не букву, да ещё и Long)
 
вот что получилось - ничего, как заставить код работать?
прошу помощи
Изменено: mapk - 02.07.2013 10:55:41
 
mapk, Вы понимаете, что пишете? Call HideMe(1) - без процедуры. Просто поместите Ваш код (цикл) в событие листа Worksheet_Change.
 
Юрий, Вы правы я не понимаю что пишу, поэтому и спрашиваю:

так?

Код
Private Sub Worksheet_Change() 
    Call HideMe(1) 
End Sub
Изменено: mapk - 02.07.2013 12:00:39
 
Разобрался:

Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long
    For i = 5 To 10
        If Cells(i, 1).Value = 0 Then
            Rows(i).Hidden = True
        Else
            Rows(i).Hidden = False
        End If
    Next i
End Sub


Благодарю повторно.
 
Вот без передачи параметра - сразу в модуле листа:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
    If Not Intersect(Target, Range("A5:A10")) Is Nothing Then
        For i = 5 To 10
            If Cells(i, 1).Value = 0 Then
                Rows(i).Hidden = True
            Else
                Rows(i).Hidden = False
            End If
        Next i
    End If
End Sub
 
Юрий, скажите пожалуйста, как быть в случае, когда значения 1/0 копируються из другого листа.
При этом страница на которой работает код, не обновляется. (только при вводе в ручную)
 
Не верю: скопировал ноль с другого листа, вставил - всё сработало.
 
Я имел ввиду есть значение переходит из другой страницы, путем:
=Sheet2!A2

Значение в поле проврки 1/0 меняеться, но строка не скрываеться.
 
Копирование и присвоение формулой - разные вещи. Если формулы - используйте событие листа Calculate.
Страницы: 1 2 След.
Читают тему
Наверх