Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > ODS et reporting
ODS et reporting Forum d'entraide sur les fonctionnalités de reporting de SAS : gérer les sorties et graphiques de SAS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/05/2011, 17h26   #1
Invité régulier
 
Femme
Inscription : mai 2011
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 30
Points : 6
Points : 6
Par défaut Automatisation de la sortie SAS avec un modèle EXCEL

Bonjour,

Je souhaiterais savoir s'il était possible de d'exporter une table SAS vers un fichier EXCEL, tout en utilisant un "modèle de tableau EXCEL" ?
Je m'explique :

Je voudrais que la mise en forme sois automatique pour la sortie EXCEL de SAS.
Par exemple que cette ligne :
aaaaa bbbbb ccccc ddddd soit TOUJOURS mise en forme lorsque j'exporte mon fichier SAS comme cela : aaaaa bbbbb ccccc ddddd

J'espère que vous aurez compris mon problème, et me dire si au moins c'est possible !

En espérant avoir une réponse,
Merci les gens !
marion.bouilly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 18h48   #2
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Par défaut DDE

Faudrait que tu passes par des liens DDE, tu dois avoir une maquette Excel avec la structure (notamment la couleur, la police, etc...) de ton fichier prédéfini et tu demande à SAS d'alimenter tes plages de données à partir de ta table SAS.
Si le concept te convient, il y a plus qu'a demander, je te filerai la macro.
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 09h39   #3
Invité régulier
 
Femme
Inscription : mai 2011
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 30
Points : 6
Points : 6
Bonjour Megamind2,

Le concept m'intéresse fortement, puisque c'est ce que je recherche ! .
Donc, si tu peux m'offrir généreusement cette macro, je t'en serai reconnaissante ! .

Merci bcp !
Marion
marion.bouilly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 10h04   #4
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Bonjour,
Voici donc la macro ainsi qu'un exemple de fichier Excel que tu vas enregistrer dans le repertoire
Code :
C:\Documents and Settings\MARION\Bureau 
s'il existe. J'ai déjà colorié comme un gamin certaines plages mais tu peux changer les couleurs à ta guise.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/* Spécifiez le repertoire où se trouve la maquette Execel*/
 
%LET dir=C:\Documents AND Settings\MARION\Bureau;
 
/* Sépifiez le nom du fichier Excel*/
 
%LET nom_maquette=Shoes;
 
 
options noxwait noxsync;
 
filename sys dde "Excel|system";
 
 
DATA _NULL_ ;
    length FID RC STOP 8 ;
    FID = FOPEN("SYS","S");                        
    IF FID = 0 then do ;                            
        RC = SYSTEM("start excel");                 
        STOP = datetime() + 10 ;                    
        do while (FID = 0) ;                        
            FID = FOPEN("SYS","S");                 
            IF (Datetime() > STOP) then FID = 1 ;   
        end ;
    end ;
    RC = fclose(FID);
run ;
 
 
 
DATA _null_;
    file SYS;
    put "[ERROR(false)]";
    put "[open(""&dir.\&nom_maquette..xls"",,TRUE)]";
 
run;
 
 
%MACRO DDE(table1=,onglet=);
 
 
	proc contents DATA=&table1. out=name noprint;
		run;
		proc sort DATA=name;
		BY varnum;
	run;
 
	DATA name;
		SET name;
		separ=compress("'09'"!!" "!! "X");
		var=compress(quote(name))!!"  "!!separ;
		var2=compress(name)!!"  "!!separ;
	run;
 
	proc sql noprint;
		SELECT var INTO: l separated BY " " FROM name;
		SELECT var2 INTO: l2 separated BY " " FROM name;
	quit;
	%put l=&l.;
 
	filename test2  dde "Excel|&onglet!l2C1:l999C99"  notab lrecl=64000;
	filename test2n dde "Excel|&onglet!l1C1:l999C99" ;
 
	DATA _null_;
		file test2n;
		PUT &l. ;
	RUN;
 
	DATA _null_;
		SET &table1.;
		file test2;
		PUT &l2.; 
	RUN;
 
%MEND;
%DDE(table1=Sashelp.Class,onglet=Shoes);
 
 
/* Pour fermer le fichier*/
 
 
/*
DATA _NULL_ ;
    file cmd ;
    put "[SAVE()]";
    put "[CLOSE()]";
	put "[QUIT()]";
run ;
 
*/

N'hésite pas à me demander des explications si jamais tu comprends pas.
Fichiers attachés
Type de fichier : xls Shoes.xls (13,5 Ko, 23 affichages)
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 10h17   #5
Invité régulier
 
Femme
Inscription : mai 2011
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 30
Points : 6
Points : 6
je te remercie Megamind2 !
si j'ai besoin de quelques informations, je n'hésiterais pas à revenir vers toi !

Merci,
Marion
marion.bouilly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 10h51   #6
Invité régulier
 
Femme
Inscription : mai 2011
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 30
Points : 6
Points : 6
Salut !
Je reviens vite vers toi, parce que cette commande fait planter mon SAS !
Est-ce que tu saurais ce qu'il se passe ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
DATA _NULL_ ;
    length FID RC STOP 8 ;
    FID = FOPEN("SYS","S");                        
    IF FID = 0 then do ;                            
        RC = SYSTEM("start excel");                 
        STOP = datetime() + 10 ;                    
        do while (FID = 0) ;                        
            FID = FOPEN("SYS","S");                 
            IF (Datetime() > STOP) then FID = 1 ;   
        end ;
    end ;
    RC = fclose(FID);
