¿cómo ordenar por color?

17/10/2007 - 00:27 por Eduardo | Informe spam
Hola a todos! alguien podría ayudarme a responder esta pregunta.. ¿cómo
ordenar por color?
Gracias...

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
17/10/2007 - 05:05 | Informe spam
hola, Eduardo !

... alguien podria ayudarme a responder esta pregunta.. como ordenar por color?



habras dejado algo "en el tintero" ???

color representa una gama (y muy amplia) de combinaciones
y espero que los colores no vengan de formatos condicionales (p.e.)
- color de fuente y/o color de la celda y/o color de la trama (esta puede combinar dos colores)

combinar color con ordenar... cual color debe ir antes que cual otro ???

(ademas) no mencionas cual es el rango a ordenar -???-

(en via de mientras) ve si te sirve la siguiente propuesta (haciendo adaptaciones el rango)
esta considerandose un rango (incluyendo los titulos) de: A1:F39 (en la cuarta linea del codigo) <= OJO
y ordena el listado primero por los colores y despues por la columna A

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

Sub Ordena_Color(): Application.ScreenUpdating = False
Dim Rango As String, Base As String, Cols As Byte, Filas As Long, Celda_1 As String, _
Col_1 As String, Rango_Formula As String, Col_Sort As String, x_Formula As String
Rango = "a1:f39" ' <= aqui el rango completo incluyendo los titulos '
Base = Range(Rango).Cells(2, 1).Address(0, 0)
Cols = Range(Rango).Columns.Count: Filas = Range(Rango).Rows.Count - 2
Celda_1 = Range(Base).Offset(, Cols).Address
Rango_Formula = Range(Range(Celda_1), Range(Celda_1).Offset(Filas)).Address
With Range(Rango): Col_1 = Mid(.Address, 2, InStr(2, .Address, "$") - 2): End With
With Range(Celda_1): Col_Sort = Mid(.Address, 2, InStr(2, .Address, "$") - 2): End With
Range(Celda_1).Select: x_Formula = _
"get.cell(13,!rc[-" & Cols & "])*10000+get.cell(38,!rc[-" & Cols & "])*100+get.cell(39,!rc[-" & Cols & "])"
ActiveWorkbook.Names.Add Name:="VerColores", RefersToR1C1:="=" & x_Formula
With ActiveCell: .Formula = "=vercolores": .Copy Range(Rango_Formula): End With
Range(Rango).Resize(, Cols + 1).Sort _
Key1:=Columns(Col_Sort), Order1:=xlAscending, _
Key2:=Columns(Col_1), Order2:=xlAscending, Header:=xlYes
Range(Rango_Formula).Clear: ActiveWorkbook.Names("vercolores").Delete
Range(Rango).Cells(1, 1).Select: ActiveSheet.UsedRange
End Sub
Respuesta Responder a este mensaje
#2 Johann Romero
18/10/2007 - 00:42 | Informe spam
No seria mas facil crear una columna al costado de la que esta coloreado y
clasificas los colores con numeros, luego usar el ordenar de Mayor a Menor
en la Columna Numerada y Listo.


"Héctor Miguel" escribió en el mensaje
news:%
hola, Eduardo !

... alguien podria ayudarme a responder esta pregunta.. como ordenar por
color?



habras dejado algo "en el tintero" ???

color representa una gama (y muy amplia) de combinaciones
y espero que los colores no vengan de formatos condicionales (p.e.)
- color de fuente y/o color de la celda y/o color de la trama (esta puede
combinar dos colores)

combinar color con ordenar... cual color debe ir antes que cual otro ???

(ademas) no mencionas cual es el rango a ordenar -???-

(en via de mientras) ve si te sirve la siguiente propuesta (haciendo
adaptaciones el rango)
esta considerandose un rango (incluyendo los titulos) de: A1:F39 (en la
cuarta linea del codigo) <= OJO
y ordena el listado primero por los colores y despues por la columna A

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

