ludolitaliano | Bonjour,
Je souhaiterais ensuite réaffecter une valeur à la variable &MyVarOut (qui représente une variable de la table titi) en fonction de &type. J'utilise un SYMGET mais ça ne marche pas.
Code :
- data titi;
- set toto;
- %TestsFormat(code, 'NUM', '1','3', code_);
- run;
|
Code :
- %Macro TestsFormat(MyVarIn, MyType, MyvalueOk, MyValueNok, MyVarOut) / store;
- %verif_num_char_date(&MyVarIn);
- /* &type est attribuée et calculée dans la macro verif_num_char_date */
- %If &type ne &MyType %Then &MyVarOut=symget("MyValueNok" ); %Else &MyVarOut=symget("MyValueOk" );
- %Mend;
|
Code :
- %macro verif_num_char_date(MyVar);
- %global type;
- DATA _NULL_;
- var=input("&MyVar" ,?? COMMA8.);
- IF var ne . then call symput('type','NUM');
- ELSE do;
- var=input("&MyVar",ANYDTDTM.);
- if var ne . then call symput('type','DAT');
- else call symput('type','CHAR');
- end;
- run;
- /*%put &type;*/
- %mend;
|
La ligne % Code :
- %If &type ne &MyType %Then &MyVarOut=symget("MyValueNok" ); %Else &MyVarOut=symget("MyValueOk" );
|
de la macro %TestsFormat génère l'erreur Citation :
NOTE: Ligne générée par la variable macro "MYVAROUT".
1 code_
-----
180
ERREUR 180-322: Instruction incorrecte ou mal utilisée.
|
Si quelqu'un a une idée je suis preneur.
Merci.
|