Inicio > Microsoft Excel > elsamatilde > Reconocer colores en excel.

Reconocer colores en excel.

Experto:
Usuario:
Fecha: 07/11/2009
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
05/11/2009
jmedinao, usuario preguntando en Microsoft Excel
Usuario
Hola, 
He estado buscando por ahi informacion relacionada con el reconocimiento de colores de excel. Para celdas que cumplan una determinada condicion, pero aun no puedo armar una macro decente que me haga lo que deseo.
Quiero que si una celda es de cierto color el excel ejecute otra orden como reemplazar los colores de esas mismas celdas.
Lo que he adelantado.
Sub Macro1()
'
' Macro1 color
'
If Sheets("Hoja1").Cells(1, 1).Font.ColorIndex = 1 Then
'(1 = negro)
Sheets("Hoja1").Cells(2, 2).Font.ColorIndex = 5
End If
'
End Sub
la macro no ejecuta accion alguna.
Si alguien me pudiera ayudar.
05/11/2009
jmedinao, experto respondiendo en Microsoft Excel
Experto
Hola:
Lo mejor será que primero averigues qué nro de color es el que tiene tu celda , porque 1 es negro pero el color automático aunque se vea como negro seguramente tiene otro valor (en mi versión -4105)
Esta línea te servirá para averiguarlo y reemplazar el 1 x ese valor:
MsgBox Sheets("Hoja1").Cells(1, 1).Font.ColorIndex
Sdos
Elsa
http://aplicaexcel.galeon.com/macros.htm
06/11/2009
jmedinao, usuario preguntando en Microsoft Excel
Usuario
Primero que todo gracias por responder.
Efectivamente se cumple ahi me ejecuta la macro, pero me di cuenta que de esta forma me esta reconociendo el color del texto que almacena la celda, lo que yo busco es que me reconozca el color de fondo (que en mi real ejercicio es 35 verde claro).
Debe ser otro comando que reconoce el interior?
gracias
06/11/2009
jmedinao, usuario preguntando en Microsoft Excel
Usuario
Algo como esto??
If Sheets("Hoja1").Cells(1, 1).Interior.ColorIndex = -4105 Then
Sheets("Hoja1").Cells(2, 2).Interior.ColorIndex = -35
End If
Que no se por que no me funciona.
06/11/2009
jmedinao, experto respondiendo en Microsoft Excel
Experto
La expresión Interior está bien, pero en tu consulta habías mencionado Font y además negro
El color verde es 35 (en lugar de -35)
El nro de trama predeterminado de la celda (blanca, sin color) es -4142 .
Si la tenés con negro podés obtener su nro con el msgbox que dejé de modo provisorio, y luego reemplazar ese nro x en la línea sgte
Sub coloreando()
MsgBox Sheets("Hoja1").Cells(1, 1).Interior.ColorIndex
If Sheets("Hoja1").Cells(1, 1).Interior.ColorIndex = -4142 Then
Sheets("Hoja1").Cells(2, 2).Interior.ColorIndex = 35
End If
End Sub
Sdos
Elsa
http://aplicaexcel.galeon.com/macros.htm
07/11/2009
jmedinao, usuario preguntando en Microsoft Excel
Usuario
Finalmente lo logre. elimine la linea "MsgBox Sheets("hoja1").Cells(i, j).Interior.ColorIndex" y construi la macro. No era como la pregunte porque era mas dificil de preguntar pero igual me ayudaste mucho, le agregue las condiciones para que me recorriera las celdas necesarias.  dejo la macro como quedó por si alguien le sirve.
Sub COLOR()
'
'Gracias Elsa
'
For i = 3 To 1000
For j = 12 To 44
'MsgBox Sheets("hoja1").Cells(i, j).Interior.ColorIndex
If Sheets("hoja1").Cells(i, j).Interior.ColorIndex = 35 Then
Sheets("hoja1").Cells(i, j).Interior.ColorIndex = 4
End If
Next j
Next i
'
End Sub
Enlaces patrocinados