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

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    février 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2005
    Messages : 125
    Points : 111
    Points
    111

    Par défaut problème de macro-quoting

    bonjour,

    J'ai un souci pour récupérer dans une macro-variable le contenu d'une variable SAS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    %let dep = 95;
    data _null_;
         libdep = put("&dep.",$dep.);
         call symput("dept",libdep);
    run;
    %put &dept. ;
    (où la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    libdep = put("&dep.",$dep.);
    permet d'obtenir le libellé du département : "Val d'Oise").
    Le problème se situe au niveau de l'apostrophe se trouvant dans ce libellé, ce qui fait bugger SAS (pour le Val de Marne, aucun problème !)
    Y a-t-il un moyen de gérer ce problème ?
    Merci !

  2. #2
    Membre éprouvé
    Avatar de Stackware
    Homme Profil pro
    ArchiDuc de la Sasserie
    Inscrit en
    juillet 2013
    Messages
    421
    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 : 421
    Points : 993
    Points
    993
    Billets dans le blog
    4

    Par défaut

    Salut,
    Ceci devrait t'aider : de la doc sur les quotes

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    février 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2005
    Messages : 125
    Points : 111
    Points
    111

    Par défaut

    Merci pour ta réponse, Stackware
    J'ai regardé ce document et j'ai pensé que sa fin était susceptible de répondre à mon problème. J'ai donc essayé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data _null_;libdep = put("&dep.",$dep.);call symput("dept",%bquote(libdep));run;
    et celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data _null_;libdep = put("&dep.",$dep.);call symput("dept",%unquote(%bquote(libdep)));run;
    Mais aucun des deux ne fonctionne

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    février 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2005
    Messages : 125
    Points : 111
    Points
    111

    Par défaut

    Bon, j'ai fini par trouver une solution : faire le %bquote à l'extérieur de l'étape data :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    data _null_;departement=put("&dep.",$dep.) ;call symput("libdep",departement);run;
    %let libdep = %bquote(&libdep.);

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

Discussions similaires

  1. problème de macro quoting
    Par RemiBousquet dans le forum Macro
    Réponses: 2
    Dernier message: 10/02/2010, 09h40
  2. [VBA]Problème de macro et de dimension.
    Par Invité dans le forum Général VBA
    Réponses: 2
    Dernier message: 26/04/2007, 12h50
  3. Problème sur macro (2 exécutions de code)
    Par Tsuna78 dans le forum Access
    Réponses: 2
    Dernier message: 19/03/2007, 21h24
  4. Réponses: 15
    Dernier message: 21/02/2007, 18h29
  5. [VBA-E] Problème activation macro
    Par kamshaa dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/02/2007, 18h02

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