I find in your example the "Trigger Once" is in front of "For Each", which is the magic make it works! but It is only trigger once in the whole game/layout. What if I want re-trigger this when the condition matches?
You'll need to put it under event that is the condition you mention there. Generic method would be:
global variable RUN_LOOP = 0
RUN_LOOP = 1
..your loop here
... your loop action stuff
.. RUN_LOOP = 0
Now, whenever you wish to run that loop you can set RUN_LOOP to 1 in your events. That's the generic way, better way is making your loop a function. :)