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 :

incrémenter ma macro variable


Sujet :

Macro

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2015
    Messages : 19
    Points : 11
    Points
    11
    Par défaut incrémenter ma macro variable
    Bonjour à tous,

    je viens vers vous pour un problème qui je suis certain est tout bête à résoudre, mais je bloque depuis un moment dessus donc je veux bien des avis extérieurs.

    1) J'ai créé 10 macro variables de la forme &ma_mv_i, avec i allant donc de 1 à 10.

    2) je veux créer une colonne dans ma table SAS avec l'idée que la ligne n prendra comme donnée la valeur de la macro variable &ma_mv_n.

    j'ai testé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    %let i=0;
    data  matable;
    	set  masource;
    	format new_var 11.;
    		  %let i = %EVAL(&i+1);
    		  new_var = &&ma_mv_&i;
    run;

    ==> Résultat que je comprends pas, &i ne s'incrémente pas. il vaut 2 en sortie de programme alors que je pensais qu'il vaudrait 10.

    j'ai testé autre chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    data  matable;
    	set  masource;
    	format new_var 11.;
    			call symputx ('i',_N_);
    		  new_var = &&ma_mv_&i;
    run;
    ==> Erreur aussi, et en fait je pense comprendre que c'est dû au fait que CALL SYMPUTX ne crée la MV &i qu'à la fin de l exécution.

    Voilà où j en suis de mes réflexions, si vous des pistes de solutions, je suis preneur

    Bonne journée et merci d'avance

  2. #2
    Membre à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2015
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    j'ai tenté autre chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    data  matable;
    	set  masource;
    	format new_var 11.;
    		%let i=1;
    			%DO %WHILE (&i ne _N_);
    				%let i = %EVAL(&i+1);
    			%END;
    		new_var = &&ma_mv_&i;
    run;

    ==> Mais il semble que je rentre dans une boucle infinie, ce qui signifierait que je ne peux pas comparer ma MV avec _N_, et ça non plus je ne comprend pas trop :-(

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2015
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    c est bon j ai, je savais pas que ce serait pas bien compliqué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    data  matable;
    	set  masource;
    			idt_pi_vraie_dst=symget(cats('mv',_n_));
    run;
    pour ceux que ça pourrait aider :-)

Discussions similaires

  1. Incrémenter une macro variable?
    Par jkiii dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/02/2014, 11h37
  2. Réponses: 4
    Dernier message: 14/12/2009, 12h53
  3. Incrémentation d'une macro variable
    Par l'breton du 29 dans le forum Macro
    Réponses: 1
    Dernier message: 25/06/2008, 17h25
  4. [Tableaux] Incrémentation d'une variable
    Par cisse18 dans le forum Langage
    Réponses: 46
    Dernier message: 19/07/2006, 17h02
  5. [Débutant] Probleme d'incrémentation d'une variable
    Par sakuragikan dans le forum ASP
    Réponses: 2
    Dernier message: 25/08/2005, 13h11

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