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 :

Exporter proc freq dans plusieurs onglets excel [ODS]


Sujet :

ODS et reporting

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Exporter proc freq dans plusieurs onglets excel
    Bonjour à tous,

    Je dois réaliser une macro permettant d'obtenir un fichier excel propre (sans les titres des proc freq, sans la barre bleu entre les proc freq).

    Voici un exemple de ma table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    data test;
            length joueur club nationalite $15;
            input joueur club nationalite taille;
            cards;
            lucho porto argentine 180
            remy om france 176
            messi barca argentine 160
            ronaldo mu portugal 185
            xavi barca espagne 176
            ;
    run;
    J'ai commencé ma macro mais cela ne me donne pas le résultat voulu . Par contre les options dans la proc template ne s'exute pas elles aussi....

    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
    proc template;
    define style styles1.test;
    parent=styles.default;
    style body from document / pagebreakhtml= _undef_ background=white FOREGROUND = black FONT_SIZE = 10pt;
    end;
    run;
    ods tagsets.excelxp file = "C:\chemin\test.xls" style = vero_xls style=styles1.test;
    ODS NOPROCTITLE;
    ods tagsets.excelxp options (sheet_name = "Feuille 1");
    proc freq data = test;
    table club nationalite;
    run;
    proc freq data = test;
            table joueur;
            where club in ("barca");
    run;
    ods tagsets.excelxp options (sheet_name = "Feuille 2");
    proc freq data = test;
            table joueur;
            where club in ("barca");
    run;
    ods tagsets.excelxp close;
    Je voudrais par onglets avoir certaines proc freq que j'ai choisi.

  2. #2
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Bonjour.
    Je te suggère d'ajouter des options SHEET_INTERVAL=NONE pour rappeler à ton ODS que tu ne souhaites pas qu'il change d'onglet à sa guise, mais uniquement quand tu changes de nom d'onglet.
    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
    proc template;
    define style styles1.test;
    parent=styles.DEFAULT;
    style body FROM document / 
       pagebreakhtml = _undef_ 
          background = white 
          FOREGROUND = black 
           FONT_SIZE = 10pt;
    end;
    run;
    ods tagsets.excelxp file = "C:\temp\test.xls" style=styles1.test
          options (sheet_interval = "none") ;
    ODS NOPROCTITLE;
    ods tagsets.excelxp options (sheet_name = "Feuille 1");
    proc freq DATA = test;
    TABLE club nationalite;
    run;
    proc freq DATA = test;
            TABLE joueur;
            WHERE club IN ("barca");
    run;
    ods tagsets.excelxp options (sheet_name = "Feuille 2" 
                             sheet_interval = "none");
    proc freq DATA = test;
            TABLE joueur;
            WHERE club IN ("barca");
    run;
    ods tagsets.excelxp close;
    Attention, dans ton code tu as 2 options STYLE ; je ne sais pas laquelle gagne. Quant aux polices et couleurs, les attributs déclarés dans l'élément BODY ne seront sans doute pas suffisants : il faudrait que tu regardes dans ton style parent (DEFAULT) les listes de couleurs et de polices et que tu les adaptes dans ton style perso. C'est plus long mais plus fiable.

    Bon courage.
    Olivier

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par olivier.decourt Voir le message
    Bonjour.
    Je te suggère d'ajouter des options SHEET_INTERVAL=NONE pour rappeler à ton ODS que tu ne souhaites pas qu'il change d'onglet à sa guise, mais uniquement quand tu changes de nom d'onglet.
    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
    proc template;
    define style styles1.test;
    parent=styles.DEFAULT;
    style body FROM document / 
       pagebreakhtml = _undef_ 
          background = white 
          FOREGROUND = black 
           FONT_SIZE = 10pt;
    end;
    run;
    ods tagsets.excelxp file = "C:\temp\test.xls" style=styles1.test
          options (sheet_interval = "none") ;
    ODS NOPROCTITLE;
    ods tagsets.excelxp options (sheet_name = "Feuille 1");
    proc freq DATA = test;
    TABLE club nationalite;
    run;
    proc freq DATA = test;
            TABLE joueur;
            WHERE club IN ("barca");
    run;
    ods tagsets.excelxp options (sheet_name = "Feuille 2" 
                             sheet_interval = "none");
    proc freq DATA = test;
            TABLE joueur;
            WHERE club IN ("barca");
    run;
    ods tagsets.excelxp close;
    Attention, dans ton code tu as 2 options STYLE ; je ne sais pas laquelle gagne. Quant aux polices et couleurs, les attributs déclarés dans l'élément BODY ne seront sans doute pas suffisants : il faudrait que tu regardes dans ton style parent (DEFAULT) les listes de couleurs et de polices et que tu les adaptes dans ton style perso. C'est plus long mais plus fiable.

    Bon courage.
    Olivier


    Merci pour ta réponse Olivier : J'ai lancé ton pg mais le bug vient quand j'essaye d'ouvrir le fichier excel, j'ai ce message d'erreur :
    J’ai un message d’erreur : « impossible d’ouvrir ce fichier en raison d’erreurs. Les erreurs sont répertoriées dans C\.....\files\content.MSO\8375….Alog

    J'utilise SAS 9.1.3 avec excel 2007... J'ai un peu fouillé sur le forum en trouvant une réponse "
    (Excel 2007) Sur le Bouton Office, cliquez sur Préparer, sur Activer le vérificateur de compatibilité, puis désactivez la case à cocher Vérifier la compatibilité lors de l’enregistrement de ce classeur." publié ya deux mois, mais malgré tout je n'arrive pas à ouvrir mon fichier...

  4. #4
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Le message que tu as trouvé concerne un autre avertissement lors de l'ouverture d'un fichier créé par l'ODS sous Excel 2007 ou 2010.
    Dans le tien, il y a vraisemblablement un souci avec le style ; peux-tu essayer en supprimant l'usage de ton style perso ?

    Accessoirement, les réactions de cet ODS-là dépendent beaucoup de la version du tagset utilisé (on la voit dans la Log juste après l'instruction ODS ouvrante, celle qui contient l'option FILE). Tu peux mettre à jour ton tagsets pour une version plus récente sur le site du support SAS ici.
    De mon côté, j'ai fait les tests avec SAS 9.3, tagsets v1.122, Excel 2010.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Transfert de recordset Access dans plusieurs onglets Excel
    Par kesamba dans le forum IHM
    Réponses: 2
    Dernier message: 13/06/2014, 16h46
  2. Réponses: 3
    Dernier message: 21/09/2012, 12h30
  3. SAS exportation proc freq dans Excel
    Par freygeo dans le forum ODS et reporting
    Réponses: 6
    Dernier message: 09/08/2012, 16h19
  4. [ODS] Proc report avec plusieurs onglets dans une feuille excel
    Par tdiallo dans le forum ODS et reporting
    Réponses: 3
    Dernier message: 28/06/2012, 16h37
  5. Exporter plusieurs tableaux dans un onglet (EXCEL)
    Par Sissie dans le forum ODS et reporting
    Réponses: 3
    Dernier message: 14/08/2009, 13h49

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