Color de fondo de celda dinámico

24/05/2005 - 11:29 por Fernando Fernández | Informe spam
Hola :)

Necesito que el color de fondo de las celdas de mi documento excel esté en
función del contenido de la celda.
¿es posible?

Busco la opción sin mucho éxito... agradeceré vuestra ayuda.

Desde Palma de Mallorca
Fernando

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
24/05/2005 - 11:37 | Informe spam
"Fernando Fernández" escribió en el mensaje news:buCke.808497$
Hola :)

Necesito que el color de fondo de las celdas de mi documento excel esté en
función del contenido de la celda.
¿es posible?

Busco la opción sin mucho éxito... agradeceré vuestra ayuda.

Desde Palma de Mallorca
Fernando





Si se trata de hasta tres colores distintos, puedes hacerlo mediante el formato condicional (Formato > Formato condicional). Si fuesen más colores, habría que recurrir a código.
Un saludo.


Fernando Arroyo
MS MVP - Excel
Respuesta Responder a este mensaje
#2 Fernando Fernández
24/05/2005 - 13:00 | Informe spam
Gracias por tu rapidísima respuesta :)
Desconocía lo de formato condicional... yo lo buscaba más en el apartado de
fórmulas.
Ahora mismo me bastan 3 colores, pero en breve me serán insuficientes.
Mediante código debe ser algo complicado, verdad?
Yo sé hacer macros, formulitas y esas cosas, pero tocar el formato de la
cenda que invoca la macro, así a primera vista, no he sabido cómo hacerlo.

Saludos y gracias por tu respuesta
Desde Palma de Mallorca
Fernando


"Fernando Arroyo" escribió en el mensaje
news:
"Fernando Fernández" escribió en el mensaje
news:buCke.808497$
Hola :)

Necesito que el color de fondo de las celdas de mi documento excel esté en
función del contenido de la celda.
¿es posible?

Busco la opción sin mucho éxito... agradeceré vuestra ayuda.

Desde Palma de Mallorca
Fernando





Si se trata de hasta tres colores distintos, puedes hacerlo mediante el
formato condicional (Formato > Formato condicional). Si fuesen más colores,
habría que recurrir a código.
Un saludo.


Fernando Arroyo
MS MVP - Excel
Respuesta Responder a este mensaje
#3 Fernando Arroyo
24/05/2005 - 13:41 | Informe spam
Es relativamente sencillo modificar el formato de la celda que se acaba de editar usando el evento Change de la hoja. Por ejemplo:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.[A1:C10]) Is Nothing Then
With Target.Interior
Select Case Target.Value
Case Is < 6
.ColorIndex = 3
Case Is < 11
.ColorIndex = 4
Case Is < 16
.ColorIndex = 6
Case Is < 21
.ColorIndex = 8
Case Is < 26
.ColorIndex = 10
End Select
End With
End If
End Sub


El código anterior iría en el módulo de la hoja (click derecho sobre su etiqueta > Ver código). Si tienes curiosidad por probarlo, te aconsejo que lo hagas en un libro creado "ex profeso" para la prueba, no con tus datos reales.

Lo que hace el código es modificar el color de la celda según el valor introducido, siempre que la celda esté en el rango A1:C10.

Si en el rango A1:C10 ya hubiera datos, sería necesario ejecutar una sola vez el siguiente código, con el objeto de actualizar los colores al valor de las celdas:

Sub ActualizarColores()
Dim rngC As Range
For Each rngC In [Hoja1!A1:C10].Cells
rngC.Value = rngC.Value
Next rngC
Set rngC = Nothing
End Sub


El código supone que la hoja se llama Hoja1, y tendría que estar en un módulo creado por ti (Insertar > Módulo, estando en el editor de VBA, al que se accede pulsando Alt F11).

Pero mi consejo sobre este tema es: salvo que resulte realmente necesario, no usar nunca código; por varias razones, entre las que destaca que se pierde la posibilidad de deshacer los cambios usando Edición > Deshacer. Mientras el formato condicional satisfaga tus necesidades, utilízalo porque es un auténtico lujazo.
Un saludo.


