Macros Excel: Ejecutar macro si el valor de la celda es 'n

Estoy intentando hacer que se ejecute una macro automáticamente sin necesidad de botón dependiendo de el valor de una celda especifica (el valor que debería ejecutar la macro es 0 y se da por una fórmula). Actualmente tengo la macro funcionando correctamente ejecutándola con un botón, la macro es esta:

Sub solosalida()
'
' solosalida Macro
'
'
    Range("A5:A17").Select
    Selection.Copy
    Range("A18").Select
    ActiveSheet.Paste
    Range("A6:A17").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    ActiveSheet.Shapes.Range(Array("3 Elipse")).Select
    With Selection.ShapeRange.Fill
        .Visible = msoTrue
        .ForeColor.RGB = RGB(0, 255, 0)
        .Transparency = 0
        .Solid
    End With
    ActiveSheet.Shapes.Range(Array("4 Elipse")).Select
    With Selection.ShapeRange.Fill
        .Visible = msoTrue
        .ForeColor.RGB = RGB(0, 255, 0)
        .Transparency = 0
        .Solid
    End With
    ActiveSheet.Shapes.Range(Array("2 Rectángulo")).Select
    With Selection.ShapeRange.Fill
        .Visible = msoTrue
        .ForeColor.RGB = RGB(0, 255, 0)
        .Transparency = 0
        .Solid
    End With
    Range("A1").Select
End Sub

He intentado que esta macro se ejecute automáticamente con este código sobre la hoja:

Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Range("C51")
If Target.Value = 0 Then
    Call solosalida
End If
End Sub

Al momento en el que el valor de la celda Target es 0 se intenta ejecutar la macro pero aparece el error (Error en el método 'Paste' de objeto '_Worksheet'), la macro funciona perfecto si se ejecuta con el botón pero no funciona si se ejecuta con la condicional. Como puedo solucionarlo? Que estoy haciendo mal?

Respuesta

Prueba cambiado este código:

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("C51").Value = 0 Then
Call solosalida
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas