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 :

Créer un format sous condition


Sujet :

Macro

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 156
    Par défaut Créer un format sous condition
    Hello le forum !

    Je m'en remets à vous car, dans une macro d'import, je souhaiterais créer un format spécifique pour une variable selon un paramètre rentré via une macro variable.

    Je m'explique :

    J'initialise une macro variable à "oui" ou à "non" selon si je veux lire (ou pas) une variable :

    Et j'aimerais créer un format pour la variable IDstore si store est à oui (et donc ne pas créer de format si store est à non, logique ^^).
    J'ai fais comme suit dans ma macro. Est-ce bon ?
    Je n'ai pas d'erreur apparente dans la création des formats, mais plutôt dans l'input, et sur la deuxième variable.....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    data tmp&i.;
    				infile "&chemin.\base\&fichier."
    				delimiter = ";" missover dsd firstobs=2 lrecl=20000;
    				informat	debut_op ANYDTDTE.
    							fin_op ANYDTDTE.;
    				format 	toto $25.
    						tata 8.
    						titi $100.
    						tutu $100.
    						%if &store. = "oui" then idA3store 5. 
    						;
    				input toto $ tata titi $ tutu $ *%if &store. = "oui" %then idA3store ;
    			run;

    Merci d'avance pour votre aide !!!

  2. #2
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Créer un format sous condition
    Bonjour,

    Il faut sortir la sélection des instructions format et input.
    De plus, il faut écrire "oui" de la même façon (avec ou sans guillemets) dans l'affectation et dans la sélection.

    J'ai créé un fichier toto.txt avec ces trois lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    toto;tata;titi;tutu;idA3store
    aaa;8;bbb;ccc;5
    ddd;8;eee;fff;5
    Puis j'ai modifié votre code comme suit (notez le signe @ à la fin de la première instruction input pour bloquer la ligne en cours dans le buffer) :

    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
    %let store = "oui";
    %put &store;
     
    %macro toto;
    data tmp;
      infile "d:\toto.txt"
      delimiter = ";" missover dsd firstobs=2 lrecl=20000;
      format toto $25.
             tata 8.
             titi $100.
             tutu $100.;
      %if &store = "oui" %then %do; format idA3store 5.; %end;			
      input toto $ tata titi $ tutu $ @;
      %if &store = "oui" %then %do; input idA3store; %end;
    run;
    %mend;
     
    %toto;
    Cordialement,

Discussions similaires

  1. Créer une liste déroulante sous conditions
    Par Sylcoco dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/07/2011, 18h11
  2. Créer un curseur sous condition
    Par kalurar dans le forum PL/SQL
    Réponses: 5
    Dernier message: 06/07/2011, 14h48
  3. [SSRS] [2K5] Format cellule sous condition
    Par backdraf dans le forum SSRS
    Réponses: 11
    Dernier message: 21/09/2010, 17h43
  4. Sous condition modifier le format d'une cellule
    Par jbggg dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/11/2009, 17h40
  5. Créer une moyenne sous condition
    Par david1409 dans le forum Excel
    Réponses: 8
    Dernier message: 28/07/2009, 08h56

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