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 :

Lancement macro vba avec DDE


Sujet :

Macro

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

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

    Informations forums :
    Inscription : octobre 2014
    Messages : 62
    Points : 49
    Points
    49
    Par défaut Lancement macro vba avec DDE
    Bonjour,

    Je me permets de venir vers vous car j'ai récupérer un bout de code pour lancer une macro vba via SAS - DDE.
    Lorsque je créée une macro toute bête qui écrit "test" en cellule A1, ça fonctionne. A partir du moment ou je lance une macro plus conséquente, ... impossible.

    Ci dessous le code évoqué :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    /* Lancement EXCEL */
    options noxwait noxsync;
    filename sys dde "Excel|system";
    data _NULL_ ;
        length FID RC STOP 8 ;
        FID = FOPEN("SYS","S");                         
        if FID = 0 then do ;                            
            RC = SYSTEM("start excel");                 
            STOP = datetime() + 20 ;                    
            do while (FID = 0) ;                        
                FID = FOPEN("SYS","S");                 
                if (Datetime() > STOP) then FID = 1 ;   
            end ;
        end ;
        RC = fclose(FID);
    run ;
     
    /* Ouverture fichier EXCEL */
    data _null_;
        file SYS;
        put "[ERROR(false)]"; /* Pour éviter message sur MàJ */
        put "[open(""&chemin_excel_vba.\&file_excel_vba."",,TRUE)]";
    run;
     
    data _null_;
      attendre=sleep(30);
    run;
     
    /* Lancement de la macro */
    data _NULL_ ;
        file sys;
        put "[run(""&macro_name."")]";
    run;
     
    /* Enregistrement du fichier */
    DATA _null_;
        file SYS;
    	%IF %upcase(&save_or_saveAS.)=SAVE %THEN %DO;
    		put "[save()]";
    	%END;
    	%ELSE %DO;
    		put '[SAVE.AS("' "&chemin_excel_vba_fin.\&file_excel_vba_fin." '")]';
    	%END;
    run;
     
    data _null_;
        file SYS;
        put "[close()]";
    run;
     
    data _null_;
      attendre=sleep(30);
    run;
     
    data _null_;
        file SYS;
     put '[Quit]';
    RUN;
    J'ai bien essayé de temporiser entre les taches et j'ai été jusqu'à mettre 180 secondes (pr une macro qui tourne en 20 secondes quand elle est lancée manuellement). C'est en train de me rendre chèvre !

    Mon message d'erreur est classique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    ERROR: Session DDE n'est pas prête.
    FATAL: Unrecoverable I/O error detected in the execution of the DATA step program.
           Aborted during the EXECUTION phase.
    Pensez vous pouvoir m'aider ?

    D'avance je vous remercie de votre aide.

    Cordialement,

  2. #2
    Membre éprouvé
    Avatar de Stackware
    Homme Profil pro
    ArchiDuc de la Sasserie
    Inscrit en
    juillet 2013
    Messages
    438
    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 : 438
    Points : 1 017
    Points
    1 017
    Billets dans le blog
    4
    Par défaut
    Salut,
    Peut-être une piste ici?

Discussions similaires

  1. Plantage sur macro VBA avec listbox
    Par rlapt dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/12/2011, 08h06
  2. Lancer une macro VBA avec du js
    Par Invité(e) dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/08/2011, 14h51
  3. lancer une macro VBA avec java
    Par butfy dans le forum Débuter
    Réponses: 1
    Dernier message: 22/07/2010, 16h50
  4. Lancer une macro VBA avec du js
    Par butfy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/07/2010, 11h58
  5. Erreur 400 après lancement Macro VBA Excel
    Par ananar dans le forum Macros et VBA Excel
    Réponses: 36
    Dernier message: 23/08/2008, 15h33

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