Ordenar según color

23/12/2008 - 22:21 por NvB | Informe spam
?Se puede ordenar según el color de la celda?

Uso Office 2003 y también 97.

Gracias.
 

Leer las respuestas

#1 Héctor Miguel
24/12/2008 - 04:51 | Informe spam
hola, 'anonimo/a' !

Se puede ordenar segun el color de la celda?



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 fondo 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

Preguntas similares