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 27/06/2011, 14h37   #1
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 75
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : Service public

Informations forums :
Inscription : avril 2011
Messages : 75
Points : 11
Points : 11
Par défaut Problème pour exporter des données sous Excel

Bonjour à tous,

malgré le temps magnifique d'aujourd'hui,
je dois mettre en place un dossier et pour cela réaliser une exportation de plusieurs tableaux SAS dans différents onglets du même classeur mais voilà malgré mais recherche je n'arrive pas a comprendre ou mon programme bloque.

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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/*****************************************/
                        /* Construction Etude fiche signalétique */
                        /*****************************************/
 
 
%macro compar(var,var2) ;/*var =secteur
                           var2 =enseigne*/
 
/* choix de l'étude 
        _modifier variable d'étude (1)*/
 
DATA tableETUDE (keep=numind cle vague poids  agec5 pcsc8 statfc npf stat 
revenu aglo5 uda8 /*rajouter var */&var. &var2./*(1)*/);
SET donnees.foyer1_dfile (WHERE=(vague=4));
run;
 
/*ajout de la variable popfr permettant la comparaison avec l'autre pop */
/*etude*/
DATA tableETUDE  ;SET tableETUDE  ;
    attrib popfr label = "popfr" format = 8. ;popfr =1 ;
run ;
 
                        /***********************************************/
                        /*création de la table contenant les résultats */
                        /***********************************************/
 
 
proc means DATA= tableETUDE nway noprint ;
    var popfr / weight = poids ;
    class  agec5 pcsc8 statfc npf stat revenu aglo5 uda8 ; 
    /*rajout de variables possibles*/
        output out = popstatfr (DROP = _type_ _freq_) sum= ;
run;
 
/*ajout d'une variable num afin de faciliter la concaténation des 3 tables */
DATA popnumfr ;
SET popstatfr ;
    attrib num
    label="numéro" ;
    num=_N_ ;
run ;
 
/*création de la table contenant les résultats secteur*/
    proc means DATA= tableETUDE nway noprint;
        var &var.  / weight = poids ;
        class  agec5 pcsc8 statfc npf stat revenu aglo5 uda8 ;
        /*c'est à cet endroit qu'il faut rajouter des var*/
            output out = popstat&var. (DROP = _type_ _freq_) sum= ;
    run ;
 
/*ajout d'une variable num afin de faciliter la concaténation des 3 tables */
    DATA popnum&var. ;
    SET popstat&var. ;
        attrib num
        label="numéro" ;
        num=_N_ ;
    run ;
 
/*création de la table contenant les résultats pour l'enseigne*/
    proc means DATA= tableETUDE nway noprint;
        var &var2.  / weight = poids ;
        class  agec5 pcsc8 statfc npf stat revenu aglo5 uda8 ;
        /*c'est à cet endroit qu'il faut rajouter des var*/
            output out = popstat&var2. (DROP = _type_ _freq_) sum= ;
    run ;
 
/*ajout d'une variable num afin de faciliter la concaténation des 3 tables */
    DATA popnum&var2. ;
    SET popstat&var2. ;
        attrib num
        label="numéro" ;
        num=_N_ ;
    run ;
 
    /*concaténation des résultats obtenus par les proc means*/
    DATA poptot ; 
        merge popnum&var. 
              popnum&var2. 
              popnumfr ;
        BY num ;
    run ;
 
                        /***********************************************/
                        /*  construction des tableaux de comparaisons  */
                        /***********************************************/
 
    /*TABLEAU SOCIO-DEMO*/
 
proc tabulate DATA = poptot out= socio;
    class  agec5 pcsc8 statfc npf stat revenu aglo5 uda8 ;
        /*c'est à cet endroit qu'il faut rajouter des var*/
    var popfr &var. &var2.;
    TABLE (agec5 pcsc8 statfc npf stat revenu aglo5 uda8),( popfr &var. &var2.)*pctsum ;
run ;
 
 
    %compar (var=m_p3_1,var2=m_p3_5) ;/**/
 
/*chemin de sortie vers le fichier Excel*/
 
Libname bureau 'C:\Documents and Settings\Donan\Bureau';
 
                        /***********************************************/
                        /*    intégration des données sas sous Excel   */
                        /***********************************************/
 
 
dm "winexecfile ""C:\Documents and Settings\Donan\Bureau\code1.xls"" "; 
 
/*export tableau socio*/
 
Filename PSD dde 'excel|[code.xls]PSD!l11c6:l55000c8';
 
DATA PSD;    
file PSD;    
  SET socio ;  
  put popfr_PctSum_00000000 m_p3_1_PctSum_00000000 m_p3_5_PctSum_00000000 ;
 run;
c'est quand je lance cette dernière étape(data psd) data que SAS plante.
pouvez vous m'aider
antoine2933 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 15h07   #2
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

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

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
Les spécialistes du DDE auront besoin de messages d'erreur.

Toutefois, pourquoi ne pas utiliser la proc EXPORT ?
Quelle version de Windows et 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 27/06/2011, 15h12   #3
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 75
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : Service public

Informations forums :
Inscription : avril 2011
Messages : 75
Points : 11
Points : 11
version Excel 2003
sas 9.1.3

je dois garder la structure de mon fichier Excel et les données que je veux exporter doivent se retrouver a une place définie et pour ça il me semble qu'il n'y a que le lien dde.

[Oups]

concernant les lignes d'erreur je n'en ai aucune sas plante avant que je n'ai pu voir le journal
antoine2933 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 15h40   #4
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
Est-ce que ça ne serait pas une variante de "Excel est encore en train de démarrer que SAS est déjà en train de cracher de la donnée" ?
Essaye de rajouter
Code :
1
2
3
DATA _NULL_ ;
patience = SLEEP(10,1) ;
RUN ;
entre ton DM et l'étape DATA d'export proprement dit.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 15h58   #5
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 75
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : Service public

Informations forums :
Inscription : avril 2011
Messages : 75
Points : 11
Points : 11
je viens d'essayer sas se met bien en pause pendant 10 sec mais après ça SAS ne répond pas je suis obligé de le fermer c'est décourageant il me semble avoir utiliser un code semblable il y a qq temps et sa marché trés bien
antoine2933 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 16h03   #6
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
Hello,
ton fichier excel s'ouvre ou pas ?
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 16h08   #7
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : avril 2011
Messages : 75
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : Service public

Informations forums :
Inscription : avril 2011
Messages : 75
Points : 11
Points : 11
oui il s'ouvre bien

dm "winexecfile ""C:\Documents and Settings\Donan\Bureau\code1.xls"" ";

Filename PSD dde 'excel|C:\Documents and Settings\Donan\Bureau\[code1.xls]PSD!l11c6:l55000c8';

tout marche jusque là c'est quand je fais tourner l'étape data que tout plante
antoine2933 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 10h17   #8
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

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

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
Peux-tu indiquer la version précise de SAS (Aide > A propos de > Info Site)

Quelle version de Windows ?

Peux-tu prendre un exemple sur le site du support et valider qu'il fonctionne ?
__________________
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 28/06/2011, 10h55   #9
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 Macro DDE

Salut Antoine,
Ci-dessous une macro et le fichier Excel en pièce jointe qui va avec...

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
DM LOG 'clear';
dm log "color warning green reverse" continue;
dm log "color error orange reverse" continue;
 
x 'cd C:\Program Files\Microsoft office\OFFICE11';
x 'excel.exe';
options noxwait noxsync;
 
DATA _NULL_;
	x=sleep(5);
RUN;
 
filename cmd dde 'excel|system';
 
 
DATA _NULL_;
	file cmd;
	put "[ERROR(false)]"; /* Pour éviter message sur MàJ */
	put '[open("C:\Documents and Settings\BEARE\Bureau\Shoes.xls")]'; 
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.Shoes,onglet=Shoes);
 
DATA _NULL_ ;
    file cmd ;
    put "[SAVE()]";
    put "[CLOSE()]";
	put "[QUIT()]";
run ;
Fichiers attachés
Type de fichier : xls Shoes.xls (13,5 Ko, 8 affichages)
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 11h01   #10
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
Une remarque sur ton code Brice : il intègre le chemin de EXCEL.EXE et doit donc être changé selon la version d'Excel.
Une alternative serait de faire, avec une seule commande X
Le défaut de cette manière de faire est qu'on ne maîtrise pas la version d'Excel qui est démarrée (en cas de versions multiples, 2003+2010 par exemple) ; mais ça ne doit rien changer au fonctionnement du DDE en tout cas.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 11h16   #11
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
Merci Olivier, j'ai donc modifié le code

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
DM LOG 'clear';
dm log "color warning green reverse" continue;
dm log "color error orange reverse" continue;
 
 
X "START EXCEL" ;
 
options noxwait noxsync;
 
DATA _NULL_;
	x=sleep(5);
RUN;
 
filename cmd dde 'excel|system';
 
 
DATA _NULL_;
	file cmd;
	put "[ERROR(false)]"; /* Pour éviter message sur MàJ */
	put '[open("C:\Documents and Settings\BEARE\Bureau\Shoes.xls")]'; 
run;
 
 
%MACRO DDE(table1=,onglet=);
 
X "&fic_xl";
 
	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.Shoes,onglet=Shoes);
 
DATA _NULL_ ;
    file cmd ;
    put "[SAVE()]";
    put "[CLOSE()]";
	put "[QUIT()]";
run ;
MEGAMIND2 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 01h57.


 
 
 
 
Partenaires

Hébergement Web