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!