Detener una macro, sin ESC

Tengo la siguiente secuencia para ejecutar una macro si cambia la celda A2 (que es una fórmula) a vacía. El problema es que ejecuta de forma ininterrumpida. ¿Cómo hacer que se ejecute cuando se cumpla dicha condición una sola vez?

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A2")) Is Nothing Then
Mimacro
Exit Sub
End If

Gracias

1 Respuesta

Respuesta
1

Supongo que lo que tienes en la macro "Mimacro" afecta celdas, y por eso se vuelve a ejecutar.

Realiza lo siguiente:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A2")) Is Nothing Then

Application.EnableEvents = False
Mimacro

Application.EnableEvents = True
Exit Sub
End If

Saludos. Dam
Si es lo que necesitas.

Funciona, pero como en ese mismo evento tengo otra secuencia, sólo se ejecuta de manera correcta la colocada en primer lugar. Esta sería la otra secuencia que también se tendría que ejecutar:

'Para BORRAR celdas alternas de la misma columna.
On Error Resume Next
If Not Intersect(Target, Range("F31:O31,F67:P67,R67,T67,W67")) Is Nothing Then
l = Target.Column
If Cells(31, l) = "" Then
Cells(32, l) = ""
Cells(42, l) = ""
Cells(44, l) = ""
Cells(46, l) = ""
Cells(48, l) = ""
Cells(50, l) = ""
If Cells(67, l) = "" Then
Cells(68, l) = ""
Cells(87, l) = ""
Cells(89, l) = ""
Cells(91, l) = ""
End If
End If
End If
If Intersect(Target, Range("Q67,S67")) Is Nothing Then Exit Sub
l = Target.Column
If Cells(67, l) = "" Then
Cells(75, l) = ""
Cells(96, l) = ""
End If
Resume: Exit Sub
End Sub

Gracias

Mejor podrías enviarme tu archivo, con ejemplos y con las macros para entender el funcionamiento, escribe en alguna celda cómo funcionan, dime que es lo que debo poner y qué esperas como resultados.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas