Страницы: 1 2 След.
RSS
Скрыть определенные строки макросом
 
Может кто подскажет? Мне надо скрыть из таблицы в 44 500 строк, все строки кроме каждой 20. Хочу сделать макросом, но не знаю как.     :(
Изменено: kidlena - 18.12.2013 21:45:28
 
Цитата
но не знаю даже
Первые шаги: - http://www.planetaexcel.ru/techniques/3/59/
Если лень или некогда - http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=list&FID=7 ... ;)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Спасибо конечно, но первые шаги мне уже не нужны. Я знаю как скрыть строки макросом, не знаю как это сделать например с каждой двадцатой.
Но все равно посмотрю обязательно.
 
Покажите, как Вы умеете "скрывать", а остальное подскажут.
 
Скрыть 2 строку
Код
Sub 
Rows(2).Hidden = True
End Sub
 
Просто по счету или же есть "примета" для строк/фильтра?..  ;)  
Можно через поиск: "скрыть строки макросом с шагом". А там... Вот один вариантик подсказки - http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=52366
Изменено: Z - 18.12.2013 21:35:11
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Ух, ты! А это не то же? И, может, та же?
Код
Sub RowsHidden()
Dim i As Long
 For i = 20 To 50000 Step 20
    Worksheets("Лист1").Rows(i).Hidden = True
 Next i
End Sub
Добавить отключение/включение обновления экрана.
 
Не приметы нет, просто каждую 20 и все.
 
Не получилось. Пишет run-time error '9': Subscript out of range
 
Цитата
скрыть из таблицы в 44 500 строк, все строки кроме каждой 20
Было кроме каждой двадцатой, а теперь каждую двадцатую...
 
Где не получилось? У меня не получилось? Поклеп! Или все-таки в Вашем файле?
 
Ура, ура я сама все исправила. Там лист по другому назывался. Только мне надо наоборот, скрывать все кроме каждой 20. Может где напутала...
 
Ну а если пойти по другому. Мне надо сделать выборку каждую 20 строчку из диапазона. Может сделать как-то по другому не через сокрытие ячеек?
 
Э, нет. Тема о том, как скрывать. Будем скрывать. И немножко открывать. Каждую 20-ю.
Код
Sub RowsHidden()
Dim i As Long
Application.ScreenUpdating = False
    With Worksheets("Лист1")
        .Rows("20:50000").Hidden = True
        
        For i = 20 To 50000 Step 20
            .Rows(i).Hidden = False
        Next i
    End With
Application.ScreenUpdating = True
End Sub

 
Спасибо огромное!!! Мы мои глаза просто спасли!!! На втором сайте спасибо сказать не могу - забанили... Но скажу здесь еще раз СПАСИБО!!!
Обещаю научиться таким премудростям когда-нибудь...  :D
 
Забанили? Вряд ли. Просто тему закрыли. Нарушаете.
 
Извините!!! Спасибо еще раз и удачи!!!
 
Цитата
"Подобных тем на форуме порядка 512. В поиск запрос: скрыть строки по условию и выбирайте на свой вкус)"
Здравствуйте Друзья  :)  Благодарю Вас за помощь в познании возможностей VBA.
Я привёл цитату, так как мой вопрос довольно "обмусоленный". Но в имеющихся ответах не смог найти нужный макрос.
Одно мне кажется точно, что он возможно будет проще, чем были предложены раньше. Не знаю.

Мне нужно скрыть все строки на листе с нулевыми значениями - по всем столбцам (в том числе, если значение "0" стоит только, скажем, в 2-ух столбцах, а в других столбцах по данной строке - пустые ячейки). Полностью пустые строки не скрывать.

Помогите с кодом пожалуйста  :)  Благодарю!
С уважением, Владимир..
Изменено: Владимир Самара - 24.01.2014 13:18:27
 
пример Вашего файла выкладывайте
Удивление есть начало познания © Surprise me!
И да пребудет с нами сила ВПР.
 
Сначала прочитать Правила, поменять отображаемое имя, а уже потом выкладывать.
 
