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.

Preguntas similare

Leer las respuestas

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

Mostrar la cita
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
#2 Teletreks
14/12/2007 - 13:37 | Informe spam
Hola Hector, encantado de saludarte otra vez.

Verás, la primera parte de la macro funciona a la perfección, per luego no
me los ordena... no se si estoy haciendo algo mal?

Lo único que he cambiado ha sido la columna, que en mi caso es "p", seguro
que en algo me equivoco, en todo caso gracias.

Saludos

"Héctor Miguel" escribió:

Mostrar la cita
#3 Héctor Miguel
14/12/2007 - 18:52 | Informe spam
hola, (...) ???

Mostrar la cita
solo "dejaste a medias la consulta"... (no indicaste que tambien querias ordenar los valores, solo por el color) -?-
si este es el caso, solo necesitas agregar el nuevo criterio de ordenacion (ahora para los valores) en ascendente ?

prueba con la siguiente modificacion (rango inicial y el segundo criterio) y...
si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

Sub FormatoOrdenado()
Dim RangoSort As String
With Range(Range("p2"), Range("p2").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)
.Parent.Sort.SortFields.Add Key:=Range(.Address), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With .Parent.Sort
.SetRange Range(RangoSort)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
End Sub

__ las consultas anteriores __
Mostrar la cita
#4 Teletreks
17/12/2007 - 08:34 | Informe spam
Hola Hector, que tal?

Lo siento, pero no lo veo, he copiado tu macro y sigue sin ordenar por
colores¿¿??¿ me da la impresión que me estoy equivocando en algo.

Gracias por tu interés.

Saludos


"Héctor Miguel" escribió:

Mostrar la cita
#5 Héctor Miguel
18/12/2007 - 02:52 | Informe spam
hola, (...) ?

Mostrar la cita
(me da la impresion de que soy yo quien esta suponiendo/asumiendo/... cosas distintas de la realidad) -???-

podrias comenzar por exponer cuales son las "determinadas columnas" de tu consulta inicial ?
y en cual de ellas tienes el titulo de "Abs" (y el tipo de datos y/o formulas que usas en cada columna) ?
(y cualquier otro detalle que no hubiera salido aun "a la luz", o sea, de los que se van quedando "en el tintero") :))

saludos,
hector.
Ads by Google
Search Busqueda sugerida