Foros del Web » Soporte técnico » Ofimática »

visual y excel: "leer" el color de una celda

Estas en el tema de visual y excel: "leer" el color de una celda en el foro de Ofimática en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 27/02/2013, 06:29
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 3
Antigüedad: 11 años, 1 mes
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

  #2 (permalink)  
Antiguo 27/02/2013, 08:54
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 3
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: visual y excel: "leer" el color de una celda

Más información... los tiros no iban por ahí, no tiene nada que ver con el color sino con la REGLA.

He comprobado que cuando meto un cambio en los valores de una celda a través de una condición, el valor realmente no cambia. Se puede ver que el contenido de la celda, el texto, el color o lo que sea cambia... pero en la barra de fórmulas no aparecen esos cambios, por eso cuando compruebo color, o formato de texto o cualquier otra cosa que se cambie a través del Selection.FormatConditions no reconoce ningún cambio.


Pruebo lo anterior, aunque en este caso no sólo cambio el color sino que cambio el formato de texto para añadir "repetido" al final de cada valor (@"repetido")

Pruebo a copiar toda la columna nueva (cuyo valor es =CONCATENAR... ) y pegado especial, solo valores, en una nueva columna. El valor de cada celda ya no es la fórmula de concatenar sino el texto propiamente... pero sin los cambios (aunque yo en la tabla vea que el texto tiene "repetido", en la barra de fórmulas no aparece este añadido).

¿A alguien se le ocurre algo?


Gracias
  #3 (permalink)  
Antiguo 27/02/2013, 15:34
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Respuesta: visual y excel: "leer" el color de una celda

¿Podrías -sin irte por las ramas- definir que es lo que quieres lograr?...

Tu primer mensaje describe todas cuestiones naturales y normales del Excel (aunque tú no las conocieses).
Y tu segundo mensaje... bueno... fue tu segundo mensaje.

Por ello, amigo agbarcia, te solicito ser concreto y directo, ¿OK?
Saludos, Cacho R.
  #4 (permalink)  
Antiguo 28/02/2013, 02:25
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 3
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: visual y excel: "leer" el color de una celda

Gracias Cacho por tu consejo, tienes razón: me he enrollado. A ver si consigo ser más conciso.

Añado una regla para que cambie el formato de las celdas que cumplan una condición, les añado el texto "repetido". Veo que funciona pero que el valor de la celda no ha cambiado, aunque copie y haga un pegado especial de solo valores el resultado es el mismo: veo que mete el texto pero realmente no modifica el valor (en la barra de fórmulas no aparece "repetido", pero en la celda si).

¿Cómo puedo hacer para que realmente cambie el valor?


Disculpadme por todo el rollo anterior. De hecho si pudiera cambiaría el tema del hilo porque no tiene nada que ver con lo que me creía de inicio.
  #5 (permalink)  
Antiguo 28/02/2013, 12:45
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
De acuerdo Respuesta: visual y excel: "leer" el color de una celda

Separa esta cuestión en dos líneas de análisis:
___

- Por un lado, hazte a la idea que el formato condicional es "una máscara", un "efecto visual", una "ilusión óptica"... En definitiva: "lo que ves"... "no es lo que es".

O sea:
Puedes tener una celda con un color de fondo en verde, por ejemplo. Que un formato condicional, y ante un valor por tí establecido haga que ese color cambie a rojo, no cambia el concepto básico: su color "real" sigue siendo verde.
___

- Tu planteas otra cosa.
Lo que planteas es: ¡Que el valor de la celda -realmente- cambie!...

Y el valor de la celda sólo cambiará si:

a) La cambias "a mano";
b) La celda contiene una fórmula que provoque el cambio; o
c) Una macro "fuerza" el cambio.
___

Me parece que, por tu nivel de conocimiento sobre el Excel, deberías -simplemente- colocar una fórmula en la celda. Esa fórmula -probablemente- será muy parecida a la fórmula que tienes en el formato condicional.

¿Más o menos me expliqué claramente?...
Saludos, Cacho R.

Etiquetas: celda, color, excel, formula, tabla, todo, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:29.