Цитата
не смог найти нужный макрос.
Так и не надо!
Просто вникнуть в код и чуть-чуть "подпилить" под свои требования
Изменено: Александр Моторин - 24.01.2014 02:54:41
 
Пример выложил в 18-ое сообщение. Логин исправил. Сам додуматься не могу - пробовал   :)  Прошу помочь по возможности. Благодарю.
 
Друзья, может кто-то всё же может помочь. Кто в этом деле разбирается? :)

Мне нужно скрыть все строки на листе с нулевыми значениями - по всем столбцам (в том числе, если значение "0" стоит только, скажем, в 2-ух столбцах, а в других столбцах по данной строке - пустые ячейки). Полностью пустые строки при этом не скрывать.

Прошу прощения за дубль (№18)
Благодарю за помощь или попытку :) Больше безпокоить не буду.
Файлик:
 
У Вас там ноли во всех строках. Все скрывать?
Я сам - дурнее всякого примера! ...
 
Не вполне понял - но как написано...

Код
Sub tt()
    Dim r As Range

    Application.ScreenUpdating = False
    With ActiveSheet.UsedRange.Columns("B:E")
        .Rows.EntireRow.Hidden = False
        For Each r In .Rows
            If Not r.Find(0, , xlValues, xlWhole) Is Nothing Then r.EntireRow.Hidden = True
        Next
    End With
    Application.ScreenUpdating = True

End Sub
 
 
Вариант:
Код
Public Sub www()
    Dim r As Range, d As Range
    Application.ScreenUpdating = 0
    Set d = Range("a7:e" & [a65536].End(xlUp).Row - 2)
    d.EntireRow.Hidden = 0
    For Each r In d.Rows
        r.EntireRow.Hidden = IsNumeric(Application.Match(0, r, 0))
    Next
    Application.ScreenUpdating = -1
End Sub
Я сам - дурнее всякого примера! ...
 
Благодарю за коды Друзья.
Первый, предложенный код скрывает только строки, если по  столбцам стоят видимые "0". А как сделать, чтобы скрывал нули в финансовом формате? Я пробовал в коде поменять на:
If Not r.Find("-", , xlValues, xlWhole) Is Nothing Then r.EntireRow.Hidden = True
- не получилось  :)  Может здесь нужно конкретный формат указать?

Да, ещё один момент. В первом коде, если в строке по 3-ём столбцам стоят значения: 0, 1654, 156 - он скрывает всю строку (т.к. есть "0"), а не должен, т.к. есть другие значения.

Ещё раз для наглядности, что нужно, - выделил ячейки жёлтым цветом (в первом столбце), которые должны быть скрыты по условию.
Благодарю!
Изменено: Владимир Самара - 27.01.2014 12:50:44
 
Код Сергея ведь работает - диапазоны только измените, раз пример поменяли.
Да, условие "0, 1654, 156" противоречит первоначальной задаче - значит эти коды не годятся, ждите другие.
Изменено: Hugo - 27.01.2014 13:06:06
 
Да, код Сергея предусматривает как раз таки данный формат, но он первоначально скрывал все строки. Также он скрывает строку, если по столбцам есть хотя бы один нуль, а в других - значения. Ну это теперь и так ясно. Оба кода хорошо применимы и в других случаях. Благодарю и за них!
Может и по моему случаю будет решение  :)
Изменено: Владимир Самара - 27.01.2014 13:38:46
 
Мир-дружба-жевачка  :)


Код
Sub tt()
    Dim r As Range

    Application.ScreenUpdating = False
    With ActiveSheet.UsedRange.Columns("C:F")
        .Rows.EntireRow.Hidden = False
        For Each r In .Rows
            If IsNumeric(Application.Match(0, r, 0)) Then
                If Application.Sum(r) = 0 Then r.EntireRow.Hidden = True
            End If
        Next
    End With
    Application.ScreenUpdating = True

End Sub
 
Страницы: 1 2 След.
Читают тему
Наверх