thierry.bayard
XLDnaute Junior
Bonjour,
J'essaie de créer une macro sur perso.xls de façon à paramétrer le pied de page de l'ensemble des classeurs et des feuilles :
- à chaque ouverture ou création de classeur
- à chaque insertion de feuille
- avant chaque impression (même si ca fait doublon mais je ne sais pas comment ca fonctionne avec les feuilles créées automatiquement pour les tableaux croisés dynamique par exemple).
Pour le moment, j'ai fait cela :
- Création d'un module de classe :
Ensuite sous ThisWorbook, j'ai ça :
Résultat : lors de l'ouverture d'excel, le pied de page est inséré. Par contre, ça ne marche pas lors de l'insertion d'une feuille, lors de l'ouverture d'un autre classeur, de la création d'un nouveau classeur (lorsque Excel est ouvert) et lors de l'impression.
Merci d'avance pour votre aide
J'essaie de créer une macro sur perso.xls de façon à paramétrer le pied de page de l'ensemble des classeurs et des feuilles :
- à chaque ouverture ou création de classeur
- à chaque insertion de feuille
- avant chaque impression (même si ca fait doublon mais je ne sais pas comment ca fonctionne avec les feuilles créées automatiquement pour les tableaux croisés dynamique par exemple).
Pour le moment, j'ai fait cela :
- Création d'un module de classe :
Code:
Public WithEvents App As Application
Private Sub App_WorkbookOpen(ByVal Wb As Excel.Workbook)
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
Sheets(1).Select
With ActiveSheet.PageSetup
.LeftFooter = "&Z&F&A"
End With
Next
Application.ScreenUpdating = True
End Sub
Private Sub App_Workbook_NewSheet(ByVal Sh As Object)
Application.ScreenUpdating = False
ActiveSheet.PageSetup.LeftFooter = "&Z&F&A"
Application.ScreenUpdating = True
End Sub
Private Sub App_Workbook_BeforePrint(Cancel As Boolean)
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
Sheets(1).Select
With ActiveSheet.PageSetup
.LeftFooter = "&Z&F&A"
End With
Next
Application.ScreenUpdating = True
End Sub
Ensuite sous ThisWorbook, j'ai ça :
Code:
Dim ApplicationClass As New Classe1
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Workbooks("perso.xls").Activate
Set ApplicationClass.App = Application
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Workbooks("perso.xls").Activate
Set ApplicationClass.App = Application
End Sub
Private Sub Workbook_Open()
Workbooks("perso.xls").Activate
Set ApplicationClass.App = Application
End Sub
Résultat : lors de l'ouverture d'excel, le pied de page est inséré. Par contre, ça ne marche pas lors de l'insertion d'une feuille, lors de l'ouverture d'un autre classeur, de la création d'un nouveau classeur (lorsque Excel est ouvert) et lors de l'impression.
Merci d'avance pour votre aide