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

Macro Discussion :

Automatiser un calcul pour un nombre important de tables


Sujet :

Macro

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur/Statisticien
    Inscrit en
    Juin 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur/Statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2011
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Automatiser un calcul pour un nombre important de tables
    Bonjour, je voudrais automatiser un calcul mais je ne sais pas comment m'y prendre. Je dispose de 2200 fichiers, chaque fichier possédant un nom relativement différent d'un autre (ex: MYZUL58_05_02 et EQDQG98_09_05). Le mode de calcul comporte de nombreuses étapes (data, proc ...). Voici le début et la fin de mon programme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    DATA New ;
    set ENR.MYXUL43_04_02;
    run;
     
    /* A partir de ce fichier new, j'exécute donc de nombreuses étapes, le but étant à la fin d'enregistrer le résultat  */ 
     
    PROC EXPORT DATA =Resultat
    OUTFILE = "C:\ENR.MYXUL43_04_02.xls"
    DBMS = DLM REPLACE ;
    DELIMITER = "09"x ;
    RUN ;
    Comment faire pour répéter de façon automatique cette étape sur l'ensemble de mes fichiers...

    Merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    Quand tu dis "fichier" tu veux dire "fichier Excel " ou "table SAS"?
    ext ce que c'est toutes les tables se trouvant dans cette lib que tu veux automatiser?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur/Statisticien
    Inscrit en
    Juin 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur/Statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2011
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Une table sas. Oui je veux automatiser tout les fichiers se trouvant dans la bibliothèque ENR.

  4. #4
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    Ok, c'est simple :
    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
     
     
     
    proc sql;
    create view tabs as select memname as tabs from dictionary.tables where 
    upcase (libname)='ENR' and upcase(memtype)='DATA' ;
    quit;
     
    data _null_;
    set tabs end=fin;
    if fin then call symput ('nbr', _n_);
                call symput (cats('tab',_n_), tabs);
    run;
     
    %macro _allTabs;
    %do i=1 %to &nbr.;
     
    proc export data=ENR.&&tab&i.
                outfile="C:\enr.&&tab&i...xls"
                DBMS = DLM REPLACE ;
                DELIMITER = "09"x ;
                RUN ; 
    %end;
    %mend;
    %_allTabs;
    tu replaces partout " MYXUL43_04_02 " par &&tab&i.
    PS: il y a aussi call execute mais bon.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ingénieur/Statisticien
    Inscrit en
    Juin 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur/Statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2011
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup. D'habitude je faisais ce calcul pour un nombre limité de fichiers. Je changeais donc manuellement le nom de mon fichier à cette étape.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DATA New ;
    set ENR.MYXUL43_04_02;
    run;
    Ensuite je travaillais à partir de la table new pour effectuer mes calculs. pour ensuite exporter ma table resultat. Cependant je ne vois pas ou insérer cette partie de code ainsi que les étapes du calcul ?

    Avant d'exporter mon fichier ma table garde toujours le même non, à savoir résultat et non le nom de mon fichier.

  6. #6
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    data new&i;
    set ENR.&&tab&i.;
    run;

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Ingénieur/Statisticien
    Inscrit en
    Juin 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur/Statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2011
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup !

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

Discussions similaires

  1. Bibliothèques de routines de calculs pour les nombres entiers géants
    Par Rekin85 dans le forum Codes sources à télécharger
    Réponses: 10
    Dernier message: 30/01/2015, 16h01
  2. [SQL] calcul pour chaque catégorie le nombre d'entités
    Par salmoucha dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/04/2008, 15h28
  3. Quel langage pour automatiser des calculs acoustiques ?
    Par michael.mytnik dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 04/01/2007, 18h51
  4. Calcul pour impression multipage
    Par Fiquet dans le forum MFC
    Réponses: 2
    Dernier message: 30/09/2005, 09h38
  5. Besoin d'1 coup de pouce pour realiser une importation de BD
    Par gizmorambo dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/08/2005, 14h07

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