Evitar que macro se ejecute varias veces

HOLA QUE TAL DE ANTEMANO GRACIAS POR LA AYUDA DE USTEDES

TENGO UN PROBLEMA CON UNA MACRO 

EN LA HOJA 1 TENGO EL SIGUIENTE EVENTO

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, ActiveSheet.Range("A1:A10")) Is Nothing Then Macro1
End Sub

Y LA MACRO 1 ES LA SIGUIENTE

Sub Macro1()
'
' Macro1 Macro
'
'
Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.CurrentRegion.Select
Selection.Cut
Range("A1").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
ActiveSheet.Paste
Range("C1").Select
End Sub

lo que intentos es que cuando surja un cambio en el
rango A1:A10 la macro1 se ejecute una sola vez hasta volver a realizar otro
cambio en dicho rango pero resulta que en el primer intento que realizo un
cambio en el rango A1:A10 la macro se autoejecuta infinitamente
quisiera una solucion a este problema

ya que no se puede parar la macro

1 respuesta

Respuesta
1

Es porque la Macro1 nuevamente te realiza un 'change' o cambio en el rango y así se vuelve a ejecutar el evento 'change'.

Agregá un control en la Macro1:

Sub Macro1()
'
' Macro1 Macro
'
Application.EnableEvents = False
Range("A1").Select

y antes de End Sub lo volvés a True:

Application.EnableEvents = True

End Sub




Añade tu respuesta

Haz clic para o

Más respuestas relacionadas