OVH Cloud OVH Cloud

Problème de processus Access Excel

2 réponses
Avatar
Nikolas
Bonjour,

J’ai un problème pour envoyer mes données vers Excel. Je dois envoyer
plusieurs données sous Excel et j’utilise plusieurs procédures sauf qu’Access
s’en mêle les pinceaux. La solution serait de tuer le processus Excel à
chaque fin d’envoi de donnée ou de déterminer si le processus d’envoi est
terminé puis passer au suivant. Pourriez-vous me montrer comment je peux tuer
le processus Excel ou comment déterminer la fin d’un processus. Merci pour
votre aide.

Nikolas

Voici la procédure que j'utilise pour exécuter toutes mes procédures

Sub TransferToExcelSemestrielRegionTotalData()

TransfertToExcelCAILaPosteRegSemTotalR1D
TransfertToExcelCAISocieteGeneraleRegSemTotalR1D
TransfertToExcelCAICaisseEpargneRegSemTotalR1D

TransfertToExcelCAILaPosteRegSemTotalR2D
TransfertToExcelCAISocieteGeneraleRegSemTotalR2D
TransfertToExcelCAICaisseEpargneRegSemTotalR2D

TransfertToExcelCAILaPosteRegSemTotalR3D
TransfertToExcelCAISocieteGeneraleRegSemTotalR3D
TransfertToExcelCAICaisseEpargneRegSemTotalR3D

TransfertToExcelCAILaPosteRegSemTotalR5D
TransfertToExcelCAISocieteGeneraleRegSemTotalR5D
TransfertToExcelCAICaisseEpargneRegSemTotalR5D

TransfertToExcelCAILaPosteRegSemTotalR6D
TransfertToExcelCAISocieteGeneraleRegSemTotalR6D
TransfertToExcelCAICaisseEpargneRegSemTotalR6D

TransfertToExcelCAIRCreditLyonnaisRegSemTotalR7D

End Sub


et voici une de mes procédures

Sub TransfertToExcelCAILaPosteRegSemTotalR1D()

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim fichier As Variant
Dim stAppName As String

fichier = Application.CurrentProject.Path

Set db = DBEngine.OpenDatabase(fichier & "\Hot_Line.mdb")
Set rs = db.OpenRecordset("106: Requete Selection08", dbOpenDynaset)

Dim XL_App As Object
Set XL_App = CreateObject("Excel.Application")
Dim XL_classeur As Object
Dim XL_feuille As Object
Dim Rg As Range
Dim Nb As Long
Dim Sh As Worksheet
Dim monadresse

With XL_App
Set XL_classeur = .Workbooks.Open(fichier &
"\Résultats_Hot_Line.xls")
Set Sh = XL_classeur.Sheets("Region_Semaines")

With Sh
Set Rg = .Range("B6").End(xlToRight).Offset(0, 1)
End With

If rs.EOF = False Then
Rg.Offset(0).CopyFromRecordset rs
Rg.CurrentRegion.Font.Bold = True
Rg.CurrentRegion.WrapText = True
Rg.CurrentRegion.HorizontalAlignment = xlHAlignCenter
Rg.CurrentRegion.VerticalAlignment = xlVAlignCenter
Else
MsgBox "Aucun enregistrement trouvé."
End If

.DisplayAlerts = False
.ActiveWorkbook.Save
.ActiveWorkbook.Close
.DisplayAlerts = True
.Quit

End With

db.Close
XL_App.Quit
Set XL_App = Nothing
Set XL_classeur = Nothing
Set XL_feuille = Nothing

End Sub

2 réponses

Avatar
Gafish
Bonjour

Nikolas wrote:
Pourriez-vous
me montrer comment je peux tuer le processus

With XL_App
......
.Quit
End With

XL_App.Quit


Tu as vu tu as deux fois XL_App.Quit, ca fait un de trop.
Et à la place de celui qui reste, je ferai à la place un
XL_App.Application.Quit

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Nikolas
Merci, Je vais regarder tes conseils

Nikolas


Bonjour

Nikolas wrote:
Pourriez-vous
me montrer comment je peux tuer le processus

With XL_App
......
.Quit
End With

XL_App.Quit


Tu as vu tu as deux fois XL_App.Quit, ca fait un de trop.
Et à la place de celui qui reste, je ferai à la place un
XL_App.Application.Quit

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr