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 :

Boucle sur une macro variable


Sujet :

Macro

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2012
    Messages : 36
    Points : 17
    Points
    17
    Par défaut Boucle sur une macro variable
    Bonjour à tous,

    mon problème est le suivant :

    je récupère le nombre d'année que je dois considérer dans mon étude dans une macro variable avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    data enregistrement_nb_var;
    set Annees_a_considerer;
    compteur=_n_;
    call symput('nbvar',compress(compteur));
    run;
    Du coup la dernière valeur enregistrée dans ma macro-variable nbvar est bien le nombre d'année (je précise que ce nombre est variable selon les données considérées donc je suis obligé de procéder ainsi).

    J'enregistre le nom de mes variables ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    proc contents DATA = donnees_tcd_trans  noprint 
            out = contents ;
    run ;
     
    data _null_;
    set contents;
    call symput('var_'||left(trim(_N_)),name);
    run;
    Ensuite je fais la boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    data triangle_liquidations_2;
    set triangle_liquidations_3;
    do i=1 to &nbvar.;
    	drop &&&var_&i.;
    end;
    run;
    Mais cette boucle ne fonctionne pas, il ne supprime pas les colonnes, et la log affiche le message d'erreur suivant :

    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
    WARNING: Référence symbolique apparente I non traitée.
    985      drop &&&var_&i.;
    NOTE: Ligne générée par la variable macro "I".
    1     &var_&
          -    -
          22   200
          200
    ERROR 22-322: Erreur de syntaxe ; syntaxe requise : un nom, ;, _ALL_, _CHARACTER_, _CHAR_, _NUMERIC_.
     
    ERROR 200-322: Le symbole n'est pas reconnu et sera ignoré.
     
    1  !  &var_&
               -
               22
    WARNING: Référence symbolique apparente VAR_ non traitée.
    WARNING: Référence symbolique apparente I non traitée.
    ERROR 22-322: Erreur de syntaxe ; syntaxe requise : un nom, -, :, ;, _ALL_, _CHARACTER_, _CHAR_, _NUMERIC_.
    Avez-vous une idée de comment faire pour réaliser mes drop ?

    Merci beaucoup !

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 15
    Points : 20
    Points
    20
    Par défaut
    Salut,

    Essaie avec cette syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    %do i=1 %to &nbvar.;
    	//Traitement
    %end;
    run;

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2012
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    Eh bien oui c'était tout simplement ça !
    J'aurais du y penser plus tôt...

    Merci beaucoup !

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

Discussions similaires

  1. boucle sur une macro
    Par lach12 dans le forum Excel
    Réponses: 3
    Dernier message: 29/09/2014, 13h19
  2. Condition sur une macro variable
    Par sofisaas dans le forum Macro
    Réponses: 2
    Dernier message: 03/12/2013, 16h14
  3. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  4. Condition sur une macro-variable
    Par ash_rmy dans le forum Macro
    Réponses: 2
    Dernier message: 10/06/2008, 20h35
  5. [HTML] boucle sur une variable et non pas un tableau
    Par delma dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/11/2006, 15h03

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