Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сворачивание пустых строк - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сворачивание пустых строк (Макросы/Sub)
Сворачивание пустых строк
AVI Дата: Вторник, 17.04.2018, 03:18 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 434
Репутация: 7 ±
Замечаний: 0% ±

Excel 2016
Доброе утро! Можно ли сделать так, что бы при выборе значения в ячейке а1 отображались только заполненные строки в диапазоне A10:A86?
К сообщению приложен файл: 7787678.xlsx(15.8 Kb)


Сообщение отредактировал AVI - Вторник, 17.04.2018, 03:19
 
Ответить
СообщениеДоброе утро! Можно ли сделать так, что бы при выборе значения в ячейке а1 отображались только заполненные строки в диапазоне A10:A86?

Автор - AVI
Дата добавления - 17.04.2018 в 03:18
nilem Дата: Вторник, 17.04.2018, 06:34 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1477
Репутация: 519 ±
Замечаний: 0% ±

Excel 2013
AVI, привет
если в формулах в кач-ве аргумента ЕСЛИОШИБКА исп-ть Истина
Код
=ЕСЛИОШИБКА(ИНДЕКС(Справочник!$C$2:$F$20;АГРЕГАТ(15;6;(СТРОКА($B$2:$B$20)-1)/($A$1=Справочник!$B$2:$B$20);СТРОКА(A1));ПОИСКПОЗ($A$12;Справочник!$C$2:$F$2;));ИСТИНА)

то можно попробовать так
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address(0, 0) <> "A1" Then Exit Sub
With Range("A13:A34,A38:A60,A64:A78,A82:A85")
    .EntireRow.Hidden = False
    .SpecialCells(xlCellTypeFormulas, 4).EntireRow.Hidden = True
End With
End Sub
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеAVI, привет
если в формулах в кач-ве аргумента ЕСЛИОШИБКА исп-ть Истина
Код
=ЕСЛИОШИБКА(ИНДЕКС(Справочник!$C$2:$F$20;АГРЕГАТ(15;6;(СТРОКА($B$2:$B$20)-1)/($A$1=Справочник!$B$2:$B$20);СТРОКА(A1));ПОИСКПОЗ($A$12;Справочник!$C$2:$F$2;));ИСТИНА)

то можно попробовать так
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address(0, 0) <> "A1" Then Exit Sub
With Range("A13:A34,A38:A60,A64:A78,A82:A85")
    .EntireRow.Hidden = False
    .SpecialCells(xlCellTypeFormulas, 4).EntireRow.Hidden = True
End With
End Sub
[/vba]

Автор - nilem
Дата добавления - 17.04.2018 в 06:34
AVI Дата: Вторник, 17.04.2018, 08:00 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 434
Репутация: 7 ±
Замечаний: 0% ±

Excel 2016
nilem, Привет!
Я все подставил, но сворачиваются только те, где истина...
К сообщению приложен файл: 7787678.xlsm(20.9 Kb)


Сообщение отредактировал AVI - Вторник, 17.04.2018, 08:16
 
Ответить
Сообщениеnilem, Привет!
Я все подставил, но сворачиваются только те, где истина...

Автор - AVI
Дата добавления - 17.04.2018 в 08:00
nilem Дата: Вторник, 17.04.2018, 08:29 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1477
Репутация: 519 ±
Замечаний: 0% ±

Excel 2013
В справочнике пустые ячейки заполняем ЛОЖЬ. И тогда все срастается )
К сообщению приложен файл: 5938462.xlsm(21.4 Kb)


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеВ справочнике пустые ячейки заполняем ЛОЖЬ. И тогда все срастается )

Автор - nilem
Дата добавления - 17.04.2018 в 08:29
AVI Дата: Вторник, 17.04.2018, 08:46 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 434
Репутация: 7 ±
Замечаний: 0% ±

Excel 2016
nilem, Спасибо! работает!
 
Ответить
Сообщениеnilem, Спасибо! работает!

