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

Вход

Регистрация

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

 

= Мир MS Excel/скрыть и раскрыть диапозон с пустыми ячейками - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
скрыть и раскрыть диапозон с пустыми ячейками
GGR Дата: Четверг, 22.01.2026, 17:06 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 181
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Добрый вечер. Прошу помощи. В файле в модуле 2 есть макрос. Он косячный это точно. Либо его нужно поправить либо прошу предложить новое решение.
В файле 3515 строк ( 3515 итоговая и файл будет содержать столько строк !) По мере заполнения поле может остаться пустым ( н-р строк 3514, заполнено 3496 ,остальное пусто ) Вот пустое поле надо скрыть , а при необходимости раскрыть. Итоговая строка должна отображаться!!! Приоритетом является столбец E (он главный)
К сообщению приложен файл: 6643401.xlsm (185.9 Kb)
 
Ответить
СообщениеДобрый вечер. Прошу помощи. В файле в модуле 2 есть макрос. Он косячный это точно. Либо его нужно поправить либо прошу предложить новое решение.
В файле 3515 строк ( 3515 итоговая и файл будет содержать столько строк !) По мере заполнения поле может остаться пустым ( н-р строк 3514, заполнено 3496 ,остальное пусто ) Вот пустое поле надо скрыть , а при необходимости раскрыть. Итоговая строка должна отображаться!!! Приоритетом является столбец E (он главный)

Автор - GGR
Дата добавления - 22.01.2026 в 17:06
_Boroda_ Дата: Четверг, 22.01.2026, 17:32 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Так?
[vba]
Код
Sub Skr()
    r0_ = 3
    nr_ = Cells(Rows.Count, 1).End(3).Row - r0_
    Cells(r0_, 1).Resize(nr_).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End Sub

Sub Otkr()
    r0_ = 3
    nr_ = Cells(Rows.Count, 1).End(3).Row - r0_
    Cells(r0_, 1).Resize(nr_).EntireRow.Hidden = False
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак?
[vba]
Код
Sub Skr()
    r0_ = 3
    nr_ = Cells(Rows.Count, 1).End(3).Row - r0_
    Cells(r0_, 1).Resize(nr_).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End Sub

Sub Otkr()
    r0_ = 3
    nr_ = Cells(Rows.Count, 1).End(3).Row - r0_
    Cells(r0_, 1).Resize(nr_).EntireRow.Hidden = False
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 22.01.2026 в 17:32
GGR Дата: Четверг, 22.01.2026, 18:26 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 181
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
_Boroda_, все отлично работает. Я забыла вложить в файл лист " Стат" .На этом листе к сожалению макрос не работает . Можно сделать , чтобы макрос работал на 2 листа сразу? Приоритетом в листе " стат" столбец А.
Подскажите пожалуйста, это для понимания как читается ваш макрос. Что такое r0_ = 3?
К сообщению приложен файл: 51.xlsm (300.8 Kb)


Сообщение отредактировал GGR - Четверг, 22.01.2026, 18:49
 
Ответить
Сообщение_Boroda_, все отлично работает. Я забыла вложить в файл лист " Стат" .На этом листе к сожалению макрос не работает . Можно сделать , чтобы макрос работал на 2 листа сразу? Приоритетом в листе " стат" столбец А.
Подскажите пожалуйста, это для понимания как читается ваш макрос. Что такое r0_ = 3?

Автор - GGR
Дата добавления - 22.01.2026 в 18:26
MikeVol Дата: Четверг, 22.01.2026, 22:19 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 473
Репутация: 115 ±
Замечаний: 0% ±

MSO LTSC 2021 EN
Что такое r0_ = 3?
Это 3-я строка,
Cells(r0_, 1)
3-я строка в колонке A. Иными словами ячейка A3.


Ученик.
Одесса - Украина
 
Ответить
Сообщение
Что такое r0_ = 3?
Это 3-я строка,
Cells(r0_, 1)
3-я строка в колонке A. Иными словами ячейка A3.

Автор - MikeVol
Дата добавления - 22.01.2026 в 22:19
_Boroda_ Дата: Пятница, 23.01.2026, 09:35 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Так?
[vba]
Код
Sub Skr()
    r0_ = 3 'номер строки, с которой начинаем проверять
    'ищем слово "ИТОГО" - это будет тот столбец, по которому проверяем
    c0_ = Cells.Find(What:="ИТОГО", LookAt:=xlWhole, MatchCase:=True).Column
    nr_ = Cells(Rows.Count, c0_).End(3).Row - r0_ 'кол-во строк, которые проверяем
    'с ячейки строки r0_ столбца c0_ вниз на nr_ ищем все пустые и скрываем их
    Cells(r0_, c0_).Resize(nr_).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True '
