dar un color a una rango cuando una celda esté activa

20/05/2006 - 18:33 por Jose Soler | Informe spam
Hola al foro:

¿podría alguien decirme como dar un color de fondo a un rango cuando una
celda concreta sea la celda activa, es decir, cuando esta celda esté
seleccionada?.

Gracias a todos por vuestra atención

Salu2

José

Preguntas similare

Leer las respuestas

#1 David
20/05/2006 - 20:20 | Informe spam
Asigna un nombre a tu rango, por ejemplo "MiRango". Luego, desde el editor
de VBA, haces doble clic en la hoja que contiene la celda que mencionas
(supondré que es A1), y pegas el siguiente código:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
Range("MiRango").Interior.ColorIndex = 40
Else
Range("MiRango").Interior.ColorIndex = 0
End If
End Sub




"Jose Soler" escribió:

Hola al foro:

¿podría alguien decirme como dar un color de fondo a un rango cuando una
celda concreta sea la celda activa, es decir, cuando esta celda esté
seleccionada?.

Gracias a todos por vuestra atención

Salu2

José



Respuesta Responder a este mensaje
#2 KL
20/05/2006 - 22:49 | Informe spam
Hola Jose,

Prueba hacer lo siguiente:

1) selecciona toda la hoja (clic sobre el recuadro superior-izquierdo de los encabezados de fila y columna)
2) ve al menu Formato>Formato condicional...
3) en el 1er desplegable de la Condicion1 elige la opcion formula es
4) en el cuadro para la formula pon: =FILA()ÎLDA("fila")
5) pulsa el boton Formato, elige la pestana Trama, elige el color de tu preferencia y pulsa Aceptar, Aceptar
6) haz clic derecho sobre la pestana con el nombre de la hoja en la parte de abajo de la ventana de Excel y elige la opcion Ver codigo para abrir el Editor VBA
7) en la ventana mas grande a la derecha pega el siguiente codigo:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = True
End Sub

8) pulsa las teclas Alt+F11 para volver a la hoja
9) haz pruebas

Nota: a diferencia de las demas soluciones no se pierde la funcionalidad de Deshacer y Rehacer

Saludos,
KL


"Jose Soler" wrote in message news:%
Hola al foro:

¿podría alguien decirme como dar un color de fondo a un rango cuando una
celda concreta sea la celda activa, es decir, cuando esta celda esté
seleccionada?.

Gracias a todos por vuestra atención

Salu2

José


Respuesta Responder a este mensaje
#3 Jose Soler
21/05/2006 - 04:06 | Informe spam
Gracias David.

¿Como tendría que hacerse si en lugar de solo A1, hubieran tres alternativas
posibles, es decir, la seleccionada podría ser cualquiera de, por ejemplo,
estas tres A1 ó B1 ó C1. Podrían, una u otra, estar seleccionada para que se
coloree el rango indicado?

En mi anterior pregunta no me dí cuenta que lo que necesito es esto.

saludos,

Jose


"David" <sdgm04(QuitaEsto)@hotmail.com> escribió en el mensaje
news:
Asigna un nombre a tu rango, por ejemplo "MiRango". Luego, desde el


editor
de VBA, haces doble clic en la hoja que contiene la celda que mencionas
(supondré que es A1), y pegas el siguiente código:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
Range("MiRango").Interior.ColorIndex = 40
Else
Range("MiRango").Interior.ColorIndex = 0
End If
End Sub




"Jose Soler" escribió:

> Hola al foro:
>
> ¿podría alguien decirme como dar un color de fondo a un rango cuando una
> celda concreta sea la celda activa, es decir, cuando esta celda esté
> seleccionada?.
>
> Gracias a todos por vuestra atención
>
> Salu2
>
> José
>
>
>
Respuesta Responder a este mensaje
#4 Héctor Miguel
21/05/2006 - 05:36 | Informe spam
hola, chicos !

