Formatear y ordenar valores de una columna con una macro (ex2007)

12/12/2007 - 08:42 por Teletreks | Informe spam
Saludos a todos, el problema que tengo es el siguiente:

Tengo un rango con determinadas columnas, una de las cuales es la columa
"Abs" en el que se genera el valor absoluto de una serie de movimientos.

La idea es que mediante una macro se seleccione esta columna (hasta donde
alcancen los datos; el número de filas es variable) y le aplique el formato
condicional siguiente:

Formato condicional> Nueva regla de formato> Aplicar formato únicamente a
valores únicos o duplicados: dar formato a los duplicados con el color
amarillo.

Despúes debería ordenar esta columna con la opción del autofiltro (opción
que ya está activada): Ordenar por color de celda, dejando los de color
amarillo en la parte superiio de la columna.

Espero no causar demasiadas molestias.

Saludos y gracias.
 

Leer las respuestas

#1 Héctor Miguel
14/12/2007 - 00:43 | Informe spam
hola, (...) ???

Tengo un rango con determinadas columnas, una de las cuales es la columa "Abs"
en el que se genera el valor absoluto de una serie de movimientos.
La idea es que mediante una macro se seleccione esta columna (hasta donde alcancen los datos; el numero de filas es variable)
y le aplique el formato condicional siguiente:
Formato condicional> Nueva regla de formato> Aplicar formato unicamente a valores unicos o duplicados:
dar formato a los duplicados con el color amarillo.
Despyes deberia ordenar esta columna con la opcion del autofiltro (opcion que ya esta activada):
Ordenar por color de celda, dejando los de color amarillo en la parte superiio de la columna.



si suponemos que la columna "Abs" esta en la columna "E" y que los datos inician en la fila 2 (no incluye el titulo) -???-
prueba con algo +/- como lo siguiente y...
si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

Sub FormatoOrdenado()
Dim RangoSort As String
With Range(Range("e2"), Range("e2").End(xlDown))
RangoSort = .Offset(-1).Resize(.Rows.Count + 1).Address
.FormatConditions.AddUniqueValues
With .FormatConditions(.FormatConditions.Count)
.SetFirstPriority
.DupeUnique = xlDuplicate
With .Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
End With
.StopIfTrue = False
End With
.Parent.Sort.SortFields.Clear
.Parent.Sort.SortFields.Add(Range(.Address), _
xlSortOnCellColor, xlAscending, , xlSortNormal) _
.SortOnValue.Color = RGB(255, 255, 0)
With .Parent.Sort
.SetRange Range(RangoSort)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
End Sub

Preguntas similares