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.


SommaireReporting et ODSMicrosoft EXCEL (6)
précédent sommaire suivant
 

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;

Mis à jour le 1er mars 2008 fafabzh6

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*/
Ce programme copie les données de la table bidon1 dans la feuille1 du fichier classeur1.xls sur les cellules allant de L1C1 à L20C10.

Mis à jour le 1er mars 2008 fafabzh6

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;

Mis à jour le 10 octobre 2008 Oncle_Pete

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;

Mis à jour le 10 octobre 2008 Oncle_Pete

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;
Pour exporter des données vers Excel avec la procédure EXPORT, il est nécessaire d'avoir une licence pour le module SAS/Access to PC File Formats.

Mis à jour le 10 octobre 2008 sas

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. ».

Mis à jour le 10 octobre 2008 sas

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 ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les 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 © 2020 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.