Macro colorear solo bordes celda activa, urge

Tengo este código:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static OldCell As Range
    Static OldColorIndex As Long
    If Not OldCell Is Nothing Then
        OldCell.Interior.ColorIndex = OldColorIndex
    End If
    OldColorIndex = Target.Interior.ColorIndex
    Target.Interior.ColorIndex = 7 'color ?
    Set OldCell = Target
End Sub
.. . . . . . .
. . . Que funciona muy bien en cualquier hoja en que se aplique, tenga o no otras
macro y que solo colorea mientras está activa lacelda (no las deja marcadas
cuando no lo están, como otros). . . ..
Ahora resulta que necesito  que haga lo mismo pero que"solo cambie el color del borde"
y para ellohago lo que me perece más sencillo:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static OldCell As Range
    Static OldColorIndex As Long
    If Not OldCell Is Nothing Then
        OldCell.Borders.ColorIndex = OldColorIndex
    End If
    OldColorIndex = Target.Borders.ColorIndex
    Target.Borders.ColorIndex =7 'color ?
    Set OldCell = Target
End Sub
Ta cual está sigue funcionando bien en un libro nuevo, pero en el libro en que funcionaba
antes para colorear el fondo de la celda activa, no consigo ponerlo a andar aunque le
aplico idéntica modificación, para que solo coloree el borde, como mucho, me funciona en
una única columna y en cuanto pincho celdas de otra, salta el depurador con un "Error
'94' en tiempo de ejecución: Uso no válido de Null y me señala en la línea que indico:
OldCell.Borders.ColorIndex = OldColorIndex
    End If
    OldColorIndex = Target.Borders.ColorIndex
    Target.Borders.ColorIndex = 7 'color ?
    Set OldCell = Target
End Sub
¿Quién me puede decir qué hago mal?.

1 respuesta

Respuesta
1
Creo que es porque usas dos variables diferentes para una misma:
OldColorIndex = Target.Borders.ColorIndex
OldCell.Interior.ColorIndex = OldColorIndex
Intenta cambiarlo y me avisas ;)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas