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 SubY 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 SubLas 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.