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

Вход

Регистрация

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

 

= Мир MS Excel/Скрыть пустые строки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрыть пустые строки (Макросы/Sub)
Скрыть пустые строки
roman66rus Дата: Вторник, 11.08.2015, 14:09 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 113
Репутация: 0 ±
Замечаний: 0% ±

2010
Доброго времени суток. Помогите пожалуйста. Можно ли скрыть пустые строки. Т.е. чтобы отображались только те строки в которых есть значение, а ниже текущтекущая и будущее. Если можно сделать не VBA прошу перенести тему.
К сообщению приложен файл: 4686617.xlsx (78.8 Kb)
 
Ответить
СообщениеДоброго времени суток. Помогите пожалуйста. Можно ли скрыть пустые строки. Т.е. чтобы отображались только те строки в которых есть значение, а ниже текущтекущая и будущее. Если можно сделать не VBA прошу перенести тему.

Автор - roman66rus
Дата добавления - 11.08.2015 в 14:09
Udik Дата: Вторник, 11.08.2015, 17:22 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Не нашёл ни одной пустой строки в таблице (столбец В заполнен весь). Что вы понимаете под пустой строкой?


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеНе нашёл ни одной пустой строки в таблице (столбец В заполнен весь). Что вы понимаете под пустой строкой?

Автор - Udik
Дата добавления - 11.08.2015 в 17:22
roman66rus Дата: Вторник, 11.08.2015, 19:06 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 113
Репутация: 0 ±
Замечаний: 0% ±

2010
Sorry, в примере в ручную скрыл не нужные строки.
Можно ли так чтобы они автоматом скрывались, и при открытии файла курсор стоял на текущей дате.
К сообщению приложен файл: 7680460.xlsx (79.8 Kb)
 
Ответить
СообщениеSorry, в примере в ручную скрыл не нужные строки.
Можно ли так чтобы они автоматом скрывались, и при открытии файла курсор стоял на текущей дате.

Автор - roman66rus
Дата добавления - 11.08.2015 в 19:06
Udik Дата: Вторник, 11.08.2015, 20:23 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Кажется понял, что Вы хотите.
Если в диапазоне ячеек С4:M6 нет значений, скрыть эти строки, и так по всем блокам, кроме блока текущей даты. Ну и поставить маркер в ячейку с текущей датой.
Если бы не объединенные ячейки, я бы сделал, а с ними у меня не идёт. А вам не понадобится потом что-то вносить в скрытые ячейки? А то добраться до них только через макрос получится.


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Вторник, 11.08.2015, 20:29
 
Ответить
СообщениеКажется понял, что Вы хотите.
Если в диапазоне ячеек С4:M6 нет значений, скрыть эти строки, и так по всем блокам, кроме блока текущей даты. Ну и поставить маркер в ячейку с текущей датой.
Если бы не объединенные ячейки, я бы сделал, а с ними у меня не идёт. А вам не понадобится потом что-то вносить в скрытые ячейки? А то добраться до них только через макрос получится.

Автор - Udik
Дата добавления - 11.08.2015 в 20:23
KSV Дата: Вторник, 11.08.2015, 23:19 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Добрый вечер!
Как вариант: [vba]
Код
Private Sub Workbook_Open()
     Dim r&, c&, rng As Range
     With Ëèñò1.UsedRange
         r = .Rows.Count - 3
         c = .Columns.Count - 3
         With .Cells(4, 3).Resize(r, c)
             .EntireRow.Hidden = True
             For Each rng In .SpecialCells(xlCellTypeConstants).Cells
                 .Cells(rng.Row - 3, c).MergeArea.EntireRow.Hidden = False
             Next
         End With
         With .Columns(1).Find(Date)
             .Resize(3).EntireRow.Hidden = False
             .Select
         End With
     End With
End Sub
[/vba]

[p.s.]Может быть несколько лишних "телодвижений" (когда в одной дате заполнено несколько ячеек), зато быстрый, простой и понятный код :) [/p.s.]
К сообщению приложен файл: 4686617_1.xlsm (76.3 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
СообщениеДобрый вечер!
Как вариант: [vba]
Код
Private Sub Workbook_Open()
     Dim r&, c&, rng As Range
     With Ëèñò1.UsedRange
         r = .Rows.Count - 3
         c = .Columns.Count - 3
         With .Cells(4, 3).Resize(r, c)
             .EntireRow.Hidden = True
             For Each rng In .SpecialCells(xlCellTypeConstants).Cells
                 .Cells(rng.Row - 3, c).MergeArea.EntireRow.Hidden = False
             Next
         End With
         With .Columns(1).Find(Date)
             .Resize(3).EntireRow.Hidden = False
             .Select
         End With
     End With
End Sub
[/vba]

[p.s.]Может быть несколько лишних "телодвижений" (когда в одной дате заполнено несколько ячеек), зато быстрый, простой и понятный код :) [/p.s.]

Автор - KSV
Дата добавления - 11.08.2015 в 23:19
krosav4ig Дата: Среда, 12.08.2015, 03:07 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
еще пара вариантов
1 без макросов, фильтром по доп столбцу (O:O) с формулой
Код
=СУММ(ИНДЕКС(C:C;СТРОКА()-ОСТАТ(СТРОКА(O1)-1;3)):ИНДЕКС(M:M;СТРОКА(O6)-ОСТАТ(СТРОКА(O3);3));ИНДЕКС(A:A;СТРОКА()-ОСТАТ(СТРОКА(O1)-1;3))=СЕГОДНЯ())>0

2 макрос
[vba]
Код
Private Sub Workbook_Open()
     Application.ScreenUpdating = 0
     Sheets("Лист").Activate
     With [C4:M4].Resize(Application.CountA([B:B]) - 1)
         .EntireRow.Hidden = True
         .SpecialCells(2, 23).EntireRow.Select
         With .Offset(, -2).Find(Date)
             Union(Selection, .Resize(3)).EntireRow.Hidden = False
             Application.Goto .Cells, True
         End With
     End With
     Application.ScreenUpdating = 1
End Sub
[/vba]
К сообщению приложен файл: 8417175-2-1.zip (67.5 Kb) · 8417175-2-2.xlsm (78.1 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениееще пара вариантов
1 без макросов, фильтром по доп столбцу (O:O) с формулой
Код
=СУММ(ИНДЕКС(C:C;СТРОКА()-ОСТАТ(СТРОКА(O1)-1;3)):ИНДЕКС(M:M;СТРОКА(O6)-ОСТАТ(СТРОКА(O3);3));ИНДЕКС(A:A;СТРОКА()-ОСТАТ(СТРОКА(O1)-1;3))=СЕГОДНЯ())>0

2 макрос
[vba]
Код
Private Sub Workbook_Open()
     Application.ScreenUpdating = 0
     Sheets("Лист").Activate
     With [C4:M4].Resize(Application.CountA([B:B]) - 1)
         .EntireRow.Hidden = True
         .SpecialCells(2, 23).EntireRow.Select
         With .Offset(, -2).Find(Date)
             Union(Selection, .Resize(3)).EntireRow.Hidden = False
             Application.Goto .Cells, True
         End With
     End With
     Application.ScreenUpdating = 1
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 12.08.2015 в 03:07
roman66rus Дата: Среда, 12.08.2015, 04:21 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 113
Репутация: 0 ±
Замечаний: 0% ±

2010
Спасибо ВСЕМ, то что надо.
 
Ответить
СообщениеСпасибо ВСЕМ, то что надо.

Автор - roman66rus
Дата добавления - 12.08.2015 в 04:21
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрыть пустые строки (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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