End Sub

Sub Otkr()
    r0_ = 3
    c0_ = Cells.Find(What:="ИТОГО", LookAt:=xlWhole, MatchCase:=True).Column
    nr_ = Cells(Rows.Count, c0_).End(3).Row - r0_
    Cells(r0_, c0_).Resize(nr_).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = False
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак?
[vba]
Код
Sub Skr()
    r0_ = 3 'номер строки, с которой начинаем проверять
    'ищем слово "ИТОГО" - это будет тот столбец, по которому проверяем
    c0_ = Cells.Find(What:="ИТОГО", LookAt:=xlWhole, MatchCase:=True).Column
    nr_ = Cells(Rows.Count, c0_).End(3).Row - r0_ 'кол-во строк, которые проверяем
    'с ячейки строки r0_ столбца c0_ вниз на nr_ ищем все пустые и скрываем их
    Cells(r0_, c0_).Resize(nr_).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True '
End Sub

Sub Otkr()
    r0_ = 3
    c0_ = Cells.Find(What:="ИТОГО", LookAt:=xlWhole, MatchCase:=True).Column
    nr_ = Cells(Rows.Count, c0_).End(3).Row - r0_
    Cells(r0_, c0_).Resize(nr_).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = False
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 23.01.2026 в 09:35
GGR Дата: Пятница, 23.01.2026, 15:13 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 181
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
MikeVol, спасибо за объяснение
 
Ответить
СообщениеMikeVol, спасибо за объяснение

Автор - GGR
Дата добавления - 23.01.2026 в 15:13
GGR Дата: Пятница, 23.01.2026, 15:21 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 181
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Александр, все работает. Это то что нужно. Спасибо вам огромное.
 
Ответить
СообщениеАлександр, все работает. Это то что нужно. Спасибо вам огромное.

Автор - GGR
Дата добавления - 23.01.2026 в 15:21
GGR Дата: Воскресенье, 25.01.2026, 14:04 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 181
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
_Boroda_, добрый день.Очень извиняюсь, когда проверила макрос на вспомогательном файле все сработало.Но в связи с тем , что были изменения в " база" и на листе " стат" сейчас в пустых ячейках 0 (н-р А187) , то макрос на скрыть / раскрыть не работает ( лист " Стат"). Посмотрите пожалуйста что можно поменять , чтобы он был универсальным для 2 листов
К сообщению приложен файл: 6643401s_dopolneniem.xlsm (290.3 Kb)
 
Ответить
Сообщение_Boroda_, добрый день.Очень извиняюсь, когда проверила макрос на вспомогательном файле все сработало.Но в связи с тем , что были изменения в " база" и на листе " стат" сейчас в пустых ячейках 0 (н-р А187) , то макрос на скрыть / раскрыть не работает ( лист " Стат"). Посмотрите пожалуйста что можно поменять , чтобы он был универсальным для 2 листов

Автор - GGR
Дата добавления - 25.01.2026 в 14:04
_Boroda_ Дата: Понедельник, 26.01.2026, 10:22 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Попробуйте так
[vba]
Код
Sub Skr()
    r0_ = 3
    With Cells.Find(What:="ИТОГО", LookAt:=xlWhole, MatchCase:=True)
        c0_ = .Column
        r1_ = .Row
    End With
    nr_ = r1_ - r0_
    On Error Resume Next
    Cells(r0_, c0_).Resize(nr_).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True '
    If Err Then
        ar_ = Cells(r0_, c0_).Resize(nr_)
        For i = nr_ To 1 Step -1
            If ar_(i, 1) <> 0 And ar_(i, 1) <> "" Then
                nrSkr_ = nr_ - i
                Exit For
            End If
        Next i
        If nrSkr_ Then
            Cells(r0_ + nr_ - nrSkr_, c0_).Resize(nrSkr_).EntireRow.Hidden = True
        End If
    End If
    On Error GoTo 0
End Sub

Sub Otkr()
    r0_ = 3
    With Cells.Find(What:="ИТОГО", LookAt:=xlWhole, MatchCase:=True)
        c0_ = .Column
        r1_ = .Row
    End With
    nr_ = r1_ - r0_
    Application.ScreenUpdating = 0
    Application.Calculation = 3
    Cells(r0_, c0_).Resize(nr_).EntireRow.Hidden = False
    Application.Calculation = 1
    Application.ScreenUpdating = 1
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПопробуйте так
[vba]
Код
Sub Skr()
    r0_ = 3
    With Cells.Find(What:="ИТОГО", LookAt:=xlWhole, MatchCase:=True)
        c0_ = .Column
        r1_ = .Row
    End With
    nr_ = r1_ - r0_
    On Error Resume Next
    Cells(r0_, c0_).Resize(nr_).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True '
    If Err Then
        ar_ = Cells(r0_, c0_).Resize(nr_)
        For i = nr_ To 1 Step -1
            If ar_(i, 1) <> 0 And ar_(i, 1) <> "" Then
                nrSkr_ = nr_ - i
                Exit For
            End If
        Next i
        If nrSkr_ Then
            Cells(r0_ + nr_ - nrSkr_, c0_).Resize(nrSkr_).EntireRow.Hidden = True
        End If
    End If
    On Error GoTo 0
End Sub

Sub Otkr()
    r0_ = 3
    With Cells.Find(What:="ИТОГО", LookAt:=xlWhole, MatchCase:=True)
        c0_ = .Column
        r1_ = .Row
    End With
    nr_ = r1_ - r0_
    Application.ScreenUpdating = 0
    Application.Calculation = 3
    Cells(r0_, c0_).Resize(nr_).EntireRow.Hidden = False
    Application.Calculation = 1
    Application.ScreenUpdating = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 26.01.2026 в 10:22
pubchek Дата: Понедельник, 26.01.2026, 11:47 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

2024
Добрый день! Если открыть можно все строки, не только последние (до ИТОГО), могу предложить вариант открытия
[vba]
Код
Sub Otkr_2()
    Application.ScreenUpdating = 0
    Application.Calculation = 0

        Cells.EntireRow.Hidden = False

    Application.Calculation = 1
    Application.ScreenUpdating = 1
End Sub
[/vba]


Сообщение отредактировал pubchek - Понедельник, 26.01.2026, 11:49
 
Ответить
СообщениеДобрый день! Если открыть можно все строки, не только последние (до ИТОГО), могу предложить вариант открытия
[vba]
Код
Sub Otkr_2()
    Application.ScreenUpdating = 0
    Application.Calculation = 0

        Cells.EntireRow.Hidden = False

    Application.Calculation = 1
    Application.ScreenUpdating = 1
End Sub
[/vba]

Автор - pubchek
Дата добавления - 26.01.2026 в 11:47
ExcelDK Дата: Понедельник, 26.01.2026, 14:24 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 130
Репутация: 8 ±
Замечаний: 0% ±

2010
GGR, здравствуйте! А почему вы не хотите использовать встроенные фильтры?
К сообщению приложен файл: 6643401.xlsb (64.2 Kb)
 
Ответить
СообщениеGGR, здравствуйте! А почему вы не хотите использовать встроенные фильтры?

Автор - ExcelDK
Дата добавления - 26.01.2026 в 14:24
GGR Дата: Понедельник, 26.01.2026, 20:38 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 181
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
ExcelDK, добрый вечер. Работать в данной форме будет пожилой контингент , поэтому встроенные фильтры не рассматриваем.Спасибо за вариант
 
Ответить
СообщениеExcelDK, добрый вечер. Работать в данной форме будет пожилой контингент , поэтому встроенные фильтры не рассматриваем.Спасибо за вариант

Автор - GGR
Дата добавления - 26.01.2026 в 20:38
GGR Дата: Понедельник, 26.01.2026, 20:41 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 181
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
pubchek, спасибо за вариант
 
Ответить
Сообщениеpubchek, спасибо за вариант

Автор - GGR
Дата добавления - 26.01.2026 в 20:41
GGR Дата: Понедельник, 26.01.2026, 20:45 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 181
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
_Boroda_, ваш макрос поставила в свой оригинал Все работает . Спасибо огромное .
 
Ответить
Сообщение_Boroda_, ваш макрос поставила в свой оригинал Все работает . Спасибо огромное .

Автор - GGR
Дата добавления - 26.01.2026 в 20:45
  • Страница 1 из 1
  • 1
Поиск:

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