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 :

Question sur une macro de comparaison avec %do %until


Sujet :

Macro

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Août 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Question sur une macro de comparaison avec %do %until
    Bonjour tout le monde,

    Merci par avance de votre aide.

    Je vous écris car je suis vraiment coincée. J'ai essayé plusieurs méthodes pour résoudre mon problème sans succès.

    Je m'explique : j'ai un certain nombre de variables que je veux comparer entre elles.

    Peut être mon code sera plus explicite (je sais qu'il ne fonctionne pas):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    %let i =0; 
    %let j= 0; 
    %do %until (annee&i. = annee_ctrt_&j.); 
    %let i=%eval(&i+1);
    %let j=%eval(&j+1);
     pd_orig_new2=pd&i.; 
    pd_orig_date_new =per&i.; 
    %end;
    Je voudrais que lorsque annee&i est égal à annee_ctrt_&j, on récupère la valeur de i qui correspond à annee&i lorsque annee&i est égal à annee_ctrt_&j.

    Ainsi, je pourrais récupérer pd pour ce i particulier.

    Je ne sais pas si j'ai été claire. N'hésitez pas à me le signaler.

    Merci encore.

  2. #2
    Membre éprouvé
    Avatar de Stackware
    Homme Profil pro
    ArchiDuc de la Sasserie
    Inscrit en
    Juillet 2013
    Messages
    439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ArchiDuc de la Sasserie
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2013
    Messages : 439
    Points : 1 017
    Points
    1 017
    Billets dans le blog
    4
    Par défaut
    Bonjour,
    Je ne suis pas expert en macros, mais année, c'est initialisé avec quelle valeur?
    Si je dis 200, ça va fonctionner de 2001 à 2009, mais pas au-delà.
    Si je dis 20, ça ne fonctionnera qu'à partir de 10.

    Pour le reste, je pense qu'il serait peut-être efficace de poster dans le bon forum (celui des macros par exemple)?

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Août 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Stackware Voir le message
    Bonjour,
    Je ne suis pas expert en macros, mais année, c'est initialisé avec quelle valeur?
    Si je dis 200, ça va fonctionner de 2001 à 2009, mais pas au-delà.
    Si je dis 20, ça ne fonctionnera qu'à partir de 10.

    Pour le reste, je pense qu'il serait peut-être efficace de poster dans le bon forum (celui des macros par exemple)?

    Bonjour,

    Année prend une multiplicité de valeurs. Je l'ai créé à partir d'une date (annee(date))*12+mois(date).
    Mon historique remonte à très loin.
    Je n'ai pas initialisé annee. Il s'agit seulement d'une variable calculée.

    Si j'ai posté ma question ici, c'est parce qu'il s'agit de langage sas. J'ignorais qu'il y avait un forum spécialement dédié aux macros sas.
    Peux tu me dire comment déplacer ma question dans le bon forum ?

    Merci.

  4. #4
    Membre éprouvé
    Avatar de Stackware
    Homme Profil pro
    ArchiDuc de la Sasserie
    Inscrit en
    Juillet 2013
    Messages
    439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ArchiDuc de la Sasserie
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2013
    Messages : 439
    Points : 1 017
    Points
    1 017
    Billets dans le blog
    4
    Par défaut
    Bonjour,
    Je ne sais pas comment déplacer un topic, mais un simple copier/coller devrait faire l'affaire en le recréant dans le bon forum.
    Ce forum est

    [edit] La page générale des forums est ici, et on voit bien les différents forums, dont Macro, Stat, etc.
    Il suffit de poster dans la bonne rubrique pour avoir les bonnes réponses, car les gens spécialisés ne regardent que les rubriques qui les intéressent...

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 482
    Points : 1 547
    Points
    1 547
    Par défaut
    Bonjour,
    Si les macros variables ont étés correctement créées (y compris, annee0 et annee_ctrt_0) la proposition suivante pourrait répondre à ta question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    %let i =0; 
    %let j= 0; 
    %do %until (&&annee&i. = &&annee_ctrt_&j. ); 
    %let j=%eval(&j+1); 
    
    pd_orig_new2=resolve("&&pd&i.") ;  
    pd_orig_date_new =resolve("&&per&i.") ;  
    
    %end;	
    %let i=%eval(&i+1);
    Bon courage
    Ward

Discussions similaires

  1. [XL-2007] Question sur une macro
    Par questionaccess dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/05/2014, 09h57
  2. Question sur une étude de faisabilité avec GWT
    Par polonain2 dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 20/04/2013, 09h59
  3. [JPQL] Question sur une requête avec héritage
    Par saveriu dans le forum JPA
    Réponses: 1
    Dernier message: 21/08/2010, 08h54
  4. Réponses: 4
    Dernier message: 06/04/2010, 11h41
  5. Réponses: 4
    Dernier message: 11/03/2010, 13h09

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