Добрый день! не могу разобраться с Макросами Нужно Автоматически скрывать строки при условии Если F13=0 то скрыть строки 42-47; Если F14=0 то скрыть строки 48-53; Если F15=0 то скрыть строки 54-58. Лист в файле называется Лист 4
Подскажите что нужно написать. Спасибо!
Добрый день! не могу разобраться с Макросами Нужно Автоматически скрывать строки при условии Если F13=0 то скрыть строки 42-47; Если F14=0 то скрыть строки 48-53; Если F15=0 то скрыть строки 54-58. Лист в файле называется Лист 4
If sht.Cells(13, 6) = 0 Then For a = 42 To 47 sht.Rows(a).Hidden = True Next a Else For a = 42 To 47 sht.Rows(a).Hidden = False Next a End If If sht.Cells(14, 6) = 0 Then For a = 48 To 53 sht.Rows(a).Hidden = True Next a Else For a = 48 To 53 sht.Rows(a).Hidden = False Next a End If If sht.Cells(15, 6) = 0 Then For a = 54 To 58 sht.Rows(a).Hidden = True Next a Else For a = 54 To 58 sht.Rows(a).Hidden = False Next a End If End Sub
[/vba] [moder] Abakumov, Для макросов нужно использовать не кнопку fх, а кнопку #. Это так, на будущее. Тут я поправил.
Совсем не красивое решение, но работает [vba]
Код
Sub test() Dim sht As Worksheet Dim a As Integer
Set sht = ThisWorkbook.Worksheets("Лист4")
If sht.Cells(13, 6) = 0 Then For a = 42 To 47 sht.Rows(a).Hidden = True Next a Else For a = 42 To 47 sht.Rows(a).Hidden = False Next a End If If sht.Cells(14, 6) = 0 Then For a = 48 To 53 sht.Rows(a).Hidden = True Next a Else For a = 48 To 53 sht.Rows(a).Hidden = False Next a End If If sht.Cells(15, 6) = 0 Then For a = 54 To 58 sht.Rows(a).Hidden = True Next a Else For a = 54 To 58 sht.Rows(a).Hidden = False Next a End If End Sub
[/vba] [moder] Abakumov, Для макросов нужно использовать не кнопку fх, а кнопку #. Это так, на будущее. Тут я поправил.Abakumov
Private Sub Worksheet_Change(ByVal Target As Range) Dim iRange As String If Not Intersect(Range("F13:F15"), Target) Is Nothing Then Select Case Target.Row Case 13: iRange = "42:47" Case 14: iRange = "48:53" Case 15: iRange = "54:58" End Select Rows(iRange).Hidden = IIf(Target, 0, 1) End If End Sub
[/vba]
Еще вариант. Код в модуле листа. [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim iRange As String If Not Intersect(Range("F13:F15"), Target) Is Nothing Then Select Case Target.Row Case 13: iRange = "42:47" Case 14: iRange = "48:53" Case 15: iRange = "54:58" End Select Rows(iRange).Hidden = IIf(Target, 0, 1) End If End Sub
Добрый день, всем! Пытаюсь написать макрос на скрытие строк под свои условия, но не получается (( Прошу помочь! Вложил файл для наглядности. Условия: Если А1=1, то скрываются все строки с типом сотрудника МПК Если А1=2, то скрываются все строки с типом сотрудника МПА и отображаются все строки с типом сотрудника МПК Если А1=3, то скрываются все строки с типом сотрудника МПА и отображаются все строки с типом сотрудника МПК Если А1=4, то открываются все строки с типом сотрудников МПА и МПК. Спасибо! [moder]Читаем Правила форума. Создаем свою тему. Эта тема закрыта
Добрый день, всем! Пытаюсь написать макрос на скрытие строк под свои условия, но не получается (( Прошу помочь! Вложил файл для наглядности. Условия: Если А1=1, то скрываются все строки с типом сотрудника МПК Если А1=2, то скрываются все строки с типом сотрудника МПА и отображаются все строки с типом сотрудника МПК Если А1=3, то скрываются все строки с типом сотрудника МПА и отображаются все строки с типом сотрудника МПК Если А1=4, то открываются все строки с типом сотрудников МПА и МПК. Спасибо! [moder]Читаем Правила форума. Создаем свою тему. Эта тема закрытаpioneer88