Macro excel para colorear celdas.

Te cuento, tengo un archivo excel con una lista de productos con código, descripción etc, yo necesito crear una macro que pinte la fila completa donde se encuentra una celda activa, luego si el usuario pincha otra celda pinte esa fila y la anterior quede en estado normal y así sucesivamente.
Yo actualmente tengo este código
If ActiveCell.Value <> "" Then
Selection.EntireRow.Interior.ColorIndex = 15
End If
end sub
Y ese código va dejando pintada la celda..

2 Respuestas

Respuesta
1
Como estas amigo, prueba este código en la hoja que tienes los datos
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error GoTo linea1
    Rango.EntireRow.Interior.ColorIndex = 0
    Set Rango = ActiveCell
    If ActiveCell.Value <> "" Then
        Selection.EntireRow.Interior.ColorIndex = 15
    End If
    Exit Sub
linea1:
    Set Rango = Target
      If ActiveCell.Value <> "" Then
        Selection.EntireRow.Interior.ColorIndex = 15
    End If
End Sub
Respuesta
1
Entiendo, una especie de regla guía.. mira. Hace tiempo hice un ejemplo así, te lo dejo
En un modulo pones esto:
Option Explicit
Public antes As Integer
Sub color(fila As Integer)
If [iv65535] <> 1 Then Exit Sub
If antes = fila Then Exit Sub
If antes = 0 Then antes = fila
Range("A" & antes & ":" & "iv" & antes).Interior.Pattern = xlNone
Range("A" & fila & ":" & "iv" & fila).Interior.color = vbYellow
antes = fila
End Sub
Public Sub Activa_regla()
    [iv65535] = 1
End Sub
Public Sub Desactiva_regla()
    [iv65535] = ""
    Selection.EntireRow.Interior.Pattern = xlNone
End Sub
en la hoja en que aplicaras esta "regla" pones esto:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    color (Selection.Row)
End Sub
funcionamiento:
consta de 3 macros
Activa_regla
Desactiva_regla
Debes correr activa_regla primero y para detener todo obviamente la otra.
Bye

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas