Comprar a Coleção de 15.000 Macros, Funções e Fórmulas do Excel        Dicas



Pergunta:

Minha Planilha ("Pagamento) no range a1:k5000 contem células com informações importantes que eu costumo destacar alterando-lhes a cor do fundo. "Pinto-as" de vermelho. Estas informações estão "espalhadas" de uma forma desordenada em linhas e colunas no range citado. Há linhas com uma, ou mais de uma célula com interior vermelho, assim como há linhas sem que nenhuma célula esteja demarcada. O uso das facilidades "AutoFilter ou Advanced Filter" pouco me acrescentam para investigar que células estão pintadas de vermelho. Como resolver o impasse para mostrar-me apenas as linhas que possuem células marcadas "pintadas" de vermelho?

Resposta:

Sub MostrandoCelulasEmFundoVermelho( )
Dim MeuRange as Range
Dim Celula as Range, Linha as Range
Worksheets("Pagamento").Select
'A variavel MeuRange abaixo está apontando para o range 'a1:k5000
Set MeuRange = ActiveSheet.Range("a1:k5000")
'Acelerando a pesquisa desconectando a atualização da Tela
Application.ScreenUpdating = False
'Escondendo as linhas do range a1:k5000
MeuRange.EntireRow.Hidden = True
'Iniciando a pesquisa em cada linha do range MeuRange
For Each mLinha In MeuRange.Rows
'Iniciando a pesquisa em cada celula de uma mesma linha
For Each Celula In mLinha.Cells
If Celula.Interior.ColorIndex = 6 Then
Celula.EntireRow.Hidden = False
Exit For
End If
Next
Next
'Desfazendo a Atualização da Tela
Application.ScreenUpdating = True
End Sub