considerando que toda accion por codigo que modifica propiedades de objetos inhibe el deshacer, undo, ctrl+Z, etc. :-(
te sugiero seguir la sugerencia de KL, utilizando los formatos condicionales y [solo] un poco de codigo [mas 'amigable'] ;)
el unico 'inconveniente' al usar un 'Application.ScreenUpdating = True' [y es menor que perder la posibilidad de un deshacer]
es que se estaria 'viendo' un ligero [pero constante] 'parpadeo' en la pantalla cada vez que se hace el 'refresco' de la misma :-(
pero... en el caso que expones, se puede 'condicionar' el refresco a las 3 celdas que mencionas [a1, b1 o c1] si hace lo siguiente:

1) selecciona el rango que necesitas 'colorear' cuando este 'activa' alguna celda del rango 'A1:C1'
2) aplicale un formato condicional usando la siguiente formula: -> =y(celda("fila")=1,celda("columna")<4)
[solo toma en cuenta que mi sistema usa como separador de argumentos a la coma ',' NO al punto y coma ';'] :D
3) copia las siguientes lineas...
en el modulo de codigo de 'esa' hoja ==Dim Actual As Boolean, Anterior As Boolean
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Anterior = Actual
With Target: Actual = .Row = 1 And .Column < 4: End With
If Anterior Or Actual Then Application.ScreenUpdating = True
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Jose Soler escribio en el mensaje ...
... como dar un color de fondo a un rango cuando una celda concreta sea la celda activa
es decir, cuando esta celda este seleccionada?.

David escribio en el mensaje ...
Asigna un nombre a tu rango, por ejemplo "MiRango". Luego, desde eleditor de VBA
haces doble clic en la hoja que contiene la celda que mencionas (supondre que es A1), y pegas el siguiente codigo:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
Range("MiRango").Interior.ColorIndex = 40
Else
Range("MiRango").Interior.ColorIndex = 0
End If
End Sub

Jose Soler escribio en el mensaje ...
Como tendria que hacerse si en lugar de solo A1, hubieran tres alternativas posibles
es decir, la seleccionada podria ser cualquiera de, por ejemplo, estas tres A1 o B1 o C1.
Podrian, una u otra, estar seleccionada para que se coloree el rango indicado?
Respuesta Responder a este mensaje
#5 Jose Soler
21/05/2006 - 22:45 | Informe spam
Hola:

Gracias a todos:

He probado las dos formas, la de David y la de Hector y Kl. Con la de David
se colorea toda la fila, aparte de que se pierdan las posibilidadades de
undo etc. Y con la de Hector y Kl se quedan coloreadas cuando la celda ya no
es la celda activa.

Tengo 16 rangos unos debajo de otros, tipo K5:L5, que tengo que hacer que
coloreen cada uno de ellos, cuando la celda activa este entre las celdas que
estan a su derecha, dentro del rango n5:v5.

Los 16 rangos que se deben colorear y descolorear van desde K5:L5 hasta
K20:L20 y para celda activa desde N5:V5 hasta N20:V20

Gracias por vuestra atencion

Salu2,

Jose




"KL" escribio en el mensaje
news:%
Hola Jose,

Prueba hacer lo siguiente:

1) selecciona toda la hoja (clic sobre el recuadro superior-izquierdo de los
encabezados de fila y columna)
2) ve al menu Formato>Formato condicional...
3) en el 1er desplegable de la Condicion1 elige la opcion formula es
4) en el cuadro para la formula pon: =FILA()ÎLDA("fila")
5) pulsa el boton Formato, elige la pestana Trama, elige el color de tu
preferencia y pulsa Aceptar, Aceptar
6) haz clic derecho sobre la pestana con el nombre de la hoja en la parte de
abajo de la ventana de Excel y elige la opcion Ver codigo para abrir el
Editor VBA
7) en la ventana mas grande a la derecha pega el siguiente codigo:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = True
End Sub

8) pulsa las teclas Alt+F11 para volver a la hoja
9) haz pruebas

Nota: a diferencia de las demas soluciones no se pierde la funcionalidad de
Deshacer y Rehacer

Saludos,
KL


"Jose Soler" wrote in message
news:%
Hola al foro:

¿podría alguien decirme como dar un color de fondo a un rango cuando una
celda concreta sea la celda activa, es decir, cuando esta celda esté
seleccionada?.

Gracias a todos por vuestra atención

Salu2

José


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida