Macro que cambie de color una autoforma

Gracias de antemano por la ayuda que nos brindan!

Tengo esta macro que se puede ver en la imagen adjunta que al rellenar la celda "E5" de un determinado color, haciendo click en el triangulo el mismo toma ese color, lo que necesito es la opcion de dejar sin relleno la celda "E5" y que el triangulo quede transparente

Muchas gracias!

2 Respuestas

Respuesta
2

Aquí otro código a considerar

Sub AjustarColor()
  Dim tr As Integer, b As Integer
  With ActiveSheet.Shapes("Triangulo").Fill
    .Transparency = (Range("E5").Interior.ColorIndex = xlNone) * -1
    .ForeColor.RGB = Range("E5").Interior.Color
  End With
End Sub

O de esta manera

Sub AjustarColor()
  ActiveSheet.Shapes("Triangulo").Fill.Transparency = (Range("E5").Interior.ColorIndex = xlNone) * -1
  ActiveSheet.Shapes("Triangulo").Fill.ForeColor.RGB = Range("E5").Interior.Color
End Sub
Respuesta
1

Intente con esta macro

Sub CambiaColor()
    With Range("E5").Interior
    clr = Range("E5").Interior.Color
        If .ColorIndex <> xlColorIndexNone Then
            ActiveSheet.Shapes(1).Select
            Selection.Interior.Color = clr
        End If
    End With
End Sub

No me funciona, cuando le saco el relleno a la "E5", ejecuto la macro, el triangulo mantiene el mismo color

Va de nuevo la macro

Sub CambiaColor()
'Cambia color forma Triangulo
    With Range("E5").Interior
    clr = Range("E5").Interior.Color
        If .ColorIndex <> xlColorIndexNone Or .ColorIndex = xlColorIndexNone Then
            ActiveSheet.Shapes(1).Select
            Selection.Interior.Color = clr
        End If
    End With
End Sub

Estimado, muchas gracias por tu aporte, con esta macro al dejar sin relleno la celda el triangulo se pone blanco, yo necesito que quede transparente, es posible.

Gracias de nuevo

Intente así

Sub CambiaColor()
'Cambia color forma Triangulo
    With Range("E5").Interior
    clr = Range("E5").Interior.Color
        If .ColorIndex <> xlColorIndexNone Then
            ActiveSheet.Shapes(1).Select
            Selection.Interior.Color = clr
        Else
            ActiveSheet.Shapes(1).Select
            Selection.Interior.Pattern = xlNone
             .TintAndShade = 0
             .PatternTintAndShade = 0
        End If
    End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas