Conseguir que una macro sólo se ejecute 1 vez cada vez que se cumplan las condiciones
Tengo una macro que copia los valores de unas celdas fijas en un listado cuando se cumplen unas condiciones que tengo redactadas en otras celdas mediante fórmulas. El problema es que cuando se cumplen las condiciones Excel ejecuta la macro un número ilimitado de veces y yo necesito que se ejecute una única vez. Os dejo la macro que tengo para copiar las celdas:
Sub Record_data() ' ' Record_data Macro ' Sheets("History").Select Sheets("History").Range("C3:I3").Select Sheets("History").Range("C3:I3").Activate Selection.Copy Sheets("History").Range("C5:I5").Select Sheets("History").Range("C5:I5").Activate Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("History").Range("C5:I5").Select Sheets("History").Range("C5:I5").Activate Application.CutCopyMode = False Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove End Sub
Y esto es lo que tengo para lanzar la macro anterior al cumplirse las celdas:
Private Sub Worksheet_Calculate() If Range("A5") = 1 And Range("A7") = 1 And Range("A9") = 1 And Range("L2") = "SI" Then Call Record_data End Sub
Las celdas A5, A7 y A9 van variando su valor según una cuenta atrás, de forma que las condiciones se cumplen cada dos minutos siempre que queden menos de 12 horas en la cuenta atrás.
La celda L2 es una opción que he puesto para decidir en cada momento si quiero que la macro que copia las celdas se ejecute o no.
Cualquier ayuda será de mucha ayuda.