Foros del Web » Soporte técnico » Ofimática »

Seleccionar rango por color de fondo

Estas en el tema de Seleccionar rango por color de fondo en el foro de Ofimática en Foros del Web. Hola: Tengo un libro de Excel en el que lanzo un evento de calendario al posicionarme sobre unas celdas determinadas. El evento funciona muy bien, ...
  #1 (permalink)  
Antiguo 24/10/2008, 02:36
 
Fecha de Ingreso: octubre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Seleccionar rango por color de fondo

Hola:

Tengo un libro de Excel en el que lanzo un evento de calendario al posicionarme sobre unas celdas determinadas. El evento funciona muy bien, pero necesito definir el rango de celdas en el que debe de actuar. Necesito que el evento se ejecute cuando me posiciono sobre cualquier celda de la columna D y F, salvando la primera línea que es donde tengo el título de las columnas y que no lo hiciese cuando la celda es de color AZUL o BLANCA.

Esto es lo que tengo programado:

Cita:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rngFechas As Range

Set rngFechas = Range("D:D, F:F")

If Union(Target, rngFechas).Address = rngFechas.Address Then _
Call abrir_calendario


End Sub
Si alguien me pude ayudar se lo agredecería.

Bueno, gracias de antemano.
  #2 (permalink)  
Antiguo 24/10/2008, 06:29
 
Fecha de Ingreso: septiembre-2007
Ubicación: Badajoz City
Mensajes: 126
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Seleccionar rango por color de fondo

Mira a a ver así:
Cita:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rngFechas As Range

Set rngFechas = Range("D:D, F:F")

If (Union(Target, rngFechas).Address = rngFechas.Address) And ((Target.Interior.ColorIndex = 2) Or (Target.Interior.ColorIndex = 5)) Then _
Call abrir_calendario


End Sub
  #3 (permalink)  
Antiguo 24/10/2008, 06:51
 
Fecha de Ingreso: octubre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Seleccionar rango por color de fondo

Cita:
Iniciado por yenay Ver Mensaje
Mira a a ver así:


Gracias funciona pero con una pequeña modificación sobre tu código:

Cita:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rngFechas As Range

Set rngFechas = Range("D:D, F:F")
If (Union(Target, rngFechas).Address = rngFechas.Address) And ((Target.Interior.ColorIndex <> 2) And (Target.Interior.ColorIndex <> 5)) Then _
Call abrir_calendario


End Sub
Lo había solucionado de otra manera pero así es más cómodo.

Pero... ahora me surge otro problema:

Las celdas donde debe de lanzarse el evento tienen un formato condicional que hace que cambien de color al cumplirse, pero el Interior.ColoIndex es Blanco aunque la celda sea Naranja o Verde. Lo he solucionado poniendo el fondo de la celda en Negro, pero creo que eso es una chapucilla.

Alguna idea.

Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:59.