Страницы: 1
RSS
Скрыть строки с ячейками определённого цвета в заданном диапазоне
 
Доброго дня!  
Нашёл поиском код, скрывающий красные ячейки во всём столбце B.  
А что написать вместо Cells(Rows.Count, 2), чтобы не во всём столбце, а например, с 6-й по 100-ю строки?  
 
Dim iLastRow As Long  
   iLastRow = Cells(Rows.Count, 2).End(xlUp).Row  
   For i = 1 To iLastRow  
       If Cells(i, 2).Interior.ColorIndex = 3 Then  
           Rows(i).Hidden = True  
       End If  
   Next
 
вместо  
For i = 1 To iLastRow  
написать  
For i = 6 To 100
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Спасибо, Александр!  
То, что надо!  
Ну не силён я в макросах.
 
скажите, а как узнать код цвета для скрытия нужных мне строк, в моей таблице также нужно искать строки по цвету ячейки в первом столбце, только у меня этот столбец А, как в этом случае изменится текс макроса? спасибо!!!
 
Узнать код можно выделив ячейку и в редакторе ВБА в окне immediate набрать:  
?activecell.interior.colorindex  
и нажать ввод.  
>> только у меня этот столбец А  
вместо Cells(i, 2) надо Cells(i, 1)
Я сам - дурнее всякого примера! ...
 
Здравствуйте!  
Мне кажется, что проще цифровой код цвета ячейки узнать макрорекордером.  
Хотя м.б. я и неправ.
 
Делаем себе шпаргалку цвет-код:  
sub qqq()  
for i = 1 to 56  
cells(i,1).interior.colorindex=i  
next  
end sub  
Номер строки и будет кодом цвета ячейки.
 
спасибо огромное за быстрый ответ!!!  
правильно ли я понимаю, можно вместо цифры подставить RGB(204;255;204), к примеру?
 
Зачем ещё что-то подставлять? Это Вам придётся ещё одну таблицу-шпаргалку делать :-) Используйте .interior.colorindex
 
Попробуйте еще так:  
Private Sub CommandButton1_Click()  
Module2.HideRed activecell, n  
End Sub  
**************************************************  
Sub HideRed(activecell As Range, ByVal n As Long)  
n = InputBox("Введите номер последней строки")  
For i = activecell.Row To n  
If Cells(i, activecell.Column).Interior.ColorIndex = 3 Then  
Rows(i).Hidden = True  
End If  
Next i  
End Sub
 
Здравствуйте, уже писала выше, поэтому решила написать в эту тему.  
У меня вот какая ситуация - есть файл, где строки таблицы проставлены тремя разными цветами заливки (зеленый, красный и без заливки), задача стоит сделать так, чтоб можно было посмотреть либо только зеленые строки, либо красные, либо без заливки, либо каких-то двух цветов разом. Решить эту задачу я решила так - поместила на лист три флажка и кнопку, типа выбери флажками, что нужно и отфильтруй, как это выглядит скин во вложении.  
Код программы написала простенький, хотя длинновато получилось))  
 
Sub Кнопка5_Щелчок()  
If ActiveSheet.CheckBoxes(1).Value = False Then  
Call flag_1_snat  
Else  
Call flag_1_stoit  
End If  
 
If ActiveSheet.CheckBoxes(2).Value = False Then  
Call flag_2_snat  
Else  
Call flag_2_stoit  
End If  
 
If ActiveSheet.CheckBoxes(3).Value = False Then  
Call flag_3_snat  
Else  
Call flag_3_stoit  
End If  
End Sub  
 
 
 
Sub flag_1_snat()  
Dim iLastRow As Long  
iLastRow = Cells(Rows.Count).End(xlUp).Row  
For i = 8 To 16  
If Cells(i, 1).Interior.ColorIndex = 35 Then  
Rows(i).Hidden = True  
End If  
Next  
End Sub  
 
Sub flag_1_stoit()  
Dim iLastRow As Long  
iLastRow = Cells(Rows.Count).End(xlUp).Row  
For i = 8 To 16  
If Cells(i, 1).Interior.ColorIndex = 35 Then  
Rows(i).Hidden = False  
End If  
Next  
End Sub  
 
