Formula por colores

10/03/2005 - 01:50 por juanca | Informe spam
Buena tarde amigos

Tengo un problema y quisiera que ustedes me pudieran
ayudar, tengo en una hoja de excel una cantidad de clientes
pero estan desordanados por colores los quiero ordenar y
saber la cantidad que cada color tiene asi como la suma de
los valores por color

De antemano gracias
 

Leer las respuestas

#1 Héctor Miguel
10/03/2005 - 06:48 | Informe spam
hola, juanca !

... tengo en una hoja... una cantidad de clientes... desordanados por colores
... ordenar y saber la cantidad que cada color tiene asi como la suma de los valores por color



-> [creo que] la forma mas 'sencilla y directa' seria utilizar en [alg]una columna 'aparte'...
el mismo 'criterio' que se hubiera empleado para 'colorear' [supongo que hay una 'base']
-> asumo que colorear por [solo 3] formatos condicionales... no te resulta 'atractivo' -?-
-> otra alternativa seria por un procedimiento [sub o funcion] que se encargue de 'investigar' [colores]
[por funcion, si la 'cantidad de clientes' fuera... 'excesiva'... considera el tiempo de re/calculo]
-> tampoco mencionas [al menos] cual/es de las columnas te interesa 'sumar' -?-
[ni la posible cantidad de colores 'distintos' que pueda contener el listado... 5?... 15?... ???]
-> [creo que] podemos 'empezar' con la siguiente propuesta de macro...
[ya comentaras los 'detalles pendientes' y/o los fallos que resulten] ;)
[solo 'asegurate' de especificar bien el rango 'completo' del listado, ->incluyendo los titulos<-]

si culquier duda [o informcion adicional]... ¿comentas?
saludos,
hector.
en un modulo de codigo 'normal' ==Sub Ordena_Color(): Application.ScreenUpdating = False
Dim Rango As String, A2 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 '
A2 = Range(Rango).Cells(2, 1).Address(0, 0)
Cols = Range(Rango).Columns.Count: Filas = Range(Rango).Rows.Count - 2
Celda_1 = Range(A2).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