Страницы: 1
RSS
Скрыть строки (парметры внутри нормативов) по условию
 
Здравствуйте, подскажите такой момент, есть лист главный, в нем указаны некоторые параметры, что б например поставить галочку, с на листе вспомогательный отображались или скрывались строки, просто все время разные могут быть параметры, есть макрос, но тогда придется под каждый параметр делать кнопочку, а это лишнее, в примере указаны несколько фамилий, напротив стоят циферки, как бы сделать что б где ничего не стоит автоматом скрывалось, а если появится, то отображалось, просто с огромным количеством кнопок не удобно, а галочки самое то, или при значении ноль во второй колонке что б скрывалось
Код
Sub ddd()
    Dim cell As Range
    Application.ScreenUpdating = False
   Dim sht As Worksheet
For Each sht In ThisWorkbook.Sheets
    For Each cell In ActiveSheet.UsedRange.Rows(1).Cells
        If cell.Value = "Сидоров" Then cell.EntireColumn.Hidden = True
    Next
    For Each cell In sht.UsedRange.Columns(1).Cells
        If cell.Value = "Сидоров" Then cell.EntireRow.Hidden = True
    Next
Next sht
    Application.ScreenUpdating = True
End Sub

Sub fff()
Dim cell As Range
    Application.ScreenUpdating = False
   Dim sht As Worksheet
For Each sht In ThisWorkbook.Sheets
    For Each cell In ActiveSheet.UsedRange.Rows(1).Cells
        If cell.Value = "Сидоров" Then cell.EntireColumn.Hidden = False
    Next
    For Each cell In sht.UsedRange.Columns(1).Cells
        If cell.Value = "Сидоров" Then cell.EntireRow.Hidden = False
    Next
Next sht
    Application.ScreenUpdating = True
End Sub
 
Цитата
denka1982 написал:
а галочки самое то
особенно, когда после скрытия строк, столбцов они собьются в одну кучу - это самое то!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
в общем есть норматив, внутри этого норматива есть несколько параметров, иногда параметр требуется, иногда нет, параметров около 20, тут или галочками, или просто где нули скрылось автоматом, других идей нет
 
Код
Sub СкрытьПустые()
    Dim shG As Worksheet: Set shG = Worksheets("Главная")
    Dim shV As Worksheet: Set shV = Worksheets("вспомогательная")
    Dim y As Long
    Dim a As Variant
    Dim dic As Object: Set dic = CreateObject("Scripting.Dictionary")
    With shG
        y = .Cells(.Rows.Count, 3).End(xlUp).Row
        a = .Range(.Cells(1, 2), .Cells(y, 3))
    End With
    
    For y = 1 To UBound(a, 1)
        If Not IsEmpty(a(y, 2)) Then
            dic.Item(a(y, 1)) = 0
        End If
    Next
    Erase a
    
    With shV
        .Cells.EntireRow.Hidden = False
        y = .Cells(.Rows.Count, 1).End(xlUp).Row
        a = .Range(.Cells(1, 1), .Cells(y, 2))
        For y = 1 To UBound(a, 1)
            If Not dic.Exists(a(y, 1)) Then
                .Rows(y).EntireRow.Hidden = True
            End If
        Next
        .Select
    End With
End Sub
 
а можно как то чутка изменить макрос, где будет ноль скрыть, или где будет #Н/Д, суть в чем, на главном листе отображаются нормативы, и добавляются туда каждый раз, когда нет норматива, получается нд, иногда нолики, на главную вносишь из ворда скопированный текст, и он разносит по всем листам документа, информация всегда динамичная
Изменено: denka1982 - 25.12.2020 17:05:51
 
нашел еще такое решение, но нд там не хочет работать(((вместо х ставлю нд, ругается на ошибку
Код
Sub Hide()
    Dim cell As Range
    Application.ScreenUpdating = False                              'отключаем обновление экрана для ускорения
    For Each cell In ActiveSheet.UsedRange.Rows(1).Cells            'проходим по всем ячейкам первой строки
        If cell.Value = "x" Then cell.EntireColumn.Hidden = True    'если в ячейке x - скрываем столбец
    Next
    For Each cell In ActiveSheet.UsedRange.Columns(1).Cells         'проходим по всем ячейкам первого столбца
        If cell.Value = "x" Then cell.EntireRow.Hidden = True       'если в ячейке x - скрываем строку
    Next
    Application.ScreenUpdating = True
End Sub
 
Sub Show()
    Columns.Hidden = False   'отменяем все скрытия строк и столбцов
    Rows.Hidden = False
End Sub


Изменено: denka1982 - 25.12.2020 17:40:04
 
Цитата
denka1982 написал:x
где будет ноль скрыть
в меню Excel: файл-параметры-дополнительно-показывать параметры для листа-снять галку"показывать нули"
Цитата
denka1982 написал:
вместо х ставлю нд, ругается на ошибку
На листе в формулах можно "ЕСЛИОШИБКА", в коде "On Error Go To...." посмотреть
Цитата
denka1982 написал:
надо понять принцип
Что именно не понятно?  
Изменено: _Igor_61 - 25.12.2020 20:06:11
 
выделяет желтым строчку где стоит #Н/Д
Страницы: 1
Наверх