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
| /* Déclaration des macros-variables*/
%let lib= work_rm; /*Librairie où se situe la table SAS*/
%let rep= P:\Analyses diverses\Proc Export\; /* Répertoire du fichier Excel (cible) */
%let fic= honoraires.xls; /*Nom du fichier Excel*/
/* le premier paramètre (tab) est obligatoire. Par défaut, si la variable "feuil" n'est pas renseignée, la feuille
doit avoir le même nom que la table SAS. De plus, si la feuille n'existe pas, elle sera créée.*/
%macro export (tab,feuil);
%if &feuil= %then %let feuil=&tab.;
%let nomficq = %BQUOTE(")&rep.&fic.%BQUOTE(");
filename cmds DDE "EXCEL|SYSTEM";
options noxwait noxsync;
data _null_; /* Ouverture de Excel*/
rc=system('start excel');
run;
data _null_; /* Ouverture du fichier Excel*/
file cmds;
put "[open(&nomficq)]";
run;
filename zone_xls dde "excel|[&fic]&feuil.!L1C1:L65536C256" notab;
data _null_ ; /* la feuille est remise à blanc*/
file zone_xls ;
put " ";
run ;
data _null_; /* Sauvegarde + quitter Excel*/
file cmds ;
put "[Save()]";
put "[Quit()]";
run;
PROC EXPORT DATA=&lib..&tab.
OUTFILE="&rep.&fic."
DBMS=EXCEL REPLACE;
SHEET="&feuil.";
RUN;
%mend;
%export (tab=, feuil=); |
Partager