Suggest you share some code and explain exactly what error (or undesirable result) you are getting. When deriving SYMPUT, there are resolution issues that can occur, so you always want to end each DATA (and PROC for my own opinion) with a RUN; statement, so SAS performs the compilation up to the current point in the code execution, even within a macro.
Also, consider writing a general purpose (as in one resuable) macro and re-execute it as needed passing any necessary parameters.
Scott Barry
SBBWorks, Inc.