Resaltar filas y columnas hasta la celda activa

Necesitaría un código Vb para Colorear la Fila y la columna
Solo hasta el cruce de ambas, es decir hasta donde está la celda seleccionada.

1 respuesta

Respuesta
1

¿Es algo así lo que quieres?

Sub resaltar(celda As Range)
With Range(Cells(1, celda.Column), Cells(celda.Row, celda.Column)).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 49407
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Range(Cells(celda.Row, 1), Cells(celda.Row, celda.Column)).Interior
.PatternColorIndex = xlAutomatic
.Color = 49407
.TintAndShade = 0
.PatternTintAndShade = 0
End With
celda.Select
End Sub

donde coloco el código?

por que si lo coloco en la hoja no hace nada , si es en un modulo tampoco

Lo dejas en un módulo, luego lo puedes llamar desde cualquier parte entregándole la celda en cuestión.

Como ejemplo, puedes hacer la llamada en el evento Worksheet_SelectionChange, de la hoja, y pasarle como parámetro el Target.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
resaltar Target
End Sub

Bien pero tiene un problema , al cambiar la celda activa, no borra la anterior selección.

Con esta instrucción limpias el color de fondo de toda la hoja, deberías utilizarlo antes de pintar las celdas.

With Cells.Interior
    .Pattern = xlNone
End With

Si quieres limpiar sólo un rango, reemplazas Cells por el rango que deseas limpiar. Ejemplo para el rango A1:N100.

With Range("A1:N100").Interior
    .Pattern = xlNone
End With

Añade tu respuesta

Haz clic para o