Sub Ordena_Color(): Application.ScreenUpdating = False
Dim Rango As String, Base As String, Cols As Byte, Filas As Long, Celda_1
As String, _
Col_1 As String, Rango_Formula As String, Col_Sort As String,
x_Formula As String
Rango = "a1:f39" ' <= aqui el rango completo incluyendo los titulos '
Base = Range(Rango).Cells(2, 1).Address(0, 0)
Cols = Range(Rango).Columns.Count: Filas = Range(Rango).Rows.Count - 2
Celda_1 = Range(Base).Offset(, Cols).Address
Rango_Formula = Range(Range(Celda_1),
Range(Celda_1).Offset(Filas)).Address
With Range(Rango): Col_1 = Mid(.Address, 2, InStr(2, .Address, "$") - 2):
End With
With Range(Celda_1): Col_Sort = Mid(.Address, 2, InStr(2, .Address,
"$") - 2): End With
Range(Celda_1).Select: x_Formula = _
"get.cell(13,!rc[-" & Cols & "])*10000+get.cell(38,!rc[-" & Cols &
"])*100+get.cell(39,!rc[-" & Cols & "])"
ActiveWorkbook.Names.Add Name:="VerColores", RefersToR1C1:="=" &
x_Formula
With ActiveCell: .Formula = "=vercolores": .Copy Range(Rango_Formula):
End With
Range(Rango).Resize(, Cols + 1).Sort _
Key1:=Columns(Col_Sort), Order1:=xlAscending, _
Key2:=Columns(Col_1), Order2:=xlAscending, Header:=xlYes
Range(Rango_Formula).Clear: ActiveWorkbook.Names("vercolores").Delete
Range(Rango).Cells(1, 1).Select: ActiveSheet.UsedRange
End Sub

Respuesta Responder a este mensaje
#3 Héctor Miguel
19/10/2007 - 05:00 | Informe spam
hola, Johann !

No seria mas facil crear una columna al costado de la que esta coloreado y clasificas los colores con numeros
luego usar el ordenar de Mayor a Menor en la Columna Numerada y Listo...



indudablemente que si... solo habria que considerar la "discrecionalidad" con la que se cambien los colores -???-
(y de cuantos colores estemos hablando... y de las posibles "tonalidades"... y de... ???)
habria que estar "actualizando" la numeracion asignada a cada color en la columna "auxiliar" :-(

saludos,
hector.

__ la consulta originan __
... alguien podria ayudarme a responder esta pregunta.. como ordenar por color?



habras dejado algo "en el tintero" ???

color representa una gama (y muy amplia) de combinaciones
y espero que los colores no vengan de formatos condicionales (p.e.)
- color de fuente y/o color de la celda y/o color de la trama (esta puede combinar dos colores)

combinar color con ordenar... cual color debe ir antes que cual otro ???

(ademas) no mencionas cual es el rango a ordenar -???-

(en via de mientras) ve si te sirve la siguiente propuesta (haciendo adaptaciones el rango)
esta considerandose un rango (incluyendo los titulos) de: A1:F39 (en la cuarta linea del codigo) <= OJO
y ordena el listado primero por los colores y despues por la columna A

Sub Ordena_Color(): Application.ScreenUpdating = False
Dim Rango As String, Base As String, Cols As Byte, Filas As Long, Celda_1 As String, _
Col_1 As String, Rango_Formula As String, Col_Sort As String, x_Formula As String
Rango = "a1:f39" ' <= aqui el rango completo incluyendo los titulos '
Base = Range(Rango).Cells(2, 1).Address(0, 0)
Cols = Range(Rango).Columns.Count: Filas = Range(Rango).Rows.Count - 2
Celda_1 = Range(Base).Offset(, Cols).Address
Rango_Formula = Range(Range(Celda_1), Range(Celda_1).Offset(Filas)).Address
With Range(Rango): Col_1 = Mid(.Address, 2, InStr(2, .Address, "$") - 2): End With
With Range(Celda_1): Col_Sort = Mid(.Address, 2, InStr(2, .Address, "$") - 2): End With
Range(Celda_1).Select: x_Formula = _
"get.cell(13,!rc[-" & Cols & "])*10000+get.cell(38,!rc[-" & Cols & "])*100+get.cell(39,!rc[-" & Cols & "])"
ActiveWorkbook.Names.Add Name:="VerColores", RefersToR1C1:="=" & x_Formula
With ActiveCell: .Formula = "=vercolores": .Copy Range(Rango_Formula): End With
Range(Rango).Resize(, Cols + 1).Sort _
Key1:=Columns(Col_Sort), Order1:=xlAscending, _
Key2:=Columns(Col_1), Order2:=xlAscending, Header:=xlYes
Range(Rango_Formula).Clear: ActiveWorkbook.Names("vercolores").Delete
Range(Rango).Cells(1, 1).Select: ActiveSheet.UsedRange
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida