Bonjour,

J'ai dans acces un bouton qui lance une query qui crée une table et puis qui exporte cette table dans excel (C:\Trop long.xls)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
    stDocName = "Créer trop long"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    DoCmd.RunSavedImportExport ("Export Trop long")
J'aimerai que ce bouton effectue une opération supplémentaire, appliquer au fichier une macro excel de mise en page

Cette macro est stockée dans C:\Program Files\Microsoft Office\Office12\XLSTART\PERSONAL.XLSB (je ne peux pas la stocker dans C:\Trop long.xls vu que le fichier est effacé des que j'en exporte une nouvelle version) et s'appelle "PERSONAL.XLSB!trop_long"

Apres avoir pioché dans la faq j'ai fait ca
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Dim objXL As Object, x
    On Error Resume Next
    Set objXL = CreateObject("Excel.Application")
    With objXL.Application
        .Visible = True
        .Workbooks.Open "C:\Program Files\Microsoft Office\Office12\XLSTART\PERSONAL.XLSB"
        .Workbooks.Open "Z:\Trop long.xls"
        x = .Run("PERSONAL.XLSB!trop_long")
    End With
    objXL.Save
    objXL.Close
    Set objXL = Nothing
Ca ouvre bien mon fichier et ca fait bien tourner la macro, par contre, ca l'ouvre en read only et je ne peux donc pas l'enregistrer

Idealement, je voudrais que le code ouvre le fichier excel, fasse tourner la macro, sauve, et quitte le fichier.

Est-ce que quelqu'un sait comment remédier a cela?

Merci beaucoup

Emmanuelle