Автор - AVI
Дата добавления - 17.04.2018 в 08:46
AVI Дата: Вторник, 31.07.2018, 05:33 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 434
Репутация: 7 ±
Замечаний: 0% ±

Excel 2016
Добрый день!
Возникла необходимость перенести макрос
Но не понимаю почему он сворачивает все.
К сообщению приложен файл: _1.xlsm(35.1 Kb)


Сообщение отредактировал AVI - Вторник, 31.07.2018, 05:40
 
Ответить
СообщениеДобрый день!
Возникла необходимость перенести макрос
Но не понимаю почему он сворачивает все.

Автор - AVI
Дата добавления - 31.07.2018 в 05:33
nilem Дата: Вторник, 31.07.2018, 06:01 | Сообщение № 7
Группа: Авторы
Ранг: Старожил
Сообщений: 1477
Репутация: 519 ±
Замечаний: 0% ±

Excel 2013
AVI, привет
[vba]
Код
.SpecialCells(xlCellTypeFormulas, 4).EntireRow.Hidden = True
[/vba]
имеется в виду, что скрываются строки с формулами, которые возвращают логическое выражение (Ложь или Истина). А формулы, возвращающие, например, текст - не скрываются. поэтому напишите такую формулу в В10-В61
Код
=ЕСЛИ(A10=$CO$3;"трали-вали";ЛОЖЬ)


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеAVI, привет
[vba]
Код
.SpecialCells(xlCellTypeFormulas, 4).EntireRow.Hidden = True
[/vba]
имеется в виду, что скрываются строки с формулами, которые возвращают логическое выражение (Ложь или Истина). А формулы, возвращающие, например, текст - не скрываются. поэтому напишите такую формулу в В10-В61
Код
=ЕСЛИ(A10=$CO$3;"трали-вали";ЛОЖЬ)

Автор - nilem
Дата добавления - 31.07.2018 в 06:01
AVI Дата: Среда, 01.08.2018, 03:11 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 434
Репутация: 7 ±
Замечаний: 0% ±

Excel 2016
nilem, Приветствую!!
Теперь понял, спасибо!
 
Ответить
Сообщениеnilem, Приветствую!!
Теперь понял, спасибо!

Автор - AVI
Дата добавления - 01.08.2018 в 03:11
amfor Дата: Среда, 01.08.2018, 07:36 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 168
Репутация: 49 ±
Замечаний: 0% ±

Excel 2016
Добрый день.Вариант без изменения(добавления)формул
[vba]
Код
[code]Private Sub Worksheet_Change(ByVal Target As Range)
    Dim LastRow As Long, i As Long
    Application.ScreenUpdating = False
    Application.EnableEvents = False
      LastRow = Cells(Rows.Count, 1).End(xlUp).Row
        For i = LastRow To 10 Step -1
            If Rows(i).Hidden = True Then Rows.AutoFit
            If Cells(i, 1) = 0 Or Cells(i, 1) = "" Then Rows(i).Hidden = True
        Next i
     Application.EnableEvents = True
     Application.ScreenUpdating = True
End Sub
[/code][/vba]
К сообщению приложен файл: 0662539.xlsm(22.3 Kb)


Семь бед - один RESET.

Сообщение отредактировал amfor - Среда, 01.08.2018, 07:37
 
Ответить
СообщениеДобрый день.Вариант без изменения(добавления)формул
[vba]
Код
[code]Private Sub Worksheet_Change(ByVal Target As Range)
    Dim LastRow As Long, i As Long
    Application.ScreenUpdating = False
    Application.EnableEvents = False
      LastRow = Cells(Rows.Count, 1).End(xlUp).Row
        For i = LastRow To 10 Step -1
            If Rows(i).Hidden = True Then Rows.AutoFit
            If Cells(i, 1) = 0 Or Cells(i, 1) = "" Then Rows(i).Hidden = True
        Next i
     Application.EnableEvents = True
     Application.ScreenUpdating = True
End Sub
[/code][/vba]

Автор - amfor
Дата добавления - 01.08.2018 в 07:36
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сворачивание пустых строк (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!