Bonjour

J'ai un petit problème avec des macro-variables créées par des call symput qui se trouvent elles-mêmes dans des macros...
Normalement, si elles sont créées ainsi, il n'y a pas de soucis pour les réutiliser hors de la macro. Le problème que j'ai constaté, est que lorsqu'elles sont créées dans une boucle, elles ne peuvent être utilisées hors de la macro.

Voici mon code qui a pour but de récupérer les moyennes de mes données.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
data theta;
	input compteur1 lambdat;
	cards;
	1 2
	2 4
	3 6 
	4 8
	5 10
	6 12
	7 14
	8 16
	9 18
 
	;
run;
proc means data=theta noprint;
	class compteur1;
	var lambdat;
	output out=moy mean=moy;
run;
%macro macrovar();
	data _null_;
		set moy;
		if _n_=1 then call symput("esp",moy);
		call symput("nb",_n_-1);
	run;
	data _null_;
		set moy;
		%do i=2 %to &nb.;
			if _n_=&i. then call symput("esp"||left(_n_-1),moy);
		%end;
	run;
	%put &esp1.;
	%put &esp2.;
	%put &esp3.;
	%put &esp4.;
%mend;
%macrovar();
/*Ces macrovariables ne fonctionnent pas :(*/
%put &esp1.;
%put &esp2.;
%put &esp3.;
%put &esp4.;
/*Mais ces deux là fonctionnent!*/
%put &esp.;
%put &nb.;
Je vous remercie pour votre aide

Bonne journée!!