Inicio > Microsoft Excel > patanrisitas > Como arma una macro para reconocer un color.

Como arma una macro para reconocer un color.

Experto:
Usuario:
Fecha: 19/09/2008
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
27/08/2008
agus0103, usuario preguntando en Microsoft Excel
Usuario
Estimado,
Necesito saber lo siguiente: como hago una macro, para la cual requiero que se agregue una letra o un numero en una celda determinada, en funcion de otra celda cualquiera que tenga un color de fuente (como por ejemplo rojo).
Lo importante es que la letra o numero no se agregue en la misma celda que tiene el color de guente rojo, sino en otra. Es decir que en la celda que quiero que se ponga la letra, reconozca que si la celda de al lado tiene de color de fuente rojo, para que se ponga la letra o numero.
No se si se entendio, trate de ser lo mas explicito que pude.
Muchisimas gracias.
Agustin.
27/08/2008
agus0103, experto respondiendo en Microsoft Excel
Experto
Q+ Agustin,
Utiliza esta macro, Primero abre Visual Basic (ALT+F11)
luego insertas un nuevo módulo (MENU-INSERTAR-MODULO)
Alli copias este código:
Sub EsRojo()
'
' EsRojo Macro
' Macro grabada el 27/08/2008 por Richard Chacón

Range("C4").Select
If Selection.Font.ColorIndex = 3 Then
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "R"
ActiveCell.Offset(0, -1).Range("A1").Select
Else
End If
End Sub
' Le asignas un Botón o una llave tipo CTRL+i

Si quieres que se active sola la debes copiar en ThisWorkBook usando la propiedad WorkBook_Open
Saludos,
RCh,
27/08/2008
agus0103, usuario preguntando en Microsoft Excel
Usuario
Buen día,
Ante todo muchisimas gracias.
Es lo que necesitaba, pero me funciona parcialmente.
Pero tengo un problema con esta macro, lo que no puedo hacer es que me funcione para un rango de celdas.
En la macro que me inviaste le cambio el rango de seleccion, pero algo me falta, porq no me funciona.
La macro la hago funcionar de la siguiente manera:
Sub EsRojo()
'
' EsRojo Macro
' Macro grabada el 27/08/2008 por Richard Chacón
Range("C4:C200").Select
If Selection.Font.ColorIndex = 3 Then
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "R"
ActiveCell.Offset(0, -1).Range("A1").Select
Else
End If
End Sub
 
Yo necesito esta macro, pero solo me funciona para la celda C4 (como me la enviaste) o para cualquier otra celda...pero me funciona para una sola. Yo requiero que funcione para un rango de celdas (como puede ser : C4:C200) y que en D me ponga la R siempre que este pintado de rojo.
Muchisimas gracias,
Saludos,
Agustin
28/08/2008
agus0103, experto respondiendo en Microsoft Excel
Experto
Q+ Agustin,
Prueba con este código y me avisas:
"Solo por curiosidad... cual es el objeto de esta particular solicitud?"
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Macro creada por Richard Chacón para colocar una letra (R) en la

'celda contigua al cambiar el color a rojo del dato y luego seleccionar otra celda
If ActiveCell.Font.ColorIndex = 3 Then
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "R"
ActiveCell.Offset(0, -1).Range("A1").Select
Else
End If
End Sub

Saludos,
RCh
19/09/2008
agus0103, usuario preguntando en Microsoft Excel
Usuario
Excelente. Una fantástica solución.
Enlaces patrocinados