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 :

Réinitialisation et modification des valeurs dans les macros-variable


Sujet :

Macro

  1. #1
    Membre du Club
    Homme Profil pro
    Chargé d'études statistiques
    Inscrit en
    Octobre 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études statistiques
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 63
    Points : 51
    Points
    51
    Par défaut Réinitialisation et modification des valeurs dans les macros-variable
    Bonjour,

    Je me permets de vous solliciter car j'ai un problème que je ne parviens pas à corriger. Je m'explique :

    - J'ai 154 établissements et doit produire un fichier par établissement (jusque la rien de bien compliqué)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    	%macro sortie_fichiers_cfa ;
    	%do i=1 %to &N; 
     
    %end;
    %mend sortie_fichiers_cfa ;
    %sortie_fichiers_cfa ;
    - Dans chaque fichier je crée des tables (proc tabulate) (exemple ci dessous) et récupère les données par le biais d'un proc SQL into pour créer des macros variables pour en faire une note de lecture (exemple ci dessous)

    ABSENCE DE JEUNES DS SECTION NON OUI Total
    Etablissement A 12 20 8 40

    Note de lecture : il n'y a pas de jeunes formés dans 12 sections et 8 sections sont sous-remplies.

    Le problème c'est que tous les établissements n'ont pas le même format de tableau du fait que l'état des conventions n'est pas le même chez chacun (deuxième exemple de table ci-dessous)

    NON Total
    Etablissement B 3 3

    Par conséquent avant que la boucle passe à l'établissement suivant je souhaite que mes variables créées se réinitialisent. J'ai essayé la manière simple, c'est à dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    	%let nbretab=0;
    	%let absjeunes=0;
    	%let placesafermer=0;
    	%let placesalertes=0;
    	%let nbrsectionsalertes=0;
    	%let sousremplis=0;
    	%let absjeunes=0;
    	%let remplis=0;
    Mon problème c'est que lorsque la macro passe à la boucle suivante, les nouvelles valeurs n'écrasent pas les 0 mis à la fin de l'étape précédente...

    Avez vous une idée de comment je dois procéder ?

    D'avance je vous remercie de votre aide car j'avoue, je suis complétement perdu...

  2. #2
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Réinitialisation et modification des valeurs dans les macros-variable
    Bonjour,

    Vous ne devez pas être loin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    %macro sortie_fichiers_cfa ;
      %do i=1 %to 3; 
        proc sql; select count(*) into :n from data&i; quit;
        %put &n;
        %let n=0;
        %put &n;
      %end;
    %mend sortie_fichiers_cfa ;
     
    %sortie_fichiers_cfa ;
    et la log :

    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
    18
    19
    20
    21
    NOTE: PROCEDURE SQL used (Total process time):
          real time           7:40.20
          cpu time            2.18 seconds
     
     
    5795
    0
    NOTE: PROCEDURE SQL used (Total process time):
          real time           0.00 seconds
          cpu time            0.01 seconds
     
     
    125
    0
    NOTE: PROCEDURE SQL used (Total process time):
          real time           0.00 seconds
          cpu time            0.00 seconds
     
     
    12615
    0
    Si ça ne résoud pas votre problème, essayez de mettre un programme qu'on puisse exécuter pour voir ce que ça donne.

    Cordialement,

  3. #3
    Membre du Club
    Homme Profil pro
    Chargé d'études statistiques
    Inscrit en
    Octobre 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études statistiques
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Bonjour,

    Effectivement,remettre ma macro variable à 0 au départ de la macro plutôt qu'à la fin semble être la bonne solution !

    Merci beaucoup de ton retour

    Bonne fin de journée.

  4. #4
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Réinitialisation et modification des valeurs dans les macros-variable
    Bonjour,

    Je ne comprends pas votre commentaire ? Dans mon exemple, la macro variable est bien remise à 0 en fin de boucle ?

    Cordialement,

  5. #5
    Membre du Club
    Homme Profil pro
    Chargé d'études statistiques
    Inscrit en
    Octobre 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études statistiques
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Oui oui, j'ai essayé ainsi mais ça ne fonctionnait pas...Du coup, je me suis dit qu'au départ de la boucle ça fonctionnerait peut être et effectivement c'est le cas !

  6. #6
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Réinitialisation et modification des valeurs dans les macros-variable
    Merci pour votre retour.

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

Discussions similaires

  1. Récupérer valeur macro variable
    Par MDsas dans le forum Macro
    Réponses: 3
    Dernier message: 30/10/2012, 17h22
  2. Valeur macro variable dans une liste
    Par Noyellie dans le forum Macro
    Réponses: 10
    Dernier message: 18/09/2012, 17h41
  3. macro modification valeurs de variables
    Par perloch dans le forum Macro
    Réponses: 2
    Dernier message: 02/02/2009, 21h39
  4. Récupération d'une valeur dans une macro-variable
    Par auredura dans le forum Macro
    Réponses: 16
    Dernier message: 03/09/2008, 17h19
  5. Macro variable avec valeur contenant &
    Par Fatah93 dans le forum Macro
    Réponses: 2
    Dernier message: 19/05/2008, 15h11

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