Imprimir página | Cerrar ventana

Resaltar la fila y columna de la celda activa

Impreso de: Foro de Access y VBA
Categoría: Otros de Microsoft: Windows y Office
Nombre del foro: Excel
Descripción del foro: Foro de Excel y VBA de Excel
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84725
Fecha de impresión: 26/Marzo/2026 a las 19:25


Tema: Resaltar la fila y columna de la celda activa
Publicado por: Ignigo
Asunto: Resaltar la fila y columna de la celda activa
Fecha de publicación: 27/Septiembre/2019 a las 23:28
Buenas noches,

Precisaría la ayuda en este ejemplo de otro foro, donde necesitaría mantener el color de los encabezados y algunas columnas que tienen colores.

Al activar la celda también se cambian los colores del encabezado.

Modulo:

Public celdaActiva(1) As Range

ThisWorkbook:

Private Sub Workbook_Open()
    Set celdaActiva(1) = ActiveCell
    ActiveCell.EntireRow.Interior.Color = RGB(255, 145, 145)
    ActiveCell.EntireColumn.Interior.Color = RGB(255, 145, 145)
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Set celdaActiva(1) = ActiveCell
    ActiveCell.EntireRow.Interior.Color = RGB(255, 145, 145)
    ActiveCell.EntireColumn.Interior.Color = RGB(255, 145, 145)
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Set celdaActiva(0) = celdaActiva(1)
    Set celdaActiva(1) = Target
    
    On Error Resume Next
    celdaActiva(0).EntireRow.Interior.Color = xlNone
    celdaActiva(0).EntireColumn.Interior.Color = xlNone
    Target.EntireRow.Interior.Color = RGB(255, 145, 145)
    Target.EntireColumn.Interior.Color = RGB(255, 145, 145)
End Sub


Gracias por anticipado.




Respuestas:
Publicado por: AnSanVal
Fecha de publicación: 30/Septiembre/2019 a las 23:30
He leído varias veces la consulta y sigo sin entender... ¿Cuál es la duda?



-------------
Saludos desde Tenerife.


Publicado por: lbauluz
Fecha de publicación: 02/Octubre/2019 a las 03:30
Si no entiendo mal:

Lo que tienes ahora mismo es que te sale una especie de cruz en color rojo, marcando toda la fila y toda la columna donde está el foco.

Lo que quieres es que si alguna de las celdas de esa fila / columna tiene colores que no lo ponga en rojo sino que mantenga su color.

O incluso, que se ponga en rojo, pero al perder el foco que no se ponga en blanco sino en los colores que tenía.

¿Es eso?

Un saludo.

Luis.



-------------
El Búho es un pajarraco


Publicado por: Ignigo
Fecha de publicación: 02/Octubre/2019 a las 23:31
Buenas noches;

Así es.

¿Se puede hacer?

Saludos,


Publicado por: lbauluz
Fecha de publicación: 03/Octubre/2019 a las 01:12
Así a ojo, lo que deberías hacer es tener un objeto RANGE, 
Al seleccionar una fila, copiar el contenido al entrar, antes de cambiar el color
Cambias el color para que se vea como quieres como hasta ahora
Al salir, en lugar de poner deberás pegar el formato que tenías en la variable RANGE en lugar de 

  celdaActiva(0).EntireRow.Interior.Color = xlNone
    celdaActiva(0).EntireColumn.Interior.Color = xlNone

Que lo que hace es exactamente quitar el color

Un saludo.

Luis




-------------
El Búho es un pajarraco


Publicado por: AnSanVal
Fecha de publicación: 03/Octubre/2019 a las 11:38
Sin conocer donde están y como son tus datos y formatos... la respuesta ya te la ha dado Luís, pero te sugiero que no trabajes con filas completas ni columnas completas.

-------------
Saludos desde Tenerife.


Publicado por: Gladiador
Fecha de publicación: 08/Octubre/2019 a las 16:44
Hola chicos

Siempre he venido al foro a preguntar. Esta vez me voy a tomar la libertad de hacer una contribución, pues he tenido la misma inquietud. 

Resaltar, la fila en la cual me encuentro

Para eso, he nombrado una celda (Digamos la celda A1) con el nombre MiFila

Luego en el editor de VBA he creado la siguiente instrucción, para la hoja en cuestión

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[MiFila] = Target.Row
End Sub

Esto hace que el valor de la celda, que he llamado MiFila, sea el número de la fila sobre la cual me encuentro

Luego, voy a Formato Condicional y uso la opción "Utilice una fórmula que determine las celdas para aplicar formato"

Luego inserto la siguiente instrucción:

=FILA(A1)=MiFila

y aplico el formato que deseo. En mi caso utilicé, poner borde inferior color rojo a la fila.

Le doy aceptar y luego defino el rango sobre el cual deseo aplicar el formato.
En mi caso seleccioné el rango A5:X1000, que es donde tengo los datos que me interesan

Dos puntos a recordar.
1.- Se debe tener cuidado en insertar los "corchetes" en la instrucción
[MiFila] = Target.Row
2.- El libro debe ser guardado como "Libro de Excel habilitado para macros"

Imagino que el mismo procedimiento aplica para resaltar la columna

Espero haber sido de ayuda

Gladiador


Publicado por: AnSanVal
Fecha de publicación: 08/Octubre/2019 a las 22:49
Gladiador; he probado tu aporte, ¡Funciona! y me gusta la sencillez del mismo.

Gracias.


La única pega a tener en cuenta es que si el rango a formatear es demasiado grande (seguimos sin saberlo)... va a estar lleno de formato condicional además de formato ordinario y el exceso de formatos suele acarrear problemas a la larga Confused, pero... cada uno es dueño de hacer de su capa un sayo. 




-------------
Saludos desde Tenerife.



Imprimir página | Cerrar ventana