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

Вход

Регистрация

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

 

= Мир MS Excel/показывать только заполненные строки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
показывать только заполненные строки
AKSENOV048 Дата: Среда, 07.09.2011, 02:29 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

Здравствуйте! искал искал не нашел, хотя наверное плохо искал. как сделать чтобы автоматически скрывались все строки если значение в столбце, например, "Е" пусто или равно 0. и также автоматически показывались если значение в столбце >0


Сообщение отредактировал AKSENOV048 - Среда, 07.09.2011, 02:32
 
Ответить
СообщениеЗдравствуйте! искал искал не нашел, хотя наверное плохо искал. как сделать чтобы автоматически скрывались все строки если значение в столбце, например, "Е" пусто или равно 0. и также автоматически показывались если значение в столбце >0

Автор - AKSENOV048
Дата добавления - 07.09.2011 в 02:29
Michael_S Дата: Среда, 07.09.2011, 03:12 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Если строка скрыта автоматически, как в нее занесете значение, что бы автоматически показать? И что значит "автоматически"?


Сообщение отредактировал Michael_S - Среда, 07.09.2011, 03:13
 
Ответить
СообщениеЕсли строка скрыта автоматически, как в нее занесете значение, что бы автоматически показать? И что значит "автоматически"?

Автор - Michael_S
Дата добавления - 07.09.2011 в 03:12
AKSENOV048 Дата: Среда, 07.09.2011, 03:18 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

в скрытые строки изменения заносятся с помощью формы, которая добавляет данные в первую пустую строку. iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1

"автоматически" не знаю, может быть связать это как то с Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 
Ответить
Сообщениев скрытые строки изменения заносятся с помощью формы, которая добавляет данные в первую пустую строку. iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1

"автоматически" не знаю, может быть связать это как то с Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Автор - AKSENOV048
Дата добавления - 07.09.2011 в 03:18
Michael_S Дата: Среда, 07.09.2011, 07:55 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Quote (AKSENOV048)
в скрытые строки изменения заносятся с помощью формы, которая добавляет данные в первую пустую строку. iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1

Это, как бы, не первая пустая, а строка, следующая за последней заполненной. А судя по вопросу, еще могут быть пустые строки в середине.
 
Ответить
Сообщение
Quote (AKSENOV048)
в скрытые строки изменения заносятся с помощью формы, которая добавляет данные в первую пустую строку. iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1

Это, как бы, не первая пустая, а строка, следующая за последней заполненной. А судя по вопросу, еще могут быть пустые строки в середине.

Автор - Michael_S
Дата добавления - 07.09.2011 в 07:55
nilem Дата: Среда, 07.09.2011, 07:58 | Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Для примера
Code
Sub ert()
Dim r As Range, rng As Range
Set rng = Range("E1:E10")
Application.ScreenUpdating = False
For Each r In rng.Cells
     r.EntireRow.Hidden = r.Value <= 0
Next
Application.ScreenUpdating = True
End Sub


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеДля примера
Code
Sub ert()
Dim r As Range, rng As Range
Set rng = Range("E1:E10")
Application.ScreenUpdating = False
For Each r In rng.Cells
     r.EntireRow.Hidden = r.Value <= 0
Next
Application.ScreenUpdating = True
End Sub

Автор - nilem
Дата добавления - 07.09.2011 в 07:58
AKSENOV048 Дата: Среда, 07.09.2011, 11:25 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

Michael_S,
Quote (Michael_S)
Это, как бы, не первая пустая, а строка, следующая за последней заполненной.

конечно вы правы, я просто чуть не правильно объяснил, извиняюсь. Да Вы правы строки с нулевым значением в столбце Е могут быть.
nilem, хороший макрос, осталось мне придумать как сделать чтобы он автоматически срабатывал. на событие Worksheet_SelectionChange не подошло, т.к. это маленькое зависание при каждом щелчке по ячейке. сейчас пока прилепил запуск макроса по окончанию работы формы Application.Run "ert", но все равно это не то.
да и как можно заменить rng = Range("E1:E10") на ("E3:E")


Сообщение отредактировал AKSENOV048 - Среда, 07.09.2011, 11:25
 
Ответить
СообщениеMichael_S,
Quote (Michael_S)
Это, как бы, не первая пустая, а строка, следующая за последней заполненной.

конечно вы правы, я просто чуть не правильно объяснил, извиняюсь. Да Вы правы строки с нулевым значением в столбце Е могут быть.
nilem, хороший макрос, осталось мне придумать как сделать чтобы он автоматически срабатывал. на событие Worksheet_SelectionChange не подошло, т.к. это маленькое зависание при каждом щелчке по ячейке. сейчас пока прилепил запуск макроса по окончанию работы формы Application.Run "ert", но все равно это не то.
да и как можно заменить rng = Range("E1:E10") на ("E3:E")

Автор - AKSENOV048
Дата добавления - 07.09.2011 в 11:25
nilem Дата: Среда, 07.09.2011, 12:39 | Сообщение № 7
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Если столбец заполняется из формы, то можно так, например. Вот это в стандартный модуль:
Code
Sub HideRows()
Dim x(), i&, hr As Range: Application.ScreenUpdating = 0
With Range([e1], Cells(Rows.Count, 5).End(xlUp))
     x = .Value
     For i = 3 To UBound(x)
         If x(i, 1) = 0 Then
             If hr Is Nothing Then Set hr = .Cells(i) Else Set hr = Union(hr, .Cells(i))
         End If
     Next i
     .EntireRow.Hidden = False
End With
If Not hr Is Nothing Then hr.EntireRow.Hidden = True
Application.ScreenUpdating = 1
End Sub

А где-нибудь в конце работы формы:
Code
Call Module1.HideRows


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеЕсли столбец заполняется из формы, то можно так, например. Вот это в стандартный модуль:
Code
Sub HideRows()
Dim x(), i&, hr As Range: Application.ScreenUpdating = 0
With Range([e1], Cells(Rows.Count, 5).End(xlUp))
     x = .Value
     For i = 3 To UBound(x)
         If x(i, 1) = 0 Then
             If hr Is Nothing Then Set hr = .Cells(i) Else Set hr = Union(hr, .Cells(i))
         End If
     Next i
     .EntireRow.Hidden = False
End With
If Not hr Is Nothing Then hr.EntireRow.Hidden = True
Application.ScreenUpdating = 1
End Sub

А где-нибудь в конце работы формы:
Code
Call Module1.HideRows

Автор - nilem
Дата добавления - 07.09.2011 в 12:39
AKSENOV048 Дата: Среда, 07.09.2011, 13:18 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

Отлично. то что надо. и работает намного быстрее предыдущего макроса. СПАСИБО БОЛЬШОЕ!
 
Ответить
СообщениеОтлично. то что надо. и работает намного быстрее предыдущего макроса. СПАСИБО БОЛЬШОЕ!

Автор - AKSENOV048
Дата добавления - 07.09.2011 в 13:18
  • Страница 1 из 1
  • 1
Поиск:

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