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 dans le nom d'une macro


Sujet :

Macro

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 221
    Points : 108
    Points
    108
    Par défaut Macro variable dans le nom d'une macro
    Bonjour,

    J'aimerais savoir s'il était possible d'écrire une macro à partir d'une maro-variable.

    En effet j'aimerais avoir :

    Code sas : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    %let filiale=ch;
    %macro toto_&filiale.
    corps_de_la_macro;
    %mend;
    toto_&filiale.
    Quand je l’exécute j'ai une erreur.

    Merci d'avance.

  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.
    Pour autant que je comprenne bien la doc c'est non :
    macro-name names the macro. A macro name must be a SAS name, which you supply; you cannot use a text expression to generate a macro name in a %MACRO statement.
    Maintenant, plutôt que dans le nom du MP, je verrais bien ta macro-variable comme paramètre. Ca serait plus "générique" comme outil.
    Bon courage.
    Olivier

  3. #3
    Membre émérite

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2005
    Messages
    1 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 364
    Points : 2 329
    Points
    2 329
    Par défaut
    Bonjour,

    C'est quoi l’intérêt?
    Consultez les FAQs et les anciens postes avant de poser vos questions. Merci

  4. #4
    Membre éclairé

    Femme Profil pro
    SAS FRANCE - Support Clients France et Europe
    Inscrit en
    Février 2010
    Messages
    289
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : SAS FRANCE - Support Clients France et Europe
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 289
    Points : 886
    Points
    886
    Par défaut
    Bonjour,

    Il n'y a pas de résolution de macro au niveau de l'instruction %MACRO, d'où l'erreur "It should be a valid SAS identifier no longer than 32 characters." .

    L'astuce consiste à créer le nom du macro-programme via le compilateur base plutôt que macro, avec un %inc ou un call execute par exemple.
    Un exemple avec le call execute :

    Pour créer le macro-programme en utilisant une macro-variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    %let test=Toto ;
    data _null_ ;
      call execute ('%macro ' !! " m_&test " !! ';%put success ;%mend ;') ;
    run ;
    Pour appeler le macro-programme en utilisant une macro-variable dans son nom :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    data _null_ ;
      a=resolve("%m_&test") ;
    run ;
    Géraldine Cade-Deschamps
    Support Clients SAS France
    Cordialement,

    --
    Géraldine CADE-DESCHAMPS
    Consultante ▪ Support Clients SAS
    Tel: +33 1 60 62 12 12 ▪ support@sas.com
    www.sas.com/france
    SAS® … THE POWER TO KNOW®

Discussions similaires

  1. [EG] Macro variable dans le nom d'une table
    Par asirier dans le forum Outils BI
    Réponses: 2
    Dernier message: 02/07/2013, 15h44
  2. Réponses: 11
    Dernier message: 22/02/2011, 16h41
  3. Réponses: 2
    Dernier message: 22/03/2010, 15h26
  4. Réponses: 11
    Dernier message: 29/05/2008, 16h26
  5. Réponses: 0
    Dernier message: 28/05/2008, 15h15

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