Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/02/2013, 06:29
agbarcia
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 3
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta visual y excel: "leer" el color de una celda

Saludos a todos.

Ahí les dejo mi problema:

Tengo una tabla excel con 11 (de la A a la K) columnas y un proceso con visual que me hace lo siguiente:


- añade una celda L1 con el valor resultante de concatenar C1, D1, E1 Y F1
- le aplico una regla que cambia el color a las celdas cuyos valores están duplicados (pero solo marca a partir de la segunda vez que sale, si un valor está repetido tres veces solo marcará la segunda y la tercera).
- salvo y cierro el fichero.

Más adelante el proceso vuelve a abrir el excel y repasa todas las líneas para comprobar cuáles tienen esa celda de la columna L en rojo.

Y el problema es este: aunque veo que si que ha metido los cambios visual me devuelve siempre que el color de la celda es el blanco ¡¡¡AUNQUE ESTÉ EN ROJO!!! Me falta un pelo para estampar el ordenador.




Este es el código para el primer paso, el que marca los duplicados:




Dim EXL As Excel.Application
Set EXL = New Excel.Application

Dim W As Excel.Workbook
Set W = EXL.Workbooks.Open(FicheroExcel)


Dim S As Excel.Worksheet
Set S = W.Sheets("Hoja1")

ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[-9],RC[-8],RC[-7],RC[-6])"
Range("L1").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=CONTAR.SI($L$1:L1;L1)>1"
Selection.FormatConditions(Selection.FormatConditi ons.Count).SetFirstPriority



With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = RGB(255, 0, 0)
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Selection.AutoFill Destination:=Range("L1:L" + Filas)


W.Save
W.Close




Y luego compruebo el color con el siguiente:

EXL.Cells(1, 16).INTERIOR.COLORINDEX

pero siempre me devuelve -4142 en vez de (si no me equivoco) 255.

Cualquier ayuda será bien recibida!

GRACIAS