Bonjour à tous,
à partir d'access j'importe des données d'excel mais impossible de fermer excel à la fin du programme (il reste dans le task manager) même en utilisant quit et nothing. J'ai fait le même programme que le suivant mais avec un CreateObject + quit. Ne marche pas non plus. L'application se ferme bien quand il n'y a pas la ligne DoCmd... Pourtant, quand il n'y a que cette ligne, aucune instance Excel ne s'ouvre. Il doit y avoir qqch qui maintient Excel ouvert mais j'arrive pas à voir quoi
Merci pour votre aide
Sub execution()
Dim var As Integer
Dim objXL As Object
Dim wbexcel As Object
Dim requete, requete1, requete2, requete3 As String
Dim adresse As String
Dim nb_lignes As Integer
Dim vari As Long
adresse = "D:\DailyMonitor" + Form_Formulaire1.Texte0.Value + ".xls"
Set objXL = GetObject(adresse)
vari = Form_Formulaire1.Texte0.Value
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "Titres", adresse, True, "Controls!W4:AA546"
objXL.Sheets("Controls" ).columns("Y:AA" ).Delete
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "Volat", adresse, True, "Controls!X4:AN546"
objXL.Sheets("Stocks" ).Range("W9" ) = "Returns 1-m"
objXL.Sheets("Stocks" ).Range("X9" ) = "Returns 3-m"
objXL.Sheets("Stocks" ).Range("Y9" ) = "Returns 6-m"
objXL.Sheets("Stocks" ).Range("Z9" ) = "Returns 1-y"
objXL.Sheets("Stocks" ).columns("C:S" ).Delete
objXL.Sheets("Stocks" ).Range("B9" ) = "RIC"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "Returns", adresse, True, "Stocks!B9:J551"
objXL.Sheets("Stocks" ).columns("C:J" ).Delete
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "Liquidity", adresse, True, "Stocks!B9:H551"
objXL.Sheets("Stocks" ).columns("C:J" ).Delete
objXL.Sheets("Stocks" ).columns("E:H" ).Delete
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "Indicators", adresse, True, "Stocks!B9:F551"
requete = "UPDATE Volat SET Volat.Datum =" + vari + " WHERE Volat.Datum=0"
DoCmd.RunSQL requete
requete1 = "UPDATE Indicators SET Indicators.Datum =" + vari + " WHERE (((Indicators.Datum)=0))"
DoCmd.RunSQL requete1
requete2 = "UPDATE Liquidity SET Liquidity.Datum =" + vari + " WHERE (((Liquidity.Datum)=0))"
DoCmd.RunSQL requete2
requete3 = "UPDATE Returns SET Returns.Datum =" + vari + " WHERE (((Returns.Datum)=0))"
DoCmd.RunSQL requete3
Set wbexcel = Nothing
Set objXL = Nothing
End Sub