run ;
Merci pour ton aide,
marion.bouilly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 11h13   #7
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Ouvre donc le fichier Excel et éxécute que le programme ci-dessous

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
options noxwait noxsync;
 
filename sys dde "Excel|system";
 
%MACRO DDE(table1=,onglet=);
 
 
	proc contents DATA=&table1. out=name noprint;
		run;
		proc sort DATA=name;
		BY varnum;
	run;
 
	DATA name;
		SET name;
		separ=compress("'09'"!!" "!! "X");
		var=compress(quote(name))!!"  "!!separ;
		var2=compress(name)!!"  "!!separ;
	run;
 
	proc sql noprint;
		SELECT var INTO: l separated BY " " FROM name;
		SELECT var2 INTO: l2 separated BY " " FROM name;
	quit;
	%put l=&l.;
 
	filename test2  dde "Excel|&onglet!l2C1:l999C99"  notab lrecl=64000;
	filename test2n dde "Excel|&onglet!l1C1:l999C99" ;
 
	DATA _null_;
		file test2n;
		PUT &l. ;
	RUN;
 
	DATA _null_;
		SET &table1.;
		file test2;
		PUT &l2.; 
	RUN;
 
%MEND;
%DDE(table1=Sashelp.Class,onglet=Shoes);
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 11h16   #8
Invité régulier
 
Femme
Inscription : mai 2011
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 30
Points : 6
Points : 6
Je viens de l'essayer et ça me le fait tjs planté ..

Quels modules SAS faut-il avoir pour pouvoir éxécuter ce genre de programme ?
marion.bouilly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 11h29   #9
Membre confirmé
 
Inscription : janvier 2010
Messages : 185
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 185
Points : 250
Points : 250
Bonjour Marion, tu auras tout intérêt à utiliser l'ods tagset excel pour ton problème. Fais une recherche sur ce forum et tu trouveras ton bonheur.

Sauf le respect de Mégamind2, DDE est une usine à gaz qui peut certes beaucoup mais qui est tombée en désuétude qui plus est.

SAS le remplace en 9.2 par le libname excel. Vois de ce côté là si l'ods ne te convient pas mais il faut avoir le module "access to pcfiles" et l'outil est assez limité...
sasadm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 11h34   #10
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
C'est quoi le méssage d'erreur dans la log Marion?
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 11h38   #11
Invité régulier
 
Femme
Inscription : mai 2011
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 30
Points : 6
Points : 6
Megamind2,
Je n'ai mm pas d'erreur dans la LOG vu que ça plante avant que je ne puisse la voir.

Sasadm,
Je vais également cherché dans la direction que tu m'as donné, vers l'ODS tagset EXCEL ! (Cela permet directement de créer la mise en forme de Excel avec la programmation SAS ?)

Merci à vous deux !
marion.bouilly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 11h42   #12
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 143
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 143
Points : 1 760
Points : 1 760
Je rejoins sasadm pour l'ods tagset. Tu peux par exemple utiliser une proc report et définir des couleurs spécifiques pour chacune des colonnes (donc, une couleur par define).

DDE, usine à gaz? Bon, c'est vrai, la technologie à un peu vieillit et demande une approche très manuelle, mais elle conserve une très grande utilité dans certains cas.
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 11h45   #13
Invité régulier
 
Femme
Inscription : mai 2011
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 30
Points : 6
Points : 6
Je vais donc regarder de plus prêt l'ODS TAGSET !
Mais c'est vrai que la DDE m'intéressait fortement, car il fallait juste créer le modèle sous EXCEL, et après importer les données dedans ! Le principé était très tentant !
Enfin, n'ayant que SAS/STAT, je ne sais pas si je peux réellement l'éxécuté !
marion.bouilly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 11h48   #14
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
ça sert beaucoup si l'on veut mettre à jour des graphiques.
quelqu'un pourrait testé le dernier code posté et me dire si ça fonctionne svp!. En tout cas ça fonctionne à merveille chez moi!
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 11h49   #15
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 143
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 143
Points : 1 760
Points : 1 760
Si normalement ca devrait marcher, mais la syntaxe DDE est parfois un peu casse tête... Avant de passer à l'ods tagset, assure toi que ta procédure de reporting (proc report, proc tabulate, proc print éventuellement, à voir pour les couleurs)
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 11h54   #16
Invité régulier
 
Femme
Inscription : mai 2011
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 30
Points : 6
Points : 6
Mais pour éxecuter la macro DDe, il faut quoi comme module SAS ? SAS/GRAPH ? SAS/STAT ? Les deux ? ou un autre ?
marion.bouilly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 11h56   #17
Invité régulier
 
Femme
Inscription : mai 2011
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 30
Points : 6
Points : 6
Manoutz,
Je dois m'assurer de quoi pour la "proc reporting, proc tabulate, proc print éventuellement, à voir pour les couleurs" ?
Je ne comprends pas !
marion.bouilly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 11h57   #18
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 143
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 143
Points : 1 760
Points : 1 760
Non a priori tout est dans sas base. Rien de bien méchant. Le problème semble plutot lié au dde. pour ma part, j'essaierai de passer par la proc report.
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 11h59   #19
Invité régulier
 
Femme
Inscription : mai 2011
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 30
Points : 6
Points : 6
Je t'avoue que là je me sens un peu perdue !
tu aurais un peu plus de tps pour m'expliquer ce que tu pense par rapport à la proc report ?
marion.bouilly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 12h02   #20
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 143
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 143
Points : 1 760
Points : 1 760
Les réponses se mélangent (le message 18 répond au 16). Je reviendrai totu à l'heure si personne n'a pu t'aider

a+
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h50.


 
 
 
 
Partenaires

Hébergement Web