The document that Cynthia pointed you to will help you to understand more about macro variables and how to generate them in an automated way. Do get your mind around that sometime soon.
In case you are being held captive by a deadline, you might find the code below helpful. In your case, you would want to add the min dimension (mine was always zero for this job) and force the min/max difference to be evenly divisible by a reasonable increment (by)value.
proc summary data=ClaimDnomBars nway;
var pct;
output out=max max=;
run;
data _null_;
set max;
ceilpct=ceil(pct);
if ceilpct le 2 then do;call symput("max",2);call symput("incr",0.5);end;
else if ceilpct le 5 then do;call symput("max",5);call symput("incr",1);end;
else if ceilpct le 10 then do;call symput("max",10);call symput("incr",2);end;
else if ceilpct le 30 then do;max=round(ceilpct,10);
if max lt ceilpct then max+10;
call symput("max",max);call symput("incr",5);end;
else if ceilpct gt 30 then do;max=round(ceilpct,10);
if max lt ceilpct then max+10;
call symput("max",max);call symput("incr",10);
end;
run;