FAQ MS-AccessConsultez toutes les FAQ

Nombre d'auteurs : 140, nombre de questions : 926, dernière mise à jour : 30 mars 2017 

 
OuvrirSommaireVBAInteraction avec d'autres applicationsApplications Office
 
Sélectionnez
    Dim xlApp As Object
    Dim mySheet As Object
    
    Set xlApp = CreateObject("Excel.Application")
    Set mySheet = xlApp.Workbooks.Open("D:\EXCEL\test.xls") ' Définit le fichier EXCEL à ouvrir
    
    ' Endroit  mettre le code de pilotage

    ' Code de fermeture
    mySheet.Save
    mySheet.Close
    xlApp.Quit
    Set xlApp = Nothing
    Set mySheet = Nothing

Remarque : si vous créez un nouveau fichier plutôt que d'en ouvrir un nouveau en utilisant

 
Sélectionnez
    Set mySheet = xlApp.Workbooks.Add 

vous devrez obligatoirement remplacer

 
Sélectionnez
     mySheet.Save

par

 
Sélectionnez
     mySheet.SaveAs "NomDuFichier" 

car quand le nom du fichier n'est pas connu la méthode Save affiche une boîte de dialogue qui ne sera visible que si Excel l'est, ce qui n'est pas le cas dans notre exemple. En dehors de la phase de test il est préférable de ne pas rendre l'application visible pour éviter que l'utilisateur n'interfère, par exemple en fermant Excel.

Mis à jour le 29 décembre 2003  par Bidou

Lien : Utiliser Excel à partir de Visual Basic
Lien : VB/VBA : Programmer efficacement avec Excel

 
Sélectionnez
Sub ExécuterMacroAccess()
 Dim MonAccess As New Access.Application
 MonAccess.OpenCurrentDatabase "D:\etude.mdb" 'Ici le chemin de la BDD Access
 DoCmd.RunMacro "Export" 'Ici le nom de la macro
 MonAccess.Quit acquitsaveNone
 Set MonAccess = Nothing
End Sub
Créé le 10 mai 2005  par tibadabo

Dans Access on fait une procédure dans un module.

Exemple :

 
Sélectionnez
Public Sub test(pArg as string)
MsgBox "Bonjour Maître "  & pArg
End Sub

Et on l'appelle de la façon suivante depuis Excel ou toute autre application Office VBA :

 
Sélectionnez
Sub Bouton1_QuandClic()
Dim MonAccess As New Access.Application
MonAccess.OpenCurrentDatabase "D:\etude.mdb"
MonAccess.run "test", "Lucifer"
MonAccess.Quit acquitsaveNone
Set MonAccess = Nothing
End Sub
Créé le 10 mai 2005  par Lucifer

On définit au préalable dans un module Access, la procédure d'exportation.

Exemple :

 
Sélectionnez
Public Sub Export()
DoCmd.TransferSpreadsheet acExport, , "table1", "D:\Etudes1.xls", False, ""
DoCmd.TransferSpreadsheet acExport, , "table2", "D:\Etudes2.xls", False, ""
DoCmd.TransferSpreadsheet acExport, , "requête3", " D:\EtudesSuite.xls ", False, ""
DoCmd.TransferSpreadsheet acExport, , "requête4", " D:\EtudesSuite.xls ", False, ""
DoCmd.TransferSpreadsheet acExport, , "X OPCVM brut", " D:\EtudesAutre.xls ", False, ""
End Sub

Ensuite on appelle la procédure Export de la façon suivante depuis Excel ou toute autre application Office VBA :

 
Sélectionnez
Sub Bouton1_QuandClic()
Dim MonAccess As New Access.Application
MonAccess.OpenCurrentDatabase "D:\etude.mdb"
MonAccess.run "Export"
MonAccess.Quit acquitsaveNone
Set MonAccess = Nothing
End Sub 
Créé le 10 mai 2005  par Lucifer
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.