|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : juin 2008 Messages : 35 ![]() |
Bonjour,
J'aimerai automatiser l'importation de plusieurs fichiers excel (excel 2002) dans SAS 9. J'ai essayé à partir d'une macro mais rien... voici mon code incorrect: Code :
P.S: pouvez-vous également m'expliquer le RSUBMIT svp Merci |
||
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Inscription : avril 2008 Messages : 233 ![]() |
1. Quel est le problème ? Qu'est-ce qui ne fonctionne pas ?
2. Fais attention, si tu veux importer plusieurs fichiers dans SAS il vaut mieux peut-être donner les noms différents aux tables résultat ? 3. rsubmit et endrsubmit sont deux instructions de SAS délimitant les blocs de code qui sera exécuter sur le serveur. Le code en dehors de ces instruction est exécuté sur le SAS local. |
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 482 ![]() |
A part un point-virgule manquant après %MEND, ça m'a l'air d'être du code correct. Maintenant, est-ce qu'il fait vraiment ce qu'on veut ? Si tu as plusieurs fichiers à importer, tu lances plusieurs fois ta macro, et dans la table SAS créée (WORK.NOM1), tu n'as que le contenu du dernier classeur Excel (puisqu'on ne change jamais de table en sortie et qu'il y a l'option REPLACE).
Si je peux suggérer une amélioration, ce serait d'ajouter un paramètre qui soit le nom de la table en sortie. Quant à avoir une macro-variable qui contient un chemin, pas de souci là-dessus en théorie. Enfin, RSUBMIT est une instruction qui indique à SAS que le code qui suit (jusqu'à ENDRSUBMIT) ne doit pas être exécuté sur le PC, mais sur une session SAS distante, démarrée sur un serveur (avec l'instruction SIGNON, parfois cachée dans l'Autoexec de la session SAS). Olivier |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : juin 2008 Messages : 35 ![]() |
pour le second paramètre je suis d'accord.
j'avais du mal noté quelque chose car maintenant ça fonctionne! tant mieux! merci |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : juin 2008 Messages : 35 ![]() |
par contre vous n'auriez pas d'autres solutions peut-être plus pratiques à me proposer?
Je veux en savoir un maximum sur SAS! merci |
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 482 ![]() |
Si tu es en version 9 de SAS, et que tu as plusieurs feuilles à importer (plutôt que plusieurs classeurs), tu peux faire un LIBNAME ... EXCEL vers le classeur.
Sinon, pour lire plusieurs classeurs, je ne vois rien de plus efficace que plusieurs proc Import. A la rigueur, on peut elles-mêmes les automatiser en collectant les noms de fichiers Excel dans un répertoire donné. Code :
|
||
|
|
00
|
|
|
#7 | |||
|
Invité régulier
![]() Inscription : juin 2008 Messages : 35 ![]() |
Citation:
Excusez mon ignorance mais à quoi ser CALL SYMPUT et DATA _NULL_ ? |
|||
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 482 ![]() |
DATA _NULL_ sert à faire une étape Data sans créer de table en sortie. On l'utilise pour faire des exports de fichiers plats (avec les instructions FILE et PUT), et pour créer des macro-variables (avec cette instruction CALL SYMPUT).
CALL SYMPUT prend une valeur dans une variable SAS et crée une macro-variable ; la syntaxe est CALL SYMPUT( nomMacroVariable, nomVariableSAS ). Cela permet de récupérer dynamiquement des valeurs pour que le programme s'adapte plus aisément aux données. Ici, l'idée serait au final de ne plus paramétrer que le répertoire. Code :
|
||
|
|
00
|
|
|
#9 |
![]() ![]() Inscription : septembre 2006 Messages : 1 973 ![]() |
__________________
Les balises code FAQ SAS Rubrique SAS Si vous souhaitez contribuer à la rubrique SAS, contactez-moi ou tout autre membre de l'équipe BI par MP. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com