Bonjour,

J'essaie d'automatiser des traitements de données visant à mettre à jour un fichier Excel mensuellement.

La macro existe déjà sous SAS et fait appel à ce fichier contenant une macro s'exécutant à l'ouverture du fichier pour importer des données issue de fichiers .txt dans la bonne feuille.

Cette macro ce lance parfaitement lorsque je la lance depuis une session SAS ouvert.

J'ai créé un fichier script (export_reactivation.bat) faisant appel à cette macro.

Le problème est que l'ouverture du fichier excel ne marche pas avec cette méthode.

Le but final étant de créer une tâche planifiée pour lancer le script mensuellement.

Voici la macro d'export :

Code sas : 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
 
 
/* EXPORT */
%macro export_rfm;
		PROC EXPORT DATA= total0    OUTFILE= "E:\02 Segmentations\01 RFM\COMMUN\DATA\base0.txt"       DBMS=csv REPLACE;delimiter=';';			RUN;
		PROC EXPORT DATA= total1    OUTFILE= "E:\02 Segmentations\01 RFM\COMMUN\DATA\base1.txt"       DBMS=csv REPLACE;delimiter=';';			RUN;
		PROC EXPORT DATA= total2    OUTFILE= "E:\02 Segmentations\01 RFM\COMMUN\DATA\base2.txt"       DBMS=csv REPLACE;delimiter=';';			RUN;
		PROC EXPORT DATA= total3    OUTFILE= "E:\02 Segmentations\01 RFM\COMMUN\DATA\base3.txt"       DBMS=csv REPLACE;delimiter=';';			RUN;
		PROC EXPORT DATA= total4    OUTFILE= "E:\02 Segmentations\01 RFM\COMMUN\DATA\base4.txt"       DBMS=csv REPLACE;delimiter=';';			RUN;
		PROC EXPORT DATA= total5    OUTFILE= "E:\02 Segmentations\01 RFM\COMMUN\DATA\base5.txt"       DBMS=csv REPLACE;delimiter=';';			RUN;
		PROC EXPORT DATA= total6    OUTFILE= "E:\02 Segmentations\01 RFM\COMMUN\DATA\base6.txt"       DBMS=csv REPLACE;delimiter=';';			RUN;
 
		option noxwait xsync;
		%if &bu = MIDFRA or &bu =NORESP %then %do;
				dm "winexecfile ""E:\02 Segmentations\01 RFM\COMMUN\DATA\MODELE_REPORTING_INIT_RFM_MIDFRA.xlsm"" ";
		%end;
		%else %do;%if &bu = NORARG %then %do;
 
				* CODE HABITUEL POUR OUVRIR LE MODELE EXCEL ;
				dm "winexecfile ""E:\02 Segmentations\01 RFM\COMMUN\DATA\MODELE_REPORTING_INIT_RFM_NORARG.xlsm"" "; 	
 
 
				%end;%else %do;
				dm "winexecfile ""E:\02 Segmentations\01 RFM\COMMUN\DATA\MODELE_REPORTING_INIT_RFM.xlsm"" "; 
				%end;
		%end;
		X "cd E:\02 Segmentations\01 RFM\COMMUN\DATA";X "del base0.txt";
		X "cd E:\02 Segmentations\01 RFM\COMMUN\DATA";X "del base1.txt";
		X "cd E:\02 Segmentations\01 RFM\COMMUN\DATA";X "del base2.txt";
		X "cd E:\02 Segmentations\01 RFM\COMMUN\DATA";X "del base3.txt";
		X "cd E:\02 Segmentations\01 RFM\COMMUN\DATA";X "del base4.txt";
		X "cd E:\02 Segmentations\01 RFM\COMMUN\DATA";X "del base5.txt";
		X "cd E:\02 Segmentations\01 RFM\COMMUN\DATA";X "del base6.txt";
 
		proc datasets lib=work memtype=data nolist;delete total0 total1 total2 total3 total4 total5 total6 total; run;
 
%mend export_rfm;

Lorsque je consulte le fichier log.log aucun message n'apparait à l'exécution de la commande : dm "winexecfile ""E:\02 Segmentations\01 RFM\COMMUN\DATA\MODELE_REPORTING_INIT_RFM_NORARG.xlsm"" ";

Existe-t-il un autre moyen de faire appel à un modèle excel ?