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 :

Alternative à %if %then %do %end %else %do


Sujet :

Macro

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 72
    Points : 75
    Points
    75
    Par défaut Alternative à %if %then %do %end %else %do
    Bonjour à tous,

    Je recherche une alternative à la conditionnelle classique %if...%then %do....%end %else %do. Existe-t'il quelque chose du genre %case ou %switch?
    Je n'ai pas trouvé de réponses sur le web.

    Merci d'avance pour vos réponses.

  2. #2
    Membre averti
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 417
    Points
    417
    Par défaut
    Bonsoir,
    avez-vous pensé à l'instruction SELECT?
    http://thesasreference.wordpress.com...n_select_when/

  3. #3
    Membre éclairé
    Homme Profil pro
    responsable adjoint service stat
    Inscrit en
    Mars 2009
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : responsable adjoint service stat
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2009
    Messages : 448
    Points : 823
    Points
    823
    Par défaut
    Select fonctionne dans une étape data, mais il n'y a pas de commande %SELECT en langage macro.
    Je crains hélas que la commande que tu cherches n'existe pas...
    Sauf à la créer toi même ?
    Ci-dessous un exemple
    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
    options nonotes nosource ;
    %macro condition (code, texte) ;
        %if (&var. = &code. and &condition_verifiee. ne 1) %then %do ; %put "&texte." ; %let condition_verifiee = 1 ; %end ;
    %mend ;
    %macro imprime (var) ;                  
        %let condition_verifiee = 0 ;
        %condition (E1, Error 1 : fatigué    ) ;
        %condition (E2, Error 2 : malade     ) ;  
        %condition (E3, Error 3 : en vacances) ;
        %condition (E3, Error 3 : doublon    ) ;
        %if &condition_verifiee. = 0 %then %do ; %put "Code Error inconnu" ; %end ;
    %mend ; 
     
    %imprime (E1);
    %imprime (E2);
    %imprime (E3);
    %imprime (EX);

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 72
    Points : 75
    Points
    75
    Par défaut
    Bonjour,

    Merci beaucoup pour vos réponses.

    Effectivement, je recherche à faire cela en langage macro. Je vais essayer d'adapter ce code à ma problématique.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/11/2014, 12h11
  2. SUM(CASE WHEN THEN 1 ELSE 0 END) SUR PLUSIEURS LIGNES
    Par Dr_No dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 13/11/2012, 14h35
  3. if then else if end if
    Par imparator_42 dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 06/03/2008, 11h27
  4. Equivalent "Select Case when then else end" sur Paradoxe
    Par Seuh.m dans le forum Bases de données
    Réponses: 4
    Dernier message: 29/06/2006, 08h23
  5. questions sur le if then end if;
    Par ghostlord79 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/02/2004, 16h35

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