Lancement auto macro du classeur personnel en ouvrant un fichier spécifique

Bonjour à toutes et à tous,

J'ai un trou de mémoire et suis tombée dedans

J'aimerai lancer une macro spécifique contenu dans mon CMP (Classeurs de Macros Personnelles) en ouvrant un fichier spécifique

Il me semblait que je devais créer un module de class avec

Private WithEvents xlApp As Application

Private Sub xlApp_WorkbookOpen(ByVal Wb As Workbook)
  If Wb.Name = "MonFichier.xlsx" Then
    MsgBox "Ouverture classeur"
  End If
End Sub

Mais ça ne veut pas fonctionner, qu'ai-je oublié ?

Par avance merci

A+

Bonjour,

Dans un module standard :

Dim moAppEventHandler As cAppEvents

Sub InitApp()
    Set moAppEventHandler = New cAppEvents
    With moAppEventHandler
        Set .xlApp = Application
    End With
End Sub

"cAppEvents" est le nom du module de classe. La macro InitApp doit être exécutée à l'ouverture du classeur.

Daniel

Bonjour DanielC et merci pour le retour

Comme je bosse encore, ce matin j'ai ouvert mon PC bureau et retrouvé le code

J'avais plus "simple" à mes yeux, dans ThisWorkbook il faut mettre

Option Explicit

Private Cl As ClassAppEvents

Private Sub Workbook_Open()
   Set Cl = New ClassAppEvents
End Sub

dans le module de classe nommé "ClassAppEvents", il faut mettre

Option Explicit

Public WithEvents App As Application

Private Sub Class_Initialize()
   Set App = Application
End Sub

Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
'Intercepte l'ouverture de tout classeur
  If Wb.Name <> "PERSONAL.XLSB" Then
    ' S'il s'agit du fichier de tréso
    If InStr(1, Wb.Name, "Tréso") > 0 Then
      ' Code à lancer si fichier de trésorerie
    End If
  End IF
End Sub

C'est le Class_Initialize que j'avais oublié

Bonne journée et bonnes vacances (au cas où)

A+

Bonjour,

Bon à savoir. Merci du retour.

Daniel

Rechercher des sujets similaires à "lancement auto macro classeur personnel ouvrant fichier specifique"