¿Se puede hacer un filtro usando como criterio el formato?

12/11/2007 - 11:35 por esther_bh | Informe spam
Tengo una lista de excel marcada con colores. El formato se ha dado fila por
fila.
¿Hay alguna forma de filtrat en función del color de la fuente y del fondo?
Sería algo como el inverso del formato condicional...

Preguntas similare

Leer las respuestas

#1 David
12/11/2007 - 16:01 | Informe spam
Creo que para tu problema tendrás que utilizar código. Desde la interfaz de
usuario, no he descubierto forma de detectar el color de fondo o de fuente
aplicado a la celda. Sin embargo, esto es posible (y fácil) desde VBA.

¿Cómo estás en VBA como para implementar un código? ¿Cómo esperas que
funcione tu "filtro"? ¿Quisieras colorear una celda, y que en base a ella
filtre los datos, o quisieras que si estás en una celda se filtren todas las
que tengan un formato similar a ella?



"esther_bh" escribió:

Tengo una lista de excel marcada con colores. El formato se ha dado fila por
fila.
¿Hay alguna forma de filtrat en función del color de la fuente y del fondo?
Sería algo como el inverso del formato condicional...
Respuesta Responder a este mensaje
#2 esther_bh
12/11/2007 - 17:37 | Informe spam
Pues estoy verde ;-), pero creo que lo podría intentar. Quiero que me filtre
las que sean del mismo formato (ya están coloreadas).
¿Me puedes decir cómo? Gracias,
Esther

"David" wrote:

Creo que para tu problema tendrás que utilizar código. Desde la interfaz de
usuario, no he descubierto forma de detectar el color de fondo o de fuente
aplicado a la celda. Sin embargo, esto es posible (y fácil) desde VBA.

¿Cómo estás en VBA como para implementar un código? ¿Cómo esperas que
funcione tu "filtro"? ¿Quisieras colorear una celda, y que en base a ella
filtre los datos, o quisieras que si estás en una celda se filtren todas las
que tengan un formato similar a ella?



"esther_bh" escribió:

> Tengo una lista de excel marcada con colores. El formato se ha dado fila por
> fila.
> ¿Hay alguna forma de filtrat en función del color de la fuente y del fondo?
> Sería algo como el inverso del formato condicional...
Respuesta Responder a este mensaje
#3 Héctor Miguel
12/11/2007 - 19:32 | Informe spam
hola, esther !

Tengo una lista de excel marcada con colores. El formato se ha dado fila por fila.
Hay alguna forma de filtrat en funcion del color de la fuente y del fondo?
Seria algo como el inverso del formato condicional...



en la version 2007 se agrega la posibilidad de usar colores como criterio de autofiltros ;)
para las versiones anteriores (como te comenta David) necesitas utilizar codigo/vba/... o...
podrias definir nombres usando macro-funciones de excel4 (p.e.) en una columna auxiliar en cada fila con formato

te paso una forma de hacerlo y si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

(p.e.) suponiendo que tu listado esta en las columna A:D con los titulos/autofiltros en la fila 1...
a) agrega un titulo para filtrar en la columna E y quieres monitorear el formato (rojo, tachado, etc.) de la columna A
b) selecciona la celda E2 <= OJO es importante cual sea la celda activa para definir el nombre...
c) define un nombre (insertar / nombre / definir...) p.e. MiCondicion
d) usa la siguiente formula en el campo de se refiere a: -> =indicar.celda(24+0*hoy(),!a2)
e) (todavia en E2 como celda activa) pulsa {F3} -> selecciona el nombre definido -> pulsa {enter}
-> OJO: si tu excel es en ingles... deberas cambiar la formula por: -> =get.cell/24+0*now(),!a2) <= OJO
si tu excel es en otro idioma... :-\\ (habra que averiguar la traduccion correcta} :D
-> nota el signo ! y la referencia relativa a la celda a la izquierda [A2] de la seleccion activa [E2]
la expresion +0*hoy() ES para volver volatil el nombre asignado
f) copias la formula desde E2 hasta E_n y usas esta columna para los autofiltros
-> toma en cuenta que deberas atender a los valores devueltos por la macro-funcion indicar.celda(...)
segun la caracteristica consultada (si es 24 -color del texto-) por si requieres de alguna condicion especifica (p.e.)
que el color de fuente sea SOLO si es color rojo.. -> =indicar.celda(24+0*hoy(),!a2)=3
SOLO cuando la fuente sea con estilo tachado -> =indicar.celda(23+0*hoy(),!a2)

-> otras opciones para obtener los formatos (hay 53 caracteristicas disponibles) son...
13 - color fondo
20 - negrita
21 - italica
22 - subrayado
23 - tachado
38 - color de superficie (fore-ground) cuando esta combinado
39 - color de fondo (back-ground) cuando esta combinado

