IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ODS et reporting Discussion :

Automatisation de la sortie SAS avec un modèle EXCEL


Sujet :

ODS et reporting

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 30
    Points : 21
    Points
    21
    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 !

  2. #2
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    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.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    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

  4. #4
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    Bonjour,
    Voici donc la macro ainsi qu'un exemple de fichier Excel que tu vas enregistrer dans le repertoire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 Fichiers attachés

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

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

    Merci,
    Marion

  6. #6
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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,

  7. #7
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    Ouvre donc le fichier Excel et éxécute que le programme ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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);

  8. #8
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    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 ?

  9. #9
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    235
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 235
    Points : 372
    Points
    372
    Par défaut
    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é...

  10. #10
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    C'est quoi le méssage d'erreur dans la log Marion?

  11. #11
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    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 !

  12. #12
    Membre chevronné
    Homme Profil pro
    Biostatisticien
    Inscrit en
    Juin 2009
    Messages
    1 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 206
    Points : 1 868
    Points
    1 868
    Par défaut
    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.

  13. #13
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    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é !

  14. #14
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    ç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!

  15. #15
    Membre chevronné
    Homme Profil pro
    Biostatisticien
    Inscrit en
    Juin 2009
    Messages
    1 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 206
    Points : 1 868
    Points
    1 868
    Par défaut
    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)

  16. #16
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    Mais pour éxecuter la macro DDe, il faut quoi comme module SAS ? SAS/GRAPH ? SAS/STAT ? Les deux ? ou un autre ?

  17. #17
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    Manoutz,
    Je dois m'assurer de quoi pour la "proc reporting, proc tabulate, proc print éventuellement, à voir pour les couleurs" ?
    Je ne comprends pas !

  18. #18
    Membre chevronné
    Homme Profil pro
    Biostatisticien
    Inscrit en
    Juin 2009
    Messages
    1 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 206
    Points : 1 868
    Points
    1 868
    Par défaut
    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.

  19. #19
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    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 ?

  20. #20
    Membre chevronné
    Homme Profil pro
    Biostatisticien
    Inscrit en
    Juin 2009
    Messages
    1 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 206
    Points : 1 868
    Points
    1 868
    Par défaut
    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+

Discussions similaires

  1. [VBA][Excel] Avec les modèles Excel.
    Par mulanzia2003 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/08/2006, 10h27
  2. [JTable]Affichage avec un modèle dynamique impossible
    Par leminipouce dans le forum Composants
    Réponses: 4
    Dernier message: 07/02/2006, 19h42
  3. Sortie Ecran avec DevCpp
    Par vargasvan dans le forum Dev-C++
    Réponses: 6
    Dernier message: 06/10/2005, 11h24
  4. [JTable] Problème avec le modèle
    Par etiennegaloup dans le forum Composants
    Réponses: 2
    Dernier message: 20/09/2005, 16h25
  5. PB sortie standard avec les PTHREAD !!!
    Par djspit dans le forum C++
    Réponses: 15
    Dernier message: 19/11/2004, 01h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo