Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Lancement automatique d'une macro

  • Initiateur de la discussion Initiateur de la discussion SylvainJ
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

SylvainJ

Guest
Bonjour,

Je suis nouveau sur le forum et novice pour tout ce qui concerne Excel.

Dans le cadre de mon stage, je génère chaque semaine des fichiers Excel à partir d'une base Access.
J'aimerais savoir s'il est possible de lancer automatiquement une macro sur ces fichiers (et uniquement ceux-ci) soit à la première ouverture soit avant (la macro modifie les données du fichier, donc il faut qu'elle ne s'exécute qu'une seule fois).
La macro est faite, mais mon responsable veut que tout se passe sans rien faire, même cliquer sur un bouton lançant la macro l'ennuie profondément (soupirs... 😱 ).

J'espère avoir été clair dans mes explications.
Merci de vos conseils,
Sylvain
 
Re : Lancement automatique d'une macro

Bonjour Sylvain, bonjour le forum,

Tu peux utiliser l'événement Open du classeur qui exécutera la macro à l'ouvertuire de celui-ci. Soit tu recopies le code soit tu l'appelles. Par exemple si elle se trouve dans le Module1 et s'appelle Macro1, ça donnerait :

Code:
Private Sub Workbook_Open()
Module1.Macro1
End Sub

Ce code est à placer dans l'élément ThisWorkbook par VBE.
 
Re : Lancement automatique d'une macro

Je suis finalement parvenu au bout de mes peines:

Code:
Function MacroExcel(ByVal strClasseurFichier As String, ByVal strClasseurMacro As String)
Dim xlApp As Excel.Application
Dim wbk As Excel.Workbook

Set xlApp = CreateObject("Excel.Application")

xlApp.Workbooks.Open (strClasseurMacro)
Set wbk = xlApp.Workbooks.Open(strClasseurFichier)

On Error Resume Next
xlApp.Run "ClasseurMacro.xls!maMacro"
If Err.Number > 0 Then
    ' Fermer le classeur sans enregistrer les changements
    wbk.Close False
Else
    ' Fermer le classeur en enregistrant les changements
    wbk.Close True
End If

Set wbk = Nothing

' Quitter Excel
xlApp.Quit
Set xlApp = Nothing
End Function

Si ca peut servir à qq1.

Ciao,
Sylvain
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…