36B rue des Vingt Toises
38950 Saint Martin le Vinoux
Tel : 04 38 86 45 08
Fax : 04 38 86 45 09
Email : afsic@afsic.fr
logo AFSIC

AFSIC : Des formations adaptées
à vos besoins.

Ressources informatiques

Ces ressources complètent les formations que nous proposons, en présenant des exemples ou en développant des points particuliers qui ne sont pas abordés pendant les formations par manque de temps.

Comment lancer une macro à l'ouverture de tous les classeurs Excel ?

La première idée qui vient à l'esprit est naturellement de créer un module Workbook_Open dans le conteneur ThisWorkBook. Mais le problème est que cette méthode impose de modifier chaque classeur pour activer cette macro.

Comment faire pour avoir une macro lancée quel que soit le classeur ouvert, sans faire de modification dans chaque classeur ?

Il faut écrire une classe qui permet de traiter les événements de la classe Application, puis affecter l'objet Application réel à cette nouvelle classe.

Par exemple, dans un module de classe appelé MonApp, tapez le code suivant :

Option Explicit 
Public WithEvents App As Application 
Private Sub App_WorkbookOpen(ByVal Wb As Workbook)    
MsgBox ("Ouverture du classeur " & Wb.Name) 
End Sub 

Puis dans le conteneur ThisWorkBook du fichier de macro personnel (PERSO.XLS), instanciez la classe MonApp et écrivez un module Workbook_Open., comme celui-ci :

Option Explicit 
Dim MonExcel As New MonApp 
Private Sub Workbook_Open() 
Set MonExcel.App = Application 
End Sub

 

© Afsic Sarl 2004 - 2010 | SIRET 450 865 324 00021 | RCS Grenoble