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 :

Problème de macro


Sujet :

Macro

  1. #1
    Futur Membre du Club
    Problème de macro
    Bonjour,
    j'ai effectué cette macro afin de récupérer les variables d'une table :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    %macro Variables(TABLE);
        %global vlist;
        proc sql;
            select name into :vlist separated by ' '
            from dictionary.columns
            where libname="WORK" and memname="&TABLE.";
     	quit;
    	%put &vlist.;
    %mend;
     
    %Variables(Freqtest);


    Le problème c'est que lorsque j'ai copié cette macro dans un autre code (en changeant évidemment le nom de la table en question dans l'appel), le %put m'a ressorti les mêmes variables que lors de la première exécution...
    Auriez-vous une réponse ?

    Merci d'avance

  2. #2
    Membre averti
    Bonjour,

    Je n'ai pas la réponse sur le pourquoi de ton résultat. En revanche, tu peux tester un %symdel de ta macrovariable afin de la vider et relancer le programme pour voir ce qu'il te renvoie.

  3. #3
    Membre du Club
    Regarde le nombre d'observations sélectionnées avec ta proc sql.

    Si c'est zéro alors, la valeur de ta macro variable n'est pas actualisée.
    Il a y peut-être une erreur dans ta sélection au niveau du where
    comme par exemple une différence dans la casse (majuscule, minuscule) qui se fixe en mettant la fonction upcase des deux côtés de l'égalité.