Você deve juntar os do; que causam loop infinito, do seguinte modo:
Veja se consegue entender...
Macros separados:
//esse do é infinito! portanto não o código não passará daqui
do;
//macro dessa pessoa
loop;
do;
//macro da outra pessoa
loop;
Macros juntos:
do;
//macro dessa pessoa
//macro da outra pessoa
loop;