Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   [решено] Скрытие строк по условию в Excel (http://forum.oszone.net/showthread.php?t=208643)

S.T.R.E.L.O.K. 09-06-2011 23:22 1691755

Скрытие строк по условию в Excel
 
Требуется скрыть/отобразить строки нажатием кнопки по условию.
Условие: искать ячейки с типом данных (Данные->Проверка->Условие проверки) "Список" и скрывать всю строку, в который находится данная ячейка.
Пробовал изменить макрос:
читать дальше »
Код:

Sub HideBlankRows()    ' скрывает все пустые строки
    Dim sh As Worksheet, ro1 As Range, ro2 As Range, ro As Range, rowss As Range
    Application.ScreenUpdating = False
    With ActiveSheet
        Set ro1 = .UsedRange.Cells(.UsedRange.Cells.Count).Offset(1): Set ro2 = ro1.End(xlDown)
        Range(ro1, ro2).EntireRow.Hidden = True
        For Each ro In .UsedRange.EntireRow
            If ro.Text = vbNullString Then If rowss Is Nothing Then Set rowss = ro Else Set rowss = Union(rowss, ro)
        Next
        If Not rowss Is Nothing Then rowss.EntireRow.Hidden = True
    End With
    Application.ScreenUpdating = True
End Sub
Sub ShowHiddenRows()    ' отображает все скрытые строки
    Application.ScreenUpdating = False: ActiveSheet.Rows.Hidden = False: Application.ScreenUpdating = True
End Sub


Но в них я практически полный ноль.
Помогите исправить, пожалуйста. И заранее спасибо.

okshef 10-06-2011 08:47 1691872

Что вас не устраивает? Прекрасно работает.

S.T.R.E.L.O.K. 10-06-2011 09:05 1691883

okshef, макрос ищет пустые строки, а мне требуется искать ячейку с условием проверки "Список" и как найдёт, скрыть всю строку.
то есть искал по свойству xlValidateList ячейки

v12345 10-06-2011 10:32 1691939

Могу вот такое готовое решение предложить. Не то, что просите, но может сойдет.

Код:

Sub HideRowsMy()
    Application.ScreenUpdating = False
    With ActiveSheet
        '---- номер последней строки с непустой ячейкой
        RowMax = Cells.SpecialCells(xlCellTypeLastCell).Row
        '---- номер последней колонки с непустой ячейкой
        ColMax = Cells.SpecialCells(xlCellTypeLastCell).Column
        For i = 1 To RowMax
            If Not IsEmpty(Cells(i, ColMax)) Then
                Set CurrR = Cells(i, ColMax)
                CurrR.EntireRow.Hidden = True
            End If
        Next i
    End With
    Application.ScreenUpdating = True
End Sub

Суть. Правее всех данных (должен получиться последний непустой столбец) проставляем метки в тех строках, которые требуют скрытия. Метки могут быть любые, например, плюски - лишь бы ячейка стала непустой. Макрос скроет все строки с такими метками.

S.T.R.E.L.O.K. 10-06-2011 11:26 1691979

v12345, дело в том, что никак не могу задать поиск по xlvalidatelist

netlancer@vk 03-06-2015 16:27 2514610

Никак не получается решить следующее:
Диапазон с данными и шапкой, классика (A6:V500), Изначально все пустые строки (для ввода инфы) Скрыты, кроме самой первой. Далее, по мере заполнения первой (и каждой последующей) строки, следующая строка - Отображается, и наоборот. По аналогии с таблицами Access (причем критерием заполненности строки будет значение [<> ""] нескольких фиксированных столбцов(ячеек) каждой строки в диапазоне). Долго лазил по форумам и не только, не помогло толком, мудрецы, помогите чайнику http://www.fotolink.su/v.php?id=fbe1...a6d76db2520f75

okshef 03-06-2015 22:39 2514716

netlancer@vk, а Умные таблицы - не проще?


Время: 06:50.

Время: 06:50.
© OSzone.net 2001-