Colorear celda al Seleccionar CIERTAS CELDAS dentro de un rango.

Hola Elsa Matilde buen día, tengo una petición, me podrás ayudar con una macro que al seleccionar algunas celdas dentro de un rango me resalte de algún color otra celda y que vuelva a su formato original cuando salga del rango.

Ejemplo: en la imagen adjunta se ve la que información a capturar se repite cada 4 filas, entonces lo que ocupo es que al seleccionar cualquier campo "APELLIDO PATERNO" que en este caso esta en A5, A9, A13, A17, A21, A25... Colorear de algún color el encabezado correspondiente que seria A2.

Y en la otra imagen se ve lo mismo pero con el campo "CIUDAD", B8, B12, B16, B20, B24, B28... Y se colorea B4 ya que es su celda de encabezado y se deja de colorear la que ya no corresponde y asi correspondientemente.

Saludos

1 Respuesta

Respuesta
1

Te adjunto macro solicitada. Está desarrollada para el ejemplo solicitado... sin límite en la cantidad de filas para esas 2 columnas.

Observa que dejé 2 tipos de instrucciones para dar el color (no son las únicas).

Para colocar tus propios colores, seleccioná una celda y desde el botón del baldecito, opción Mas colores, Personalizado y allí cuando elijas tu color te indicará los valores RGB, para que los coloques en la macro.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'x Elsamatilde
'según la celda seleccionada se pintará de amarillo el título.
'el color original es celeste claro = RGB(200, 255, 255)
'se excluyen rangos fuera de los requeridos
If Target.Row < 5 Or Target.Column > 2 Then Exit Sub
x = Target.Row
'SE CONTROLA LA COL A
If Target.Column = 1 Then
    If (x - 1) Mod 4 = 0 Then        'se trata de fila 1
        [A1].Interior.Color = 65535
        'deja el resto en gris original
        [A2:A4].Interior.Color = RGB(200, 255, 255)
    ElseIf (x - 2) Mod 4 = 0 Then     'se trata de fila 2
        [A2].Interior.Color = 65535
        [A1, A3:A4].Interior.Color = RGB(200, 255, 255)
    ElseIf (x - 3) Mod 4 = 0 Then     'se trata de fila 3
        [A3].Interior.Color = 65535
        [A1:A2, A4].Interior.Color = RGB(200, 255, 255)
    ElseIf (x - 4) Mod 4 = 0 Then     'se trata de fila 4
        [A4].Interior.Color = 65535
        [A1:A3].Interior.Color = RGB(200, 255, 255)
    End If
    'se quita color de col B
    [B1:B4].Interior.Color = RGB(200, 255, 255)
Else
    'se controla la col B
    If (x - 1) Mod 4 = 0 Then        'se trata de fila 1
        [B1].Interior.Color = 65535
        'deja el resto en gris original
        [B3:B4].Interior.Color = RGB(200, 255, 255)
    ElseIf (x - 3) Mod 4 = 0 Then     'se trata de fila 3
        [B3].Interior.Color = 65535
        [B1, B4].Interior.Color = RGB(200, 255, 255)
    ElseIf (x - 4) Mod 4 = 0 Then     'se trata de fila 4
        [B4].Interior.Color = 65535
        [B1:B3].Interior.Color = RGB(200, 255, 255)
    End If
    'se quita color de col A
    [A1:A4].Interior.Color = RGB(200, 255, 255)
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas