En este grupo En todos

Foro de Excel



Poner una casilla de un color dependiendo del valor de otra

Escrito por Carlos
el 08/05/2006

Hola,

Me gustaría saber como puedo hacer en una macro para que dependiendo del valor de una casilla otra casilla tenga un color u otro (el fondo de la celda). He probado con ActiveSheet. Range("A1"). Background. Color pero he visto qu esta propiedad no existe o al menos no la reconoce y ya no sé que hacer y me urge mucho el saberlo pronto porque es para el proycto de fin de carrera y estoy totalmente parado.

Muchas gracias

Carlos


Carlos Martínez Zaragoza
Maestria en finanzas empresariales uni...
Escrito por Carlos Martínez Zaragoza
el 08/05/2006
Podrias hacerlo con formato condiconal, ya que hay podrias poner el criterio segun tu conveniencia; selecciona las celdas o celda, luego FORMATO, Formati Condiciona, pon tu criterio y luego selecciona el formato de la celda( color) luego dale aceptar. Y al darse lo que tu pusistes e condicion o critetrio cambiara el color de celda
Escrito por Carlos
el 08/05/2006

Muchas gracias tocayo por tu respuesta,

Es una buena opción, pero habría alguna manera de meter eso dentro de una macro, es decir dentro de un Sub....... End Sub, lo digo porque no es para una hoja específica, son para bastantes hojas. Estoy haciendo el proyecto para el Centro de Investigaciones contra el Cáncer y utilizan esta forma pero uno a uno y así tardan entre una semana y semana y media en detectar una patología y mientras les cambio todo les estoy haciendo una macro para que vayan mucho más rápido pero esa parte no sé como hacerla y por más manuales de macros para Excel que estoy mirando no encuentro nada de código que haga esto. Muchisimas gracias

Carlos


Escrito por Carlos
el 08/05/2006

Ya encontré la solución a mi problema buscando por Internet y probando, poniendo Range("A1:A6"). Interior. Color=RGB(200,160,35) he arreglado la macro que quería y ya está hecha


Muchas gracias no obstante

Carlos


Sorenkierkegaard
Finlandia del Sur - ...
Escrito por Sorenkierkegaard
el 15/12/2006
Formato condicional
Escrito por Charli
el 25/04/2007
Quisiera contar cuantas celdas hay de un color determinado. De esa forma puedo incluir sus resultados para la configuración de nóminas y hallar horas festivas o extras o de cualquiier otro tipo solo con poner esa celda de un color determinado.
Poli Poli
Buenos Aires, Argent...
Escrito por Poli Poli
el 10/03/2010

Tengo un excel donde en una columna coloco 4 valores (25%, 50%, 75% y 100%)
Mi pregunta es cual es el codigo para una macro para que cada una de las celdas, cuando escribo cualquiera de estos valores, cambie su color?
25% rojo
50% naranja
75% amarillo
100% verde

Cacho Rodríguez
Ing. electrónica u.n.r.
Escrito por Cacho Rodríguez
el 11/03/2010

Hola! Poli.
Te has incorporado a un debate iniciado y terminado hace ya -casi- 3 años y medio.

Sin embargo, te orientaré del siguiente modo:

1º) Haz clic con el botón derecho de tu ratón en la solapa de la hoja en la que quieres el efecto (abajo a la izquierda) y selecciona: "Ver código".

2º) En la ventana que se te abrirá, copia y pega lo siguiente:
______________________

Private Sub Worksheet_Change(ByVal Target As Range)
If Target. Column <> 3 Then Exit Sub

Select Case Target. Value
Case 1 / 4: Target.Interior.ColorIndex = 3
Case 1 / 2: Target.Interior.ColorIndex = 45
Case 3 / 4: Target.Interior.ColorIndex = 6
Case 1: Target.Interior.ColorIndex = 14
End Select
End Sub

______________________

3º) Cierra todas las ventanas del ambiente Visual Basic for Application en el que te encuentras y retorna al Excel.

4º) A partir de ese momento, lograrás el efecto pedido en la columna "C".

Comenta si te ha sido de utilidad, ¿Si?
Saludos, Cacho.

Poli Poli
Buenos Aires, Argent...
Escrito por Poli Poli
el 11/03/2010

Hola Cacho!
Ante todo, gracias por tu respuesta.. Y perdon por reabrir un tema viejo!

He intentado lo que me dijiste, sin embargo no logro hacer funcionar la macro.
Copio el codigo donde me dijiste, cierro el VBA.. Sin embargo al intentar ejecutar la macro, dentro del menú Macro, no figura ninguna macro nueva.. Como si nunca hubiera sido guardada.
La columna donde voy a colocar valores (25%, 50%, 75% y 10%) es la H.. Y necesito que al escribir cualquiera de estos valores, al ejecutar dicha macro, coloree la celda. En el caso de las celdas donde no pongo ningun valor, quiero que quede blanca.

Si es posible, agradecere enormemete tu ayuda!

Cacho Rodríguez
Ing. electrónica u.n.r.
Escrito por Cacho Rodríguez
el 11/03/2010

Reemplaza:
If Target. Column <> 3 Then Exit Sub

por:
If Target. Column <> 8 Then Exit Sub

Si el valor de las celdas de la columna "H" lo cambiás "a mano", verás que al escribir alguno de esos 4 valores se cambia el color de relleno.

Por el contrario, si el cambio en los valores de la columna "H" son el resultado de alguna fórmula, hay que hacer una pequeña variante.

Saludos, Cacho.

Poli Poli
Buenos Aires, Argent...
Escrito por Poli Poli
el 11/03/2010

Ok.. Ahora funciona..
El problema que tengo ahora es que el numero entero no lo toma.. El valor que da la division 1/4 del codigo es '0,25' para la celda y yo necesito que aparezca el valor "25%"

Poli Poli
Buenos Aires, Argent...
Escrito por Poli Poli
el 11/03/2010

Cacho.. Logré hacer lo que quería!
Ahora lo unico que me falta es: en el caso de borrar un valor, como hago para que la celda vuelva a tener el fondo blanco?

Poli Poli
Buenos Aires, Argent...
Escrito por Poli Poli
el 11/03/2010

Y por ultimo, me olvide de preguntarte.. En la siguiente sentencia:
Select Case Target. Value
Case 1 / 4: Target.Interior.ColorIndex = 3

El fondo de la celda es rojo y quisiera que el color de la fuente para esa celda sea blanco, como es el codigo y donde deberia escribirlo?

Nuevamente, agradecere muchisimo tu ayuda!

Cacho Rodríguez
Ing. electrónica u.n.r.
Escrito por Cacho Rodríguez
el 11/03/2010

Me parece que ya tienes más que suficiente como para profundizar tus estudios sobre macros...

Te indico la sugerencia recurrente: activa la grabadora de macros, haz todas las acciones que creas necesitar, apaga la grabadora y estudia el código -así- obtenido.

A partir de ahora, y si lo requieres: inicia un nuevo debate con las dudas específicas que pudieran surgirte.

Saludos, Cacho.