Como destaco las celdas seleccionadas con el mouse

05/09/2008 - 22:24 por KOKE | Informe spam
No tengo posibilidades de cambiar la opción del color de fondo a las celdas
que selecciono en una hoja Excel

Preguntas similare

Leer las respuestas

#1 Servando
05/09/2008 - 22:54 | Informe spam
Hola Koke:

Eso que pretendes se puede hacer con mediante un evento, pero tienes que
evaluar el beneficio de hacerlo.

Te pondo tres rutinas que te pueden servir, pruebalas poniendolas en el
codigo de la página, pero no las vayas a poner juntas, para probar, ponlas en
el codigo de diferentes hojas.

Procedimiento:
1. Clic derecho en la etiqueta de la hoja 1 y selecciona "Ver codigo".
2. Al abrir la hoja de codigo, pegas el codigo #1.

Repite el procedimiento para la hoja 2 y 3 poniendo el codigo #2 y #3
respectivamente.


Codigo #1
Dim rLastCell
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
' If UCase(Range("Highlight")) = "N" Then Exit Sub
If Not IsObject(rLastCell) Then Set rLastCell = ActiveCell
With rLastCell
.EntireRow.Interior.ColorIndex = xlNone
.EntireColumn.Interior.ColorIndex = xlNone
End With
With Target
ActiveCell.Interior.ColorIndex = 6
' .EntireColumn.Interior.ColorIndex = 6
End With
Set rLastCell = Target
End Sub

' Fin de la primer rutina


Codigo #2
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Rows.Interior.ColorIndex = xlNone 'unshade all cells
Rows(Target.Row).Interior.ColorIndex = 34 ' shade current row
End Sub

' Fin de la segunda rutina

Codigo #3

Dim rLastCell
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Not IsObject(rLastCell) Then Set rLastCell = ActiveCell
With rLastCell
.EntireRow.Interior.ColorIndex = xlNone
.EntireColumn.Interior.ColorIndex = xlNone
End With
With Target
.EntireRow.Interior.ColorIndex = 6
.EntireColumn.Interior.ColorIndex = 6
End With
Set rLastCell = Target
End Sub

' Fin de la tercera rutina


Por favor, comentanos si esto te fue de utilidad.

Saludos
Servando Villalon


"KOKE" wrote:

No tengo posibilidades de cambiar la opción del color de fondo a las celdas
que selecciono en una hoja Excel
Respuesta Responder a este mensaje
#2 Héctor Miguel
06/09/2008 - 03:13 | Informe spam
hola, 'anonimo/a' !

No tengo posibilidades de cambiar la opción del color de fondo a las celdas que selecciono en una hoja Excel



puedes usar codigo (vba/macros) y/o instalar un complemento de terceros desde la siguiente pagina:
-> http://www.cpearson.com/excel/RowLiner.htm
solo toma en cuenta que se pierde el beneficio del des-hacer (undo, ctrl+z)

alternativas: por formatos condicionales (menu) formato / formato condicional...

1) selecciona todas las celdas de la hoja
(puedes usar el recuadro superior-izquierdo de los encabezados de fila/columna)
(o las combinaciones de teclado: mayusc+espacio seguidas de ctrl+espacio)

2) (menu) formato / formato condicional...
cond 1: formula: =y(fila()=celda("fila"),columna()=celda("columna"))
formato: (selecciona el color, trama, bordes, ... de tu preferencia)

y (un poco de) apoyo con macros en el modulo de eventos de la hoja
-> click-derecho sobre la pestana con el nombre de la hoja y -> ver codigo...

3) copia las siguientes lineas (en el modulo de codigo de esa hoja):
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("a1").Calculate
End Sub

o... si a tu modelo le afecta un re/calculo en cada (re)seleccion de la celda activa, cambia a...
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = True
End Sub

la diferencia entre un codigo y otro es un ligero/consante parpadeo si utlizas el ScreenUpdating
(o el efecto de los re/calculos del modelo completo ?)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

existen mas combinaciones de formulas y formatos (bordes sobre todo) segun necesidades
(p.e. cuando quieres que se coloree TODA la fila/columna donde esta la celda activa)...
-> los formatos sugeridos en los bordes para...
las filas: SOLO superior e inferior
las columnas: SOLO izquierdo y derecho
-> formulas para los formatos condicionales:
1) en cruz:
cond1: =fila()=celda("fila")
cond2: =columna()=celda("columna")
2) L en espejo (o lo que es lo mismo, de aqui... patras)
cond1: =y(fila()=celda("fila"),columna()<=celda("columna"))
cond2: =y(columna()=celda("columna"),fila()<=celda("fila"))
3) L en espejo de cabeza (o lo que es lo mismo, de aqui... palante)
cond1: =y(fila()=celda("fila"),columna()>=celda("columna"))
cond2: =y(columna()=celda("columna"),fila()>=celda("fila"))
=> EXCLUYENDO a la celda activa <1) en cruz:
cond1: =y(fila()=celda("fila"),columna()<>celda("columna"))
cond2: =y(columna()=celda("columna"),fila()<>celda("fila"))
2 y 3.- (L y L invertida)
(cambiar) <= a < (cambiar tambien) >= a >
=SIN bordes y en cruz (utilizando SOLO UNA -de las tres- condiciones de formato)
cond1: =o(fila()=celda("fila"),columna()=celda("columna"))
==
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida