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 :
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 ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.Wait (Now + TimeValue("0:10:00"))
********
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!
Partager