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

Macros et VBA Excel Discussion :

Pause macro et programme sas [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Économiste
    Inscrit en
    Janvier 2016
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Économiste

    Informations forums :
    Inscription : Janvier 2016
    Messages : 114
    Par défaut Pause macro et programme sas
    Bonjour tout le monde,

    J'ai un problème dans mon programme, si quelqu'un peut m'aider.

    J'ai une macro que voici :

    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
     
     
    Sub Programme_MAS_sira()
    '
    ' Programme_MAS_sira Macro
    ' Met à jour je KIT SAD
    '
     
     
    On Error GoTo errorHandler
     
    Application.DisplayAlerts = False
     
     
     
    Dim SAS As Object
    Dim fichier As String
     
    Set SAS = CreateObject("SAS.application")
    SAS.Visible = True
    SAS.Wait = True
     
    SAS.submit ("%include 'J:\GRP\E\6\E\Siramane\Kit SAD\MAS_KIT_SAS.sas'; ")
     
    Application.Wait (Now + TimeValue("0:10:00"))
     
     
    Call RUN_TCD
    Call copie_données
     
     
     
    MsgBox ("la mise à jour a été effectuée avec succès. Le fichier se trouve dans le répertoire : J:\GRP\E\6\E\Données SAD\Kit SAD\.")
     
     
     
    Dim MonDossier As String
    MonDossier = "J:\GRP\E\6\E\Données SAD\Kit SAD\"
     
    Shell Environ("WINDIR") & "\explorer.exe " & MonDossier, vbNormalFocus
     
     
    Application.DisplayAlerts = True
     
     
     
    Exit Sub
     
    errorHandler:
     
        MsgBox Err.Number & vbLf & Err.Description

    Mon problème se trouve au niveau de l'exécution du programme SAS. SAS s'ouvre comme il faut et exécute mon programme.
    Dans mon programme SAS, j'extrais des données et ensuite je demande à SAS d'exporter les données dans mon fichier excel dans lequel j'ai exécuté ma macro à l'aide d'un bouton.
    Ce qui fonctionne bien si je n’ajoute pas cette ligne de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Application.Wait (Now + TimeValue("0:10:00"))
    Lorsque je demande à ma macro d'attendre 10min, il y a des erreurs dans l'exécution de mon programme SAS au niveau de l'exportation des données ;


    ********

    ERROR: Connect: Le moteur de la base de données Microsoft Access ne peut pas ouvrir ou écrire sur le fichier «**». Il est
    déjà ouvert en mode exclusif par un autre utilisateur, ou vous devez avoir l’autorisation de visualiser et d’écrire
    sur ses données.
    ERROR: Erreur dans l'instruction LIBNAME.
    Echec de la connexion. Consultez le Journal pour plus d'informations.
    NOTE: Le Système SAS a interrompu le traitement de cette étape en raison d'erreurs.
    NOTE: Procédure EXPORT a utilisé (Durée totale du traitement) :
    temps réel 0.21 secondes
    temps UC 0.06 secondes

    ********



    Pourtant j'ai besoin de cette ligne de code car mon programme SAS dur environ 10 minutes pour faire le travail.
    Sans ce code, excel n'attend SAS et exécute la ligne suivante de ma macro. Or il faut absolument les données que SAS ajoutera à mon fichier excel pour continuer.

    Comment demander à macro d'attendre et pourvoir exporter une table vers mon fichier excel ouvert.


    Voilà le problème. J'ai essayé plusieurs moyens pour contourner cela mais je ne trouve rien.

    Si quelqu'un peut m'aider ça sera super.





    Merci et très bonne semaine!

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 153
    Par défaut
    Bonjour,

    Tel que tu le décris, le problème semble plus venir de ton programme SAS que de Excel.

    Cela dit...

    je demande à SAS d'exporter les données dans mon fichier excel dans lequel j'ai exécuté ma macro
    Tu essaies d'écrire sur le fichier Excel à l'origine de la macro? Qui est donc déjà ouvert ? Tu ne peux pas ouvrir le même fichier avec deux applications différentes en même temps. Si tu dois vraiment récupérer des données, tu devrais les stocker dans un autre fichier Excel temporaire, sur lequel tu irais ensuite chercher les données depuis Excel, plutôt que d'essayer de les écrire directement dans le classeur.

    Bref, une piste de réflexion à envisager. Essaie peut-être d'ouvrir ton classeur en lecture seule, et de voir si ton code fonctionne du coup.

    Cordialement,

    Poulpe

  3. #3
    Membre confirmé
    Homme Profil pro
    Économiste
    Inscrit en
    Janvier 2016
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Économiste

    Informations forums :
    Inscription : Janvier 2016
    Messages : 114
    Par défaut Remerciement
    Merci Mr poulpe,

    Je viens d'avoir votre idée de d'exporter les données vers un fichier temporaire.

    J'ai même déjà créer mon fichier temporaire et la macro qui va chercher les données dans ce fichier.
    Mon programme est en cours d'exécution en ce moment.

    Je vous tient au courant si cela fonctionne.


    Merci encore!

  4. #4
    Membre confirmé
    Homme Profil pro
    Économiste
    Inscrit en
    Janvier 2016
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Économiste

    Informations forums :
    Inscription : Janvier 2016
    Messages : 114
    Par défaut Remerciement
    Merci encore Mr Poulpe,

    Cela a fonctionné, l'idée du fichier temporaire.
    Je vais maintenant parfaire cette étape.


    Merci encore!

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

Discussions similaires

  1. problème macro-programme SAS
    Par joan_27 dans le forum Macro
    Réponses: 6
    Dernier message: 06/11/2015, 15h38
  2. Réponses: 10
    Dernier message: 01/03/2010, 17h06
  3. [Macro] Générer un programme SAS
    Par id301077 dans le forum Macro
    Réponses: 5
    Dernier message: 12/01/2009, 13h22
  4. [Macro] optimisation de programmes SAS
    Par bar_79 dans le forum Macro
    Réponses: 4
    Dernier message: 25/11/2008, 15h51
  5. [Macro] Lancement d'un programme SAS en batch
    Par fafabzh6 dans le forum Macro
    Réponses: 0
    Dernier message: 30/07/2008, 14h39

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