IMPORTANTE: toma nota que este tipo de nombres puede ser catastrofico en versiones anteriores a 2002/xp...
-> cuando copias celdas que los usan a otras hojas/libros :-((
Respuesta Responder a este mensaje
#4 David
12/11/2007 - 19:41 | Informe spam
Haciendo pruebas de velocidad, creo que la mejor opción sería que agregaras a
tu listado una columna en la que se pueda generar un código que corresponda
al color de fuente y/o de relleno que necesitas filtrar. Luego, se aplicaría
un filtro basado en esa columna.

La velocidad de respuesta sería bastante rápida, pero la pregunta es: ¿se
puede agregar una columna así a tu listado, aún cuando después se oculte para
evitar que se vea o imprima?



"esther_bh" escribió:

Pues estoy verde ;-), pero creo que lo podría intentar. Quiero que me filtre
las que sean del mismo formato (ya están coloreadas).
¿Me puedes decir cómo? Gracias,
Esther

"David" wrote:

> Creo que para tu problema tendrás que utilizar código. Desde la interfaz de
> usuario, no he descubierto forma de detectar el color de fondo o de fuente
> aplicado a la celda. Sin embargo, esto es posible (y fácil) desde VBA.
>
> ¿Cómo estás en VBA como para implementar un código? ¿Cómo esperas que
> funcione tu "filtro"? ¿Quisieras colorear una celda, y que en base a ella
> filtre los datos, o quisieras que si estás en una celda se filtren todas las
> que tengan un formato similar a ella?
>
>
>
> "esther_bh" escribió:
>
> > Tengo una lista de excel marcada con colores. El formato se ha dado fila por
> > fila.
> > ¿Hay alguna forma de filtrat en función del color de la fuente y del fondo?
> > Sería algo como el inverso del formato condicional...
Respuesta Responder a este mensaje
#5 AnSanVal
12/11/2007 - 20:16 | Informe spam
Otra opción (con VBA) y suponiendo que.
1.- Los cabeceros están en la fila 1 (los datos a partir de la 2).
2.- La columna A está coloreada (texto) con los colores que
quieres filtrar.

... selecciona una celda que tenga el color de texto deseado
y ejecuta el siguiente código:

Sub FiltraColor()
Dim miColor, miColumna, ultima As Double
Dim celda As Range
miColor = ActiveCell.Font.color
miColumna = Cells(1, 256).End(xlToLeft).Column + 1
ultima = Cells(65535, 1).End(xlUp).Row
Application.ScreenUpdating = False
Cells(1, miColumna).EntireColumn.ClearContents
Cells(1, miColumna).Value = "FILTRO"
Cells(1, miColumna).EntireColumn.Hidden = True
For Each celda In Range(Cells(2, 1), Cells(ultima, 1))
If celda.Font.color = miColor Then Cells(celda.Row, miColumna).Value = 1
Next celda
Selection.AutoFilter Field:=miColumna, Criteria1:="1"
Application.ScreenUpdating = True
MsgBox "Filtrado por color", vbInformation, "AnSanVal"
Selection.AutoFilter
End Sub

Saludos desde Tenerife (Islas Canarias).
************************************************
"Héctor Miguel" escribió en el mensaje
news:
hola, esther !

Tengo una lista de excel marcada con colores. El formato se ha dado fila
por fila.
Hay alguna forma de filtrat en funcion del color de la fuente y del
fondo?
Seria algo como el inverso del formato condicional...



en la version 2007 se agrega la posibilidad de usar colores como criterio
de autofiltros ;)
para las versiones anteriores (como te comenta David) necesitas utilizar
codigo/vba/... o...
podrias definir nombres usando macro-funciones de excel4 (p.e.) en una
columna auxiliar en cada fila con formato

te paso una forma de hacerlo y si cualquier duda (o informacion
adicional)... comentas ?
saludos,
hector.

(p.e.) suponiendo que tu listado esta en las columna A:D con los
titulos/autofiltros en la fila 1...
a) agrega un titulo para filtrar en la columna E y quieres monitorear
el formato (rojo, tachado, etc.) de la columna A
b) selecciona la celda E2 <= OJO es importante cual sea la celda
activa para definir el nombre...
c) define un nombre (insertar / nombre / definir...) p.e. MiCondicion
d) usa la siguiente formula en el campo de se refiere a: ->
=indicar.celda(24+0*hoy(),!a2)
e) (todavia en E2 como celda activa) pulsa {F3} -> selecciona el nombre
definido -> pulsa {enter}
-> OJO: si tu excel es en ingles... deberas cambiar la formula
por: -> =get.cell/24+0*now(),!a2) <= OJO
si tu excel es en otro idioma... :-\\ (habra que
averiguar la traduccion correcta} :D
-> nota el signo ! y la referencia relativa a la celda a la
izquierda [A2] de la seleccion activa [E2]
la expresion +0*hoy() ES para volver volatil el nombre
asignado
f) copias la formula desde E2 hasta E_n y usas esta columna para los
autofiltros
-> toma en cuenta que deberas atender a los valores devueltos por
la macro-funcion indicar.celda(...)
segun la caracteristica consultada (si es 24 -color del texto-)
por si requieres de alguna condicion especifica (p.e.)
que el color de fuente sea SOLO si es color rojo.. ->
=indicar.celda(24+0*hoy(),!a2)=3
SOLO cuando la fuente sea con estilo tachado ->
=indicar.celda(23+0*hoy(),!a2)

-> otras opciones para obtener los formatos (hay 53 caracteristicas
disponibles) son...
13 - color fondo
20 - negrita
21 - italica
22 - subrayado
23 - tachado
38 - color de superficie (fore-ground) cuando esta combinado
39 - color de fondo (back-ground) cuando esta combinado

IMPORTANTE: toma nota que este tipo de nombres puede ser catastrofico en
versiones anteriores a 2002/xp...
-> cuando copias celdas que los usan a otras hojas/libros :-((

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida