Précédent   Forum du club des développeurs et IT Pro > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 11/01/2013, 12h11   #1
ludivine666
Membre à l'essai
 
Femme
Inscription : octobre 2012
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : octobre 2012
Messages : 30
Points : 22
Points : 22
Par défaut Export vers Excel - nom des feuilles

Bonjour à tous et bonne année !

Voila, je vous explique mon problème. J'ai un fichier Excel contenant différentes feuilles de données (ou onglet si vous préférez).

Je souhaite tout simplement exporter vers ce fichier une table SAS, en supprimant dans un premier temps les données de la feuille. Voici le code que j'utilise :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
libname mny "d:\test.xls";
 
proc sql;
 DROP TABLE mny.historique;
quit;
 
DATA mny.historique;
 SET sasuser.TABLE;
run;
 
libname mny clear;

Le problème est que SAS ne trouve pas la feuille dans mon fichier Excel bien que cette feuille existe :

Code :
1
2
AVERTISSEMENT: Le fichier MNY.HISTORIQUE.DATA n'existe pas.
AVERTISSEMENT: Table MNY.HISTORIQUE n'a pas été supprimé(e).
Ensuite les données sont bien exportées mais dans une feuille qui se nomme automatiquement "historique1" (ajout d'un "1" après le nom de la feuille).

Incompréhensible...

Merci d'avance à ceux qui auraient une solution à ce petit souci !
ludivine666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2013, 17h07   #2
jmarandet
Membre du Club
 
Homme julien marandet
Ingénieur Statisticien
Inscription : janvier 2013
Messages : 28
Détails du profil
Informations personnelles :
Nom : Homme julien marandet
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur Statisticien
Secteur : Service public

Informations forums :
Inscription : janvier 2013
Messages : 28
Points : 54
Points : 54
Bonjour lidivine666

Essaye peut être avec un '$' à la fin du nom de la table.

Code :
1
2
3
proc sql;
 DROP TABLE mny.historique$;
quit;
jmarandet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2013, 17h11   #3
xav2229
Membre chevronné
 
Inscription : avril 2009
Messages : 613
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 613
Points : 650
Points : 650
Il manque "EXCEL" non?

libname XL EXCEL 'c:\_tmp\Classeur1.xls' access=readonly;

Apres attention aux noms des feuilles :

Code :
1
2
proc datasets lib=XL;
quit;
X
xav2229 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2013, 17h35   #4
ludivine666
Membre à l'essai
 
Femme
Inscription : octobre 2012
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : octobre 2012
Messages : 30
Points : 22
Points : 22
Merci jmarandet,

mais SAS n'a pas l'air d'apprécier ce symbole...

Code :
1
2
3
4
5
6
7
8
9
10
 
23   proc sql;
24    DROP TABLE MNY.HISTORIQUE$;
                                -
                                22
                                 -
                                 200
ERREUR 22-322: Erreur de syntaxe ; syntaxe requise : ;, (, ',', INDEX, TABLE, VIEW.
 
ERREUR 200-322: Le symbole n'est pas reconnu et sera ignoré.
Merci également à toi, xav2229 :

la proc datasets donne ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
              Répertoire
 
           Libref        MNY
          Moteur        EXCEL
       Nom physique  d:\test.xls
          Schema/Owner  Admin
 
                                       Type     DBMS
                                       de       Member
                 #  Nom                membre   Type
 
                 1  DONNEES$           DATA     TABLE
                 2  HISTORIQUE$        DATA     TABLE
                 3  HISTORIQUE1$       DATA     TABLE
Et l'ajout du mot clé "Excel" ne change pas la donne.
ludivine666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2013, 18h04   #5
datametric
Rédacteur
 
Homme Stéphane Colas
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 2 302
Détails du profil
Informations personnelles :
Nom : Homme Stéphane Colas
Âge : 40
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 2 302
Points : 5 540
Points : 5 540
je ne peux pas tester à ce moment.

j'utilise plutôt une proc DATASETS + DELETE que DROP TABLE
je mettrai :
Code :
1
2
3
4
proc datasets nolist nowarn nodetails lib=mny;
DELETE "historique"n;
run;
quit;
ou
Code :
1
2
3
4
proc datasets nolist nowarn nodetails lib=mny;
DELETE "historique$"n;
run;
quit;
concernant le LIBNAME non, SAS sait reconnaître que c'est un fichier xls, j'ai déjà vu que cela fonctionnait.
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 18/01/2013, 18h55   #6
Fabien G.
Membre régulier
 
Homme
Analyste - Information médicale
Inscription : mars 2012
Messages : 45
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Analyste - Information médicale
Secteur : Santé

Informations forums :
Inscription : mars 2012
Messages : 45
Points : 72
Points : 72
Bonjour,

j'espère que je dis pas de bétises, mais un proc export avec replace ferait pas l'affaire ?
Fabien G. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2013, 16h02   #7
datametric
Rédacteur
 
Homme Stéphane Colas
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 2 302
Détails du profil
Informations personnelles :
Nom : Homme Stéphane Colas
Âge : 40
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 2 302
Points : 5 540
Points : 5 540
non a ne gère pas bien les données externes à SAS
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2013, 17h37   #8
ludivine666
Membre à l'essai
 
Femme
Inscription : octobre 2012
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : octobre 2012
Messages : 30
Points : 22
Points : 22
Bonjour à tous et merci pour vos différentes réponses, mais je galère toujours autant avec ces noms de feuilles...

Une âme charitable peut-il tester le programme suivant avec un fichier Excel de base (un simple fichier avec 3 onglets nommés Feuil, Feuil2, Feuil3 issu d'un "fichier -> nouveau classeur -> enregistrer sous...") :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
LIBNAME WrkBk EXCEL "chemindufichierexcel";
 
PROC DATASETS LIB=WrkBk;
	DELETE Feuil1;
RUN;
QUIT;
DATA WrkBk.Feuil1;
	SET sashelp.class;
RUN;
LIBNAME WrkBk CLEAR;
De mon coté, ce code me créé un onglet nommé Feuil11 avec les données du dataset sashelp.class...

Et pour vous cela donne quoi ? Ne me dites pas que je suis la seule
Merci encore.
ludivine666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 18h59.


 
 
 
 
Partenaires

Hébergement Web