PDA

Показать полную графическую версию : [решено] Скрытие строк по условию в Excel


S.T.R.E.L.O.K.
09-06-2011, 23:22
Требуется скрыть/отобразить строки нажатием кнопки по условию.
Условие: искать ячейки с типом данных (Данные->Проверка->Условие проверки) "Список" и скрывать всю строку, в который находится данная ячейка.
Пробовал изменить макрос:
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
Что вас не устраивает? Прекрасно работает.

S.T.R.E.L.O.K.
10-06-2011, 09:05
okshef, макрос ищет пустые строки, а мне требуется искать ячейку с условием проверки "Список" и как найдёт, скрыть всю строку.
то есть искал по свойству xlValidateList ячейки

v12345
10-06-2011, 10:32
Могу вот такое готовое решение предложить. Не то, что просите, но может сойдет.

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
v12345, дело в том, что никак не могу задать поиск по xlvalidatelist

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

okshef
03-06-2015, 22:39
netlancer@vk, а Умные таблицы (http://perfect-excel.ru/publ/excel/razlichnye_instrumenty_excel/umnye_tablicy/10-1-0-33) - не проще?




© OSzone.net 2001-2012