Instead of several macro call you can change your %apps() macro code to loop through years if that possible. If not find the below code that might work.
%macro loop_years(yyyymm=);
%do i=%substr(&yyyymm,1,4) %to %sysfunc(year(%sysfunc(today())));
%do j=%sysfunc(ifc(&i=%substr(&yyyymm,1,4),%substr(&yyyymm,5,2),01))
%to %sysfunc(ifc(&i=%sysfunc(year(%sysfunc(today()))),%sysfunc(month(%sysfunc(today()))),12));
%let month_j=%sysfunc(putn(&j,z2.));
%apps(&i&month_j);
%end;
%end;
%mend loop_years;
%loop_years(yyyymm=201305);
... View more