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?.
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 de Nlyos Leet
1