Salut à tous !
Tout est dans le titre : je voudrais exporter plusieurs tables sas que j'ai en sortie d'un programme sur une seule feuille excel, mais dans des plages cellules précises. En cherchant un peu sur le net j'ai trouvé un code comme celui-là, où il suffit apparemment de créer un gabarit du type de la feuille excel qu'on veut remplir, en appelant les plages de cellules à remplir Zone_Data par exemple dans notre fichier excel :
Mais cela ne marche pas tout à fait bien, notamment le message d'erreur suivant apparaît dans la log :
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 %MACRO export_estim(OUTPUT=); /*D'abord on copie le gabarit qu'on a sauvegardé*/ FILENAME _INPATH "Chemin inpath"; FILENAME _OUTPATH "Chemin outpath"; DATA _NULL_; INFILE _INPATH(Gabarit Test.xls)RECFM=N; INPUT CAR $CHAR1. @@; FILE _OUTPATH(Copie du Gabarit Test.xls) RECFM=N; PUT CAR $CHAR1. @@; RUN; FILENAME _INPATH CLEAR; FILENAME _OUTPATH CLEAR; /*Puis on efface la zone remplie fictivement, étape qui sert à avoir le format d'écriture excel*/ LIBNAME WORKBOOK EXCEL "&OUTPUT\Copie du Gabarit Test.xls" SCANTEXT=NO SCANTIME=YES; PROC DATASETS LIBRARY=WORKBOOK NOLIST; DELETE "Zone_Data"N; /* Sensible à la casse */ QUIT; /*Puis on remplit la zone avec notre table*/ DATA WORKBOOK."Zone_Data"N; SET Premiere_table_SAS_a_exporter(DROP=var_1); RUN; LIBNAME WORKBOOK CLEAR; %MEND;
A priori cela serait du à la dernière instruction du code, où on veut remplir la plage de cellules.ERROR: La MS Excel table Zone_Data a été ouverte en SORTIE. Cette table existe déjà, ou bien il y a un conflit
de nom avec un objet existant. Cette table ne sera pas remplacée. Ce moteur ne prend pas en charge
l'option REPLACE.
Avez-vous une idée de comment modifier ce code ? (et de me l'expliquer un peu parce-que j'avoue ne pas tout comprendre... ) Ou alors quelque chose de plus simple ?
Merci de votre aide !
Partager