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

Débutez Discussion :

Executer un code selon le jour de la semaine


Sujet :

Débutez

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Analyste marketing
    Inscrit en
    Octobre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyste marketing

    Informations forums :
    Inscription : Octobre 2015
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Executer un code selon le jour de la semaine
    Bonjour,

    Je m'explique : j'aimerais exécuter un code différent selon le jour de la semaine (à savoir le lundi ou le jeudi).
    Je pense que cela n'est pas très compliqué mais je ne connais pas bien le langage...

    Voici mon algo trivial:

    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
    Si (today = lundi)
    %Import(table1);
    %Import(table2);
    %Import(table3);
    %Import(table4);
     
    data table;
    set 
    table1 table2 table3 table 4
    ;
    run;
     
    SinonSi (today= jeudi) 
    %Import(table1);
    %Import(table2);
    %Import(table3);
     
    data table;
    set 
    table1 table2 table3
    ;
    run;

    Merci d'avance pour vos réponses.

  2. #2
    Membre éprouvé
    Avatar de m.brahim
    Homme Profil pro
    SAS / BIG DATA
    Inscrit en
    Juillet 2011
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SAS / BIG DATA
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 461
    Points : 1 119
    Points
    1 119
    Billets dans le blog
    14
    Par défaut
    Bonjour,

    Je te propose cette solution:
    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
     
    %macro import(out=,file=,sheet=);
     
    PROC IMPORT OUT=&out
    	DATAFILE="&file"
    	DBMS=EXCEL REPLACE;
    	SHEET="&sheet";
    RUN;
    %mend;
     
     
    %macro fin();
     
    %if &sysday=Monday %then %do;
    %import(out=data1,file=c:\sas\test,sheet=test);
    %import(out=data2,file=c:\sas\test,sheet=test);
    %import(out=data3,file=c:\sas\test,sheet=test);
    %import(out=data4,file=c:\sas\test,sheet=test);
     
     
    data table;
    set data1-data4;
    run;
    %end;
     
    %if &sysday=Thursday %then %do;
     
    %import(out=data1,file=c:\sas\test,sheet=test);
    %import(out=data2,file=c:\sas\test,sheet=test);
    %import(out=data3,file=c:\sas\test,sheet=test);
     
    data table;
    set data1-data3;
    run;
    %end;
    %mend;
    %fin;
    Cordialement
    Certification des Talents de la programmation In Memory Statistics sur HADOOP:
    http://talents-imstat.groupe-avisia....avance?uid=162

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 482
    Points : 1 547
    Points
    1 547
    Par défaut
    Bonjour,
    Une 2ème proposition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    %macro Edite_Tables ;
          %if &sysday=Monday   %then %Let n=4 ;
    %else %if &sysday=Thursday %then %Let n=3 ; 
    %else  %GOTO OUT ;  
     
    %do i=1 %to &n ;  %Import(Table&i) ;  %end ;
     
    data Table;
    set  %do i=1 %to &n ; Table&i  %end ;   ;
    run ;	proc print data=Table ; run ;	
    %OUT:
    %mend Edite_Tables ;       %Edite_Tables ;
    Cdt Ward

  4. #4
    Membre éprouvé
    Avatar de Stackware
    Homme Profil pro
    ArchiDuc de la Sasserie
    Inscrit en
    Juillet 2013
    Messages
    439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ArchiDuc de la Sasserie
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2013
    Messages : 439
    Points : 1 017
    Points
    1 017
    Billets dans le blog
    4
    Par défaut
    Bonjour,
    Une autre solution est de passer par le planificateur de tâches windows : le lundi, lancer ce programme, et le jeudi celui-ci... Ça allège le code d'une part, puisque le code SAS traite les données quelque soit le jour, et ça évite d'avoir à le modifier si le mercredi ou le mardi doivent être lancés des programmes similaires.
    Lorsque les programmes sont moins compliqués ils sont plus faciles à maintenir, et quand on utilise les bons outils pour faire les choses, on a généralement moins de surprises...
    Moi, je dis ça, je ne dis rien

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Analyste marketing
    Inscrit en
    Octobre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyste marketing

    Informations forums :
    Inscription : Octobre 2015
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci pour vos 2 solutions ! Cela fonctionne très bien.

    Concernant le planificateur de tâches Windows, je ne peux pas l'utiliser car il est bloqué (sécurité entreprise...). Merci tout de même.

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

Discussions similaires

  1. [XL-2010] Et la boucle est difficile à écrire! (executer un code selon les valeurs d'une liste)
    Par Mikayel dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/12/2014, 13h31
  2. MFC selon le jour de la semaine
    Par Poisell dans le forum Excel
    Réponses: 6
    Dernier message: 09/11/2009, 16h23
  3. Réponses: 3
    Dernier message: 23/04/2008, 15h35
  4. [C#]Comment executer du code qui se trouve dans une string ?
    Par freddyboy dans le forum Windows Forms
    Réponses: 4
    Dernier message: 28/02/2005, 16h31
  5. [rapidité du code] Mise a jour a partir d'un TQuery.
    Par goethe dans le forum Bases de données
    Réponses: 4
    Dernier message: 27/10/2004, 09h01

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