Sub flag_2_snat()  
Dim iLastRow As Long  
iLastRow = Cells(Rows.Count).End(xlUp).Row  
For i = 8 To 16  
If Cells(i, 1).Interior.ColorIndex = 19 Then  
Rows(i).Hidden = True  
End If  
Next  
End Sub  
 
Sub flag_2_stoit()  
Dim iLastRow As Long  
iLastRow = Cells(Rows.Count).End(xlUp).Row  
For i = 8 To 16  
If Cells(i, 1).Interior.ColorIndex = 19 Then  
Rows(i).Hidden = False  
End If  
Next  
End Sub  
 
Sub flag_3_snat()  
Dim iLastRow As Long  
iLastRow = Cells(Rows.Count).End(xlUp).Row  
For i = 8 To 16  
If Cells(i, 1).Interior.ColorIndex = -4142 Then  
Rows(i).Hidden = True  
End If  
Next  
End Sub  
 
Sub flag_3_stoit()  
Dim iLastRow As Long  
iLastRow = Cells(Rows.Count).End(xlUp).Row  
For i = 8 To 16  
If Cells(i, 1).Interior.ColorIndex = -4142 Then  
Rows(i).Hidden = False  
End If  
Next  
End Sub  
 
Вопрос: код раньше выдавал ошибку, теперь не выдаёт, но и ничего не происходит. Коды цветов верные.  
Помогите, пожалуйста!!! Очень нужно! Заранее огромное спасибо!
 
Посвящается началу зимы.  
Без архитектурных излишеств.  
Образцы цветов по которым скрываем строки устанавливаем в диапазон первой строки обведённый рамкой.
 
Спасибо большое за ответ! Но можно ли как-то связать код именно с элементом управления "флажок"? Мне важно, чтоб именно так, как я поместила в скрине, было на листе. И ваш код не позволяет выведение на лист каких-то двух цветов, а мне это очень нужно. Сможете помочь?
 
Здравствуйте!  
Посмотрите, пжл, этот замечательный файлик, заслуга в создании которого на 99,9 % принадлежит The_Prist. В нём похожая ситуация: ищется название листа книги по параметру в зависимости от того, где находится точка.  
Хватит знаний и умения разобраться?
 
Немного покороче..
 
Классно! Я вот только не понял: автору нужно, чтобы отмеченные цвета скрывались или оставались, а, Наталья? Хотя это уже дело техники!
 
О! Последний пример, то что нужно! Спасибо! Только мне нужно, чтоб стоящая галочка означала, что это как раз нужно выводить, а, если галочки нет, то скрыть.  
Мои познания в программировании весьма ограничены, скажите, пожалуйста, что нужно поменять в тексте программы?  
И ещё: правильно ли я поняла, что скрываются строки того, которым окрашена ячейка, где стоит флажок? А если я хочу, чтоб ячейка была просто белой?)) Все же мне нужно, чтоб лист выглядел именно так, как я поместила на картинке. Цвета, которые я использую, 19, 35 и -4142.
 
-4142 это белый?
 
Не белый - отсутствие заливки.
 
2 Юрий М  
Ну да! Спасибо! Некорректно вопрос задал.  
А я хочу Вас ещё раз поблагодарить за подсказку о мультивыделениях в ListBox.  
Спасибо!!!  
:о))
 
Вот!  
А почему Вам не хочется раскрашенный фон ячеек иметь?  
Как пользователь узнает какой из цветов "Включить 1", какой "Включить 2" и т.д.?  
Но если Вы настаиваете, то я думаю, что смогу переделать фон на бесцветный.
 
Простите, не тот файл выложил.  
Модераторы, удалите, пжл, файл из поста  
 
iba2004  
Число сообщений: ___  
01.12.2012, 22:50  
 
Спасибо!
 
Не дождался ответаю :о((  
Создал файл с бесцветными ячейками. Внизу оставил цвет для понимания, при желании можно снять заливку.  
Удачи!
 
Поправил..
 
Для отображения строк нескольких цветов.
 
Так удобнее..
 
спасибо вам всем ОГРОМНОЕ!!! кое-что немного переделала, получила все, как мне нужно! ещё раз спасибо!!!
Страницы: 1
Читают тему
Наверх