Lancer un macro dans un fichier xls à partir d'une commande d'ac ce
3 réponses
bigdeal
Bonjour
Voici mon exposé :
J'ai besoin de faire un traitement dans un fichier excel.
je voudrais lancer ce traitement directement à partir d'access (dans un
module vba)
Le but de la manip est de ne pas avoir besoin de rechercher et d'ouvrir le
fichier xls et que l'opération se réalise à partir d'un bouton dans un
formulaire.
J'ai déjà écrit ma macro pour xls en vba et je l'ai placée dans "perso.xls".
La seule chose qu'il me faut c'est comment lancer cette macro à partir
d'access.
Comment à partir du moment ou on lance le module en access :
il va repérer le répertoire ou se trouve le fichier xls à traiter
comment il lance le traitement, ou si je peux recopier mon code directement
dans mon module access ?
Je recherche les posts qui ont fait l'objet de cette demande, mais je ne
trouve pas vraiment ma réponse.
je remercie tous ceux qui pourraient me donner un coup de main.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Raymond [mvp]
Bonjour.
tu peux faire ceci, en décomposant les opérations: Private Sub Commande0_Click() Dim XL_App As New Excel.Application Dim XL_Classeur As Object Dim XL_Feuille As Object With XL_App Set XL_Classeur = .Workbooks.Open("C:Classeur1.XLS") Set XL_Feuille = XL_Classeur.Sheets("Feuil1") With XL_Feuille .Application.Run "Macro1" End With .ActiveWorkbook.Save .ActiveWorkbook.Close .Quit End With Set XL_App = Nothing Set XL_Classeur = Nothing Set XL_Feuille = NothingEnd Sub -- @+ Raymond Access MVP http://OfficeSystem.Access.free.fr/ http://OfficeSystem.Access.free.fr/runtime/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"bigdeal" a écrit dans le message de news:
Bonjour Voici mon exposé :
J'ai besoin de faire un traitement dans un fichier excel. je voudrais lancer ce traitement directement à partir d'access (dans un module vba) Le but de la manip est de ne pas avoir besoin de rechercher et d'ouvrir le fichier xls et que l'opération se réalise à partir d'un bouton dans un formulaire. J'ai déjà écrit ma macro pour xls en vba et je l'ai placée dans "perso.xls".
La seule chose qu'il me faut c'est comment lancer cette macro à partir d'access.
Comment à partir du moment ou on lance le module en access : il va repérer le répertoire ou se trouve le fichier xls à traiter comment il lance le traitement, ou si je peux recopier mon code directement dans mon module access ?
Je recherche les posts qui ont fait l'objet de cette demande, mais je ne trouve pas vraiment ma réponse.
je remercie tous ceux qui pourraient me donner un coup de main.
Bonjour.
tu peux faire ceci, en décomposant les opérations:
Private Sub Commande0_Click() Dim XL_App As New Excel.Application Dim
XL_Classeur As Object Dim XL_Feuille As Object With XL_App Set
XL_Classeur = .Workbooks.Open("C:Classeur1.XLS") Set XL_Feuille =
XL_Classeur.Sheets("Feuil1") With XL_Feuille
.Application.Run "Macro1" End With .ActiveWorkbook.Save
.ActiveWorkbook.Close .Quit End With Set XL_App = Nothing
Set XL_Classeur = Nothing Set XL_Feuille = NothingEnd Sub
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"bigdeal" <bigdeal@discussions.microsoft.com> a écrit dans le message de
news: FF0842EA-85B1-4E34-A30F-10F755EA0B26@microsoft.com...
Bonjour
Voici mon exposé :
J'ai besoin de faire un traitement dans un fichier excel.
je voudrais lancer ce traitement directement à partir d'access (dans un
module vba)
Le but de la manip est de ne pas avoir besoin de rechercher et d'ouvrir le
fichier xls et que l'opération se réalise à partir d'un bouton dans un
formulaire.
J'ai déjà écrit ma macro pour xls en vba et je l'ai placée dans
"perso.xls".
La seule chose qu'il me faut c'est comment lancer cette macro à partir
d'access.
Comment à partir du moment ou on lance le module en access :
il va repérer le répertoire ou se trouve le fichier xls à traiter
comment il lance le traitement, ou si je peux recopier mon code
directement
dans mon module access ?
Je recherche les posts qui ont fait l'objet de cette demande, mais je ne
trouve pas vraiment ma réponse.
je remercie tous ceux qui pourraient me donner un coup de main.
tu peux faire ceci, en décomposant les opérations: Private Sub Commande0_Click() Dim XL_App As New Excel.Application Dim XL_Classeur As Object Dim XL_Feuille As Object With XL_App Set XL_Classeur = .Workbooks.Open("C:Classeur1.XLS") Set XL_Feuille = XL_Classeur.Sheets("Feuil1") With XL_Feuille .Application.Run "Macro1" End With .ActiveWorkbook.Save .ActiveWorkbook.Close .Quit End With Set XL_App = Nothing Set XL_Classeur = Nothing Set XL_Feuille = NothingEnd Sub -- @+ Raymond Access MVP http://OfficeSystem.Access.free.fr/ http://OfficeSystem.Access.free.fr/runtime/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"bigdeal" a écrit dans le message de news:
Bonjour Voici mon exposé :
J'ai besoin de faire un traitement dans un fichier excel. je voudrais lancer ce traitement directement à partir d'access (dans un module vba) Le but de la manip est de ne pas avoir besoin de rechercher et d'ouvrir le fichier xls et que l'opération se réalise à partir d'un bouton dans un formulaire. J'ai déjà écrit ma macro pour xls en vba et je l'ai placée dans "perso.xls".
La seule chose qu'il me faut c'est comment lancer cette macro à partir d'access.
Comment à partir du moment ou on lance le module en access : il va repérer le répertoire ou se trouve le fichier xls à traiter comment il lance le traitement, ou si je peux recopier mon code directement dans mon module access ?
Je recherche les posts qui ont fait l'objet de cette demande, mais je ne trouve pas vraiment ma réponse.
je remercie tous ceux qui pourraient me donner un coup de main.
Raymond [mvp]
je renvoie en supprimant le chinois.
Private Sub Commande0_Click() Dim XL_App As New Excel.Application Dim XL_Classeur As Object Dim XL_Feuille As Object With XL_App Set XL_Classeur = .Workbooks.Open("C:Classeur1.XLS") Set XL_Feuille = XL_Classeur.Sheets("Feuil1") With XL_Feuille .Application.Run "Macro1" End With .ActiveWorkbook.Save .ActiveWorkbook.Close .Quit End With Set XL_App = Nothing Set XL_Classeur = Nothing Set XL_Feuille = Nothing End Sub
-- @+ Raymond Access MVP http://OfficeSystem.Access.free.fr/ http://OfficeSystem.Access.free.fr/runtime/ http://users.skynet.be/mpfa/ pour débuter sur le forum
je renvoie en supprimant le chinois.
Private Sub Commande0_Click()
Dim XL_App As New Excel.Application
Dim XL_Classeur As Object
Dim XL_Feuille As Object
With XL_App
Set XL_Classeur = .Workbooks.Open("C:Classeur1.XLS")
Set XL_Feuille = XL_Classeur.Sheets("Feuil1")
With XL_Feuille
.Application.Run "Macro1"
End With
.ActiveWorkbook.Save
.ActiveWorkbook.Close
.Quit
End With
Set XL_App = Nothing
Set XL_Classeur = Nothing
Set XL_Feuille = Nothing
End Sub
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
Private Sub Commande0_Click() Dim XL_App As New Excel.Application Dim XL_Classeur As Object Dim XL_Feuille As Object With XL_App Set XL_Classeur = .Workbooks.Open("C:Classeur1.XLS") Set XL_Feuille = XL_Classeur.Sheets("Feuil1") With XL_Feuille .Application.Run "Macro1" End With .ActiveWorkbook.Save .ActiveWorkbook.Close .Quit End With Set XL_App = Nothing Set XL_Classeur = Nothing Set XL_Feuille = Nothing End Sub
-- @+ Raymond Access MVP http://OfficeSystem.Access.free.fr/ http://OfficeSystem.Access.free.fr/runtime/ http://users.skynet.be/mpfa/ pour débuter sur le forum
j.gonzalez5
Salut,
tu peux essayer ca :
Sub automationExcel() Dim Ex As Excel.Application 'ajouter une référence à microsoft Excel dans le menu outilsréférences Dim chFichierExcel As String
chFichierExcel = "C:toto.xls" Set Ex = CreateObject("Excel.application") Ex.Workbooks.Open chFichierExcel Ex.Run "maMacro" 'il peut y voir un pb si le niveau de securité interdit les macros Ex.ActiveWorkbook.Close False Ex.Quit Set Ex = Nothing End Sub
tu peux également mettre directement le code de ta macro dans la procédure (oublie pas de mettre ex. avant pour qu'access comprenne que tu lui parles de la session excel créé.
je remercie tous ceux qui pourraient me donner un coup de main.
Salut,
tu peux essayer ca :
Sub automationExcel()
Dim Ex As Excel.Application 'ajouter une référence à microsoft Excel
dans le menu outilsréférences
Dim chFichierExcel As String
chFichierExcel = "C:toto.xls"
Set Ex = CreateObject("Excel.application")
Ex.Workbooks.Open chFichierExcel
Ex.Run "maMacro" 'il peut y voir un pb si le niveau de securité
interdit les macros
Ex.ActiveWorkbook.Close False
Ex.Quit
Set Ex = Nothing
End Sub
tu peux également mettre directement le code de ta macro dans la
procédure (oublie pas de mettre ex. avant pour qu'access comprenne que
tu lui parles de la session excel créé.
Sub automationExcel() Dim Ex As Excel.Application 'ajouter une référence à microsoft Excel dans le menu outilsréférences Dim chFichierExcel As String
chFichierExcel = "C:toto.xls" Set Ex = CreateObject("Excel.application") Ex.Workbooks.Open chFichierExcel Ex.Run "maMacro" 'il peut y voir un pb si le niveau de securité interdit les macros Ex.ActiveWorkbook.Close False Ex.Quit Set Ex = Nothing End Sub
tu peux également mettre directement le code de ta macro dans la procédure (oublie pas de mettre ex. avant pour qu'access comprenne que tu lui parles de la session excel créé.