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 :

Macro variable format date


Sujet :

Macro

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 90
    Points : 55
    Points
    55
    Par défaut Macro variable format date
    Bonjour,

    je souhaite exécuter une condition sur une macro variable au format date ; je fais le dode suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    %macro ferie;
     
    %let datef = weekday(today()-1);
    %if &datef > 3 %then ;
    data base5;
    set base;
    run;
     
    %mend ferie;
     
    %ferie;
    et j'ai le message d'erreur suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ERROR: Required operator not found in expression: &datef > 3 
    ERROR: The macro FERIE will stop executing
    que se passe-t-il ??

    merci à vous!

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 747
    Points : 978
    Points
    978
    Par défaut
    il se passe ceci :

    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
    1    options mprint symbolgen mlogic;
    2    %macro ferie;
    3
    4    %let datef = weekday(today()-1);
    5    %IF &datef > 3 %then ;
    6    DATA base5;
    7    SET base;
    8    run;
    9
    10   %mend ferie;
    11
    12   %ferie;
    MLOGIC(FERIE):  Beginning execution.
    MLOGIC(FERIE):  %LET (variable name is DATEF)
    SYMBOLGEN:  Macro variable DATEF resolves to weekday(today()-1)
    ERROR: Required operator not found in expression: &datef > 3
    ERROR: The macro FERIE will stop executing.
    MLOGIC(FERIE):  Ending execution.
    donc tu évalues ce test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    5    %IF weekday(today()-1) > 3 %then ;
    est-ce que la chaine "weekday(today()-1)" est égale à la chaine "3"?

    xav

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 90
    Points : 55
    Points
    55
    Par défaut
    non mais supérieur :

    weekday(today()-1)= 5 ie jeudi ..

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 41
    Points : 57
    Points
    57
    Par défaut
    essaie ceci:

    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
    %macro ferie;
     
     Data _NULL_;
      call symput ('datef',put(weekday(today()-1),1.));
     Run;
     
    %IF &datef > 3 %then ;
     
    DATA base5;
    SET base;
    run;
     
    %mend ferie;
     
    %ferie;

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Points : 86
    Points
    86
    Par défaut
    Tu essaies ceci:

    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
    %macro ferie;
     DATA _NULL_;
      call symput ('datef',put(weekday(today()-1),1.));
     Run;
     
    %IF &datef > 3 %then %do;
     
    DATA base5;
    SET base;
    run;
    %end ;
     
    %mend ferie;
     
    %ferie;

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 90
    Points : 55
    Points
    55
    Par défaut
    Merci les gars ! ça fonctionne bien !!

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

Discussions similaires

  1. Format date pour une macro variable
    Par idhmida dans le forum Macro
    Réponses: 5
    Dernier message: 18/12/2012, 18h58
  2. Comparaison macro-variable en format date
    Par jogin38 dans le forum Macro
    Réponses: 1
    Dernier message: 07/12/2010, 09h08
  3. [MVS] Comparaisons variables format date
    Par pierre24 dans le forum Administration et Installation
    Réponses: 11
    Dernier message: 07/05/2008, 15h02
  4. Réponses: 5
    Dernier message: 10/01/2008, 15h13
  5. Passage de variables dans URL au format date
    Par claralavraie dans le forum ASP
    Réponses: 6
    Dernier message: 18/12/2006, 21h23

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