FAQ SASConsultez toutes les FAQ
Nombre d'auteurs : 13, nombre de questions : 308, dernière mise à jour : 5 avril 2016 Ajouter une question
Cette F.A.Q., qui traite de tout type de questions portant sur l'outil SAS, a été réalisée à partir des contributions des membres des forums sas de developpez.com en vue de répondre à des questions fréquemment posées par les utilisateurs et grâce à SAS France qui a bien voulu nous donner accès à ses sources.
Si vous désirez contribuer à l'amélioration de cette F.A.Q., vous pouvez participer au billet de participation à l'enrichissement de la faq SAS , ou contacter le responsable SAS , ou contacter un des responsables de l'équipe Business Intelligence .
Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions. Nous vous souhaitons une bonne lecture.
L'équipe SAS de developpez.com remercie les contributeurs actuels : ash_rmy , bahraoui , datametric , fafabzh6 , Fleur-Anne.Blain , green_fr , oncle_pete , raf64flo , rastoix , s_a_m et steelspirit .
L'équipe SAS de developpez.com remercie aussi claudeLeloup et jacques_jean pour leurs relectures attentives de la F.A.Q. dans le but de chasser les fautes d'orthographes.
- Comment ouvrir une feuille Excel depuis SAS ?
- Comment insérer des valeurs dans une feuille Excel ?
- Comment lire des données depuis un fichier Excel ?
- Comment écrire des valeurs saisies depuis une fenêtre SAS Windows et les mettre à jour dynamiquement dans Excel ?
- Comment exporter chaque table d'une bibliothèque dans un classeur Excel ?
- Comment forcer l'importation des dates de fichiers Excel en format « datetime.» ? (SAS 9)
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 | %macro ouvre_excel; options noxwait noxsync; %LET tit1=%str(C:\) %LET tit2=%str(classeur1.xls); %LET titre=%str("&tit1&tit2); X &titre; data _null_; rc = sleep(2); run; %mend; %ouvre_excel; |
Avant toute chose, il faut ouvrir le fichier Excel (cf. : comment ouvrir une feuille Excel).
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | DATA bidon1; input X1 X2 Y1 Y2 X5 $; cards; 78 5 5 1161 ABÉLIEN 35 6 3 1336 ALMÉRIC 82 1 5 1499 ANIEL ; run; %LET tit1=%str(excel|D:\blablbla\[Traitement_ACN.xls]P0IC1625!L6C1); %LET tit2=%str(:L20C10); %LET titre=%str(%sysfunc(compress('&tit1&tit2'))); options mprint symbolgen; filename write1 DDE "&titre"; DATA _null_; file WRITE; SET work.bidon1; put X1 '09'x X2 '09'x Y1 '09'x Y2 '09'x X5 '09'x; run; /*"'09'x" correspond au caractère tabulation*/ |
On est censé lire les données depuis l1c1 jusqu'à l15c2. En réalité, les données vont de l5c1 jusqu'à l9c2.
'09'x est la valeur hexadécimale de la tabulation.
NOTAB informe SAS de ne pas convertir les tabulations en valeurs manquantes.
DSD informe SAS que deux délimiteurs consécutifs doivent être considérés comme une valeur manquante.
MISSOVER informe SAS de ne pas aller à la ligne s'il trouve une valeur manquante.
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 | Filename fic dde 'excel|c:\exemples\essaidde.xls!l1c1:l15c2'; DATA FromXL INFILE fic dlm='09'x notab dsd missover input miles kilometres run; |
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Filename xlsfile dde 'excel|G :\test.xls!l1c1:l1c3'; DATA MyDS; /* déclaration de la fenêtre SAS Windows)*/ IF _n_ = 1 then do; Window MaFenetre color = black #3 'Ceci est la valeur de la ligne 1 colonne 1' c = cyan +2 var1 $10. c = orange #5 'Ceci est la valeur de la ligne 1 colonne 2' c = cyan +2 var2 $10. c = orange #7 'Ceci est la valeur de la ligne 1 colonne 3' c = cyan +2 var3 $10. c = orange; end; /* écriture dans Excel des valeurs saisies */ flsh = '!DDE_FLUSH'; file xlsfile; do while (upcase(_cmd_) ne 'STOP'); display MaFenetre; put var1 var2 var3 flsh; output; var1=''; var2=''; var3=''; end; stop; run; |
Le macroprogramme ci-dessous exporte chaque membre de type DATA d'une bibliothèque.
Liste des paramètres :
· MYLIB : nom de la bibliothèque où sont stockées les tables SAS ;
· MYDIR : nom du répertoire où seront stockés les fichiers MS Excel.
Code sas : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | %MACRO M_EXPORT (MyLib=, MyDir=); data _null_ ; set sashelp.vtable (where=(libname=compress(upcase("&MyLib")))) ; call execute ("PROC EXPORT DATA=" !! compress(libname !! '.' !!memname) !! " OUTFILE='&MyDir" !! compress(memname !! ".XLS'") !! " DBMS=EXCEL2000 REPLACE ; RUN ;") ; run ; %MEND M_EXPORT; |
Utiliser la fonction USEDATE= NO, comme dans l'exemple ci-dessous :
Code sas : | Sélectionner tout |
1 2 3 | proc import out=matable datafile='c:\fichierExcel.xls'; usedate=no; run ; |
Remarques
- Par défaut, USEDATE=YES : les dates seront importées en format « date9. ».
- USEDATE=NO : les dates seront importées, comme en version 8.2, à savoir en format « datetime. ».
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.