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 :

bug du code dans macro-programme uniquement


Sujet :

Macro

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 210
    Points : 147
    Points
    147
    Par défaut bug du code dans macro-programme uniquement
    Bonjour,
    Le code suivant permet d'insérer deux valeurs dans des cellules contiguës d'Excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATA _null_;file write;put "Paris" '09'x "Lyon" '09'x ;run;
    Il fonctionne parfaitement. Par contre, le code "macrotisé" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATA _null_;file write;	 put &a_inserer. ;run;
    donne une erreur (après l'instruction file write):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ERROR 22-322: Erreur de syntaxe ; syntaxe requise : un nom, une chaîne entre guillemets,
                  arrayname, #, (, +, /, //, ;, @, @@, OVERPRINT, _ALL_, _BLANKPAGE_, _ODS_,
                  _PAGE_.
     
    ERROR 200-322: Le symbole n'est pas reconnu et sera ignoré.
    ... alors que, dans la Log, les instructions exécutées sont bien celles de mon premier code ???

    Précision (qui a son importance !) :

    Le 2e code fonctionne également, mais seulement à l'EXTERIEUR de toute macro (et c'est ce qui m'embête !)

  2. #2
    Membre averti

    Homme Profil pro
    Technical Account Manager
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technical Account Manager

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 318
    Points
    318
    Billets dans le blog
    1
    Par défaut


    Quand une macro ne marche pas, tu peux aller dans la bibliothèque work il me semble.
    Tu as un répertoire macro qui s'est crée avec tes macros stockés.
    Du coup supprime les, et relance les après.
    Il arrive qu'une macro plante parce-que tu l'as lancé plusieurs fois avec une erreur.

  3. #3
    Membre éclairé

    Femme Profil pro
    SAS FRANCE - Support Clients France et Europe
    Inscrit en
    Février 2010
    Messages
    289
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : SAS FRANCE - Support Clients France et Europe
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 289
    Points : 886
    Points
    886
    Par défaut
    Bonjour,

    Il faudrait ajouter avant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    options mprint ;
    %put a_inserer = &a_inserer ;
    et envoyer la log qu'on voit bien ce qui se passe.

    Le fait que le programme fonctionne selon qu'il est en dehors d'un macro-programme laisse penser à une différence macro locale / macro globale, qui peut expliquer que dans un cas elle est connue mais pas dans l'autre.
    Par exemple, si la macro a_inserer est créée au sein d'un macro-programme, il faut s'assurer qu'elle a été déclarée en macro globale pour qu'elle existe bien en dehors de ce macro-programme, et qu'elle puisse ainsi être utilisée dans le reste de la session SAS.
    Cordialement,

    --
    Géraldine CADE-DESCHAMPS
    Consultante ▪ Support Clients SAS
    Tel: +33 1 60 62 12 12 ▪ support@sas.com
    www.sas.com/france
    SAS® … THE POWER TO KNOW®

Discussions similaires

  1. "Exporter du code" dans un programme
    Par amira dans le forum Langage
    Réponses: 15
    Dernier message: 07/07/2011, 08h27
  2. Réponses: 0
    Dernier message: 28/06/2010, 20h27
  3. Erreur dans macro programme
    Par 8twilight8 dans le forum Macro
    Réponses: 5
    Dernier message: 04/05/2009, 11h53
  4. Ajouter une reference à Access par le code dans un programme VB ?
    Par Chekov dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 12/12/2007, 00h23

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