Al leer tu pregunta me parece que se deben ocultar las columnas y en vez de las filas. Ya que no lo tengo claro, te cree dos funciones: La primera te oculta o muestra las filas y la segunda te oculta o muestra las columnas. A continuación te coloco el código con varios comentarios indicando la operación de las instrucciones.
'copiar desde aqui
Option Explicit
Dim Verde, Blanco, Rango
Sub esconderfilas3()
Dim str, ConteoBlancas, ConteoVerdes, ConteoOtroColor
'Aquí puedes cambiar los colores
Verde = 5287936 'RGB(51, 153, 102)
Blanco = RGB(255, 255, 255)
ConteoBlancas = 0
ConteoVerdes = 0
ConteoOtroColor = 0
Rango = "K9:O9"
str = Range(Rango).Address
Range(str).Select
'Primero contamos las Verdes, las blancas y otro color
For Each str In Selection
If str.Interior.Color = Verde Then
ConteoVerdes = ConteoVerdes + 1
ElseIf str.Interior.Color = Blanco Then
ConteoBlancas = ConteoBlancas + 1
Else
ConteoOtroColor = ConteoOtroColor + 1
End If
Next
'A partir de aquí colocas las condiciones que requieras
'Si cuatro tienen filas verdes
If ConteoVerdes = 4 Then
'No ocultar Filas Verdes, mostrar Filas Blancas
'OcultarFilas True, False
OcultarColumnas True, False
'Si cuatro tienen filas Blancas
ElseIf ConteoBlancas = 4 Then
'Mostrar Filas Blancas y Verdes
OcultarFilas False, False
'Si tres verdes y dos blancas oculta la fila
ElseIf ConteoVerdes = 3 And ConteoBlancas = 2 Then
'Ocultar Filas Verdes, Mostrar Filas Blancas
OcultarFilas False, True
'Si todas son verdes oculta la fila
ElseIf ConteoVerdes = 5 Then
'Ocultar Filas verdes
OcultarFilas False, True
'Si todas son blancas oculta la fila
ElseIf ConteoBlancas = 5 Then
OcultarFilas True, False
'Ocultar Filas
End If
End Sub
'Función que permite Ocultar las filas Blancas y Verdes
'Si OcultarBlancas= True, Oculta las blancas
'Si OcultarBlancas=False, Muestra las blancas
'Si OcultarVerdes=True, OCulta las verdes
'Si OcultarVerdes=False, muestra las Verdes
Function OcultarFilas(OcultarBlancas As Boolean, OcultarVerdes As Boolean)
Dim Celda, Fila
Celda = Range(Rango).Address
'Recorro nuevamente para verificar las verdes y blancas a Ocultar o Mostrar
For Each Celda In Selection
Fila = "" & Celda.Row & ":" & Celda.Row
If Celda.Interior.Color = Verde Then
'Oculta o Muestra la Fila Verde
Rows(Fila).EntireRow.Hidden = OcultarVerdes
ElseIf Celda.Interior.Color = Blanco Then
'Oculta o Muestra la Fila Blanca
Rows(Fila).EntireRow.Hidden = OcultarBlancas
End If
Next
End Function
'Función que permite ocutar o mostrar las columnas Blancas y verdes
Function OcultarColumnas(OcultarBlancas As Boolean, OcultarVerdes As Boolean)
Dim Celda, Columna
Celda = Range(Rango).Address
'Recorro nuevamente para verificar las verdes y blancas a Ocultar o Mostrar
For Each Celda In Selection
Columna = Celda.Column
If Celda.Interior.Color = Verde Then
'Oculta o Muestra la Columna Verde
Columns(Columna).EntireColumn.Hidden = OcultarVerdes
ElseIf Celda.Interior.Color = Blanco Then
'Oculta o Muestra la Columna Blanca
Columns(Columna).EntireColumn.Hidden = OcultarBlancas
End If
Next
End Function
'copiar hasta aqui
Recuerda, este fue desarrollado en office 2010
Un Abrazo
Juan Carlos