Fernando Arroyo
MS MVP - Excel
www.excelesp.com



"Fernando Fernández" escribió en el mensaje news:XODke.809246$
Gracias por tu rapidísima respuesta :)
Desconocía lo de formato condicional... yo lo buscaba más en el apartado de
fórmulas.
Ahora mismo me bastan 3 colores, pero en breve me serán insuficientes.
Mediante código debe ser algo complicado, verdad?
Yo sé hacer macros, formulitas y esas cosas, pero tocar el formato de la
cenda que invoca la macro, así a primera vista, no he sabido cómo hacerlo.

Saludos y gracias por tu respuesta
Desde Palma de Mallorca
Fernando


Respuesta Responder a este mensaje
#4 Fernando Fernández
24/05/2005 - 14:16 | Informe spam
Gracias nuevamente :)
El código funciona muy bien. Hace cosas raras cuando utilizas las listas
automáticas (yo he escrito 1, 2 y luego he seleccionado y arrastrado para
que escribiera el resto de números y ha dado un error, el número 13
concretamente (qué mala suerte :(( ). Pero manejadas las celdas una a una
funciona de fábula.

Seguiré tu consejo de usar esta macro sólo en última instancia, intentando
salvar el asunto con el formato condicional.

Un saludo desde Palma de Mallorca
Fernando


"Fernando Arroyo" escribió en el mensaje
news:
Es relativamente sencillo modificar el formato de la celda que se acaba de
editar usando el evento Change de la hoja. Por ejemplo:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.[A1:C10]) Is Nothing Then
With Target.Interior
Select Case Target.Value
Case Is < 6
.ColorIndex = 3
Case Is < 11
.ColorIndex = 4
Case Is < 16
.ColorIndex = 6
Case Is < 21
.ColorIndex = 8
Case Is < 26
.ColorIndex = 10
End Select
End With
End If
End Sub


El código anterior iría en el módulo de la hoja (click derecho sobre su
etiqueta > Ver código). Si tienes curiosidad por probarlo, te aconsejo que
lo hagas en un libro creado "ex profeso" para la prueba, no con tus datos
reales.

Lo que hace el código es modificar el color de la celda según el valor
introducido, siempre que la celda esté en el rango A1:C10.

Si en el rango A1:C10 ya hubiera datos, sería necesario ejecutar una sola
vez el siguiente código, con el objeto de actualizar los colores al valor de
las celdas:

Sub ActualizarColores()
Dim rngC As Range
For Each rngC In [Hoja1!A1:C10].Cells
rngC.Value = rngC.Value
Next rngC
Set rngC = Nothing
End Sub


El código supone que la hoja se llama Hoja1, y tendría que estar en un
módulo creado por ti (Insertar > Módulo, estando en el editor de VBA, al que
se accede pulsando Alt F11).

Pero mi consejo sobre este tema es: salvo que resulte realmente necesario,
no usar nunca código; por varias razones, entre las que destaca que se
pierde la posibilidad de deshacer los cambios usando Edición > Deshacer.
Mientras el formato condicional satisfaga tus necesidades, utilízalo porque
es un auténtico lujazo.
Un saludo.


Fernando Arroyo
MS MVP - Excel
www.excelesp.com



"Fernando Fernández" escribió en el mensaje
news:XODke.809246$
Gracias por tu rapidísima respuesta :)
Desconocía lo de formato condicional... yo lo buscaba más en el apartado


de
fórmulas.
Ahora mismo me bastan 3 colores, pero en breve me serán insuficientes.
Mediante código debe ser algo complicado, verdad?
Yo sé hacer macros, formulitas y esas cosas, pero tocar el formato de la
cenda que invoca la macro, así a primera vista, no he sabido cómo hacerlo.

Saludos y gracias por tu respuesta
Desde Palma de Mallorca
Fernando


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida