cayenne
7 févr. 2008 à 10:01
Bonjour,
J'ai effectivement adapté le temps, je l'ai passé à 60 secondes (ci-dessous). Si excel n'est pas déjà ouvert, il n'arrive pas à trouver le fichier source ("ERREUR: Le fichier physique n'existe pas, excel|system."). Lorsque excel est ouvert, et malgré un temps allongé, il m'affiche toujours le même message d'erreur :
ERREUR: Session DDE n'est pas prête.
FATAL: Erreur d'E/S non réparable détectée lors de l'exécution du programme
étape data. Interrompu pendant la phase EXECUTION.
NOTE: Le Système SAS a interrompu le traitement de cette étape en raison
d'erreurs.
(la log est détaillée ci-dessous également).
Est-ce que ça ne peut pas venir d'un défaut de module ? Je n'ai que le module SAS PERSONAL ANALYTICS...
Merci par avance.
/******************** PROGRAMME ****************/
libname x 'C:\table.sas7dbat';
options pagesize = 60 linesize = 80;
options nodate;
run;
options noxwait noxsync;
x 'C:\Program Files\Microsoft Office\Office10\excel.exe'; /* LE CHEMIN D'ACCES EST à MODIFIER par l'emplacement de votre votre exécutable excel (c:/program files etc...) c'est le chemin que sas doit suivre pour ouvrir Excel*/
data _null_;
sleep=mcipislp(60);
run;
filename cmds dde 'excel|system'; /* NE rien changer */
data _null_;
file cmds;
put '[open("C:\test_sas.xls")]'; /*Indiquer le chemin complet et le nom du fichier que vous souhaitez importer si SAS ne le trouve un message apparaitra dans le log et la message box de excel comme quoi le fichier n'existe pas */
run;
filename test dde 'excel|Feuil1!r1c1:r4c4' ;
/* "Fusion_crash" est à modifier par le nom de la feuille si vous ne l'avez pas renomé ce sera bien souvent ("feuille1" ou "sheet1")
r2c1:r38c3 : la plage de cellules à récupérer r pour row, c pour column , bien penser à ne pas oublier le ' juste après le 3 dan l'exemple
Lrecl si omis par défaut 256 le modifier si la longeur de l'enregistrement dans votre cellule excel est supérieur */
data x.lorraine; /* Nom de la table ici z , ne pas oublier d'alouer la librairie sinon l'importer dans work */
attrib
reg length=$5
dep length=$5
CG length=$5
LIBGEO length=$50 ;
infile test dlm='09'x notab dsd truncover pad; /* NE RIEN CHANGER */
input
reg $
dep $
CG $
LIBGEO $;
run;
filename cmds dde 'excel|system'; /* NE RIEN CHANGER */
data _null_; /*NE RIEN CHANGER Pour refermer Excel */
file cmds;
put '[quit()]';
run;
/*******************LOG*************/
61 options noxwait noxsync;
62 x 'C:\Program Files\Microsoft Office\Office10\excel.exe'
62 ! ; /* LE CHEMIN
62 ! D'ACCES EST à MODIFIER par l'emplacement de votre votre exécutable excel
62 ! (c:/program files etc...) c'est le chemin que sas doit suivre pour ouvrir
62 ! Excel*/
63
64 data _null_;
65 sleep=mcipislp(60);
66 run;
NOTE: L'étape DATA a utilisé (Durée totale du processus) :
temps réel 1:00.02
temps processeur 0.32 secondes
67 filename cmds dde 'excel|system'; /* NE rien changer */
68
69 data _null_;
70 file cmds;
71 put '[open("C:\test_sas.xls")]'; /*Indiquer le chemin complet et le nom du
71 ! fichier que vous souhaitez importer si SAS ne le trouve un message
71 ! apparaitra dans le log et la message box de excel comme quoi le fichier
71 ! n'existe pas */
72 run;
NOTE: Le fichier CMDS est :
Session DDE,
SESSION=excel|system,RECFM=V,LRECL=256
NOTE: 1 enregistrement copié dans le fichier CMDS.
La longueur min. de l'enregistrement était 25.
La longueur max. de l'enregistrement était 25.
NOTE: L'étape DATA a utilisé (Durée totale du processus) :
temps réel 0.29 secondes
temps processeur 0.01 secondes
73
74 filename test dde 'excel|Feuil1!r1c1:r4c4' ;
75 data x.lorraine; /* Nom de la table ici z , ne pas oublier d'alouer la
75 ! librairie sinon l'importer dans work */
76 attrib
77 reg length=$5
78 dep length=$5
79 CG length=$5
80 LIBGEO length=$50 ;
81 infile test dlm='09'x notab dsd truncover pad; /* NE RIEN CHANGER */
82
83 input
84 reg $
85 dep $
86 CG $
87 LIBGEO $;
88 run;
NOTE: L'infile TEST est :
Session DDE,
SESSION=excel|Feuil1!r1c1:r4c4,RECFM=V,
LRECL=256
ERREUR: Session DDE n'est pas prête.
FATAL: Erreur d'E/S non réparable détectée lors de l'exécution du programme
étape data. Interrompu pendant la phase EXECUTION.
NOTE: Le Système SAS a interrompu le traitement de cette étape en raison
d'erreurs.
AVERTISSEMENT: La table X.LORRAINE est peut-être incomplète. Lorsque cette
étape a été stoppée, il y avait 0 observations et 4 variables.
AVERTISSEMENT: Table X.LORRAINE non remplacée car cette étape a été interrompue.
NOTE: L'étape DATA a utilisé (Durée totale du processus) :
temps réel 0.07 secondes
temps processeur 0.05 secondes
Je n'arrive pas à convertir. Pouvez-vous s'il vous plaît me donner un exemple en prenant par exemple ce tableau Excel (vers SAS)