Здравствуйте.Нужен макрос фильтрации строк. Суть такова : по нажатию кнопки макрос должен "посмотреть" на лист "ЖРеал" в диапазон "АС14:АС433". Найти в єтом диапазоне последнюю непустую ячейку с цветом равному цвету ячейки АС18. И ниже найденной ячейки скрыть все пустые строки до строки 433. Если сможете буду благодарен.
Amator, макрос сделан для столбца A и диапазона A1:A10. Задавая вопрос на этом Форуме, делайте удобные задания для администратора, чтобы Вам ответили. А затем подставляйте свои значения в макросы, которые выложил администратор.
Excel умеет искать не только данные, но и оформление.
Часть кода, который я выложил в этом сообщении, получен с помощью макрорекордера.
Макрос
Sub Макрос2()
Dim rngFind As Excel.Range
'Настройка поиска на поиск оформления.
With Application.FindFormat.Interior
'Жёлтая заливка.
.Color = 65535
End With
'Поиск на активном листе, в столбце 1.
'What:="?" - знак вопроса - это специальный символ
'в данном случае. Который означает любой один символ.
'SearchDirection:=xlPrevious - поиск снизу вверх по столбцу 1.
Set rngFind = Columns(1).Find(What:="?", LookIn:=xlValues, LookAt:=xlPart, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False, _
SearchFormat:=True)
'Убирание из поиска оформления, чтобы не мешало,
'т.к. макрос изменит настройки окна "Найти и заменить."
Application.FindFormat.Clear
'Если не будет найдено, то в переменной "rngFind"
'будет слово "Nothing".
If rngFind Is Nothing Then
'Выход из процедуры.
Exit Sub
End If
'Скрытие строк от найденной строки + 1 строка и до последней нужной.
Rows(rngFind.Row + 1 & ":10").Hidden = True
End Sub
Спасибо за огромную помощь !
Здравствуйте. А как в этом макросе вместо кода цвета 65535 взять цвет ячейки А1 в еременную?
Sub Procedure_1()
Dim lngColor As Long
'В программе "Excel" могут быть проблемы с цветами.
'Не всегда можно использовать любой цвет.
'Протестируйте макрос, будет ли он работать с цветом.
'Кроме того, на цвета влияют версии Excel. В какой-то
'версии макрос может работать с каким-то цветом,
'а в другой версии может не работать. Нужно тестировать во всех версиях.
lngColor = Range("A1").Interior.Color
End Sub
С переменной макрос не работает. А как узнать код заливки ячейки ?
Я вот так определяю. Делаю "Ctrl + G". Открывается окно.
В это окно вставляю вот такой код и нажимаю клавишу "Enter":
print activecell.Interior.Color
Ошибка: введенный текст не является правильной ссылкой или именем.
А что Вы делает, что у Вас такая ошибка?
"Ctrl + G".
вставляю print activecell.Interior.Color "Enter":
Вы делаете такие действия:?
- запускаете программу "VBA";
- нажимаете на клавиатуре сочетание клавиш "Ctrl + G";
- должно появиться окно;
- в это окно Вы вставляете вот этот текст:
print activecell.Interior.Color - на клавиатуре нажимаете клавишу "Enter".
Получилось. Спасибо.