Macro Excel BeforePrint

Bonjour,

J’ai un petit problème de macro qui me prend bien la tête.
Je souhaite écrire automatiquement à l’impression dans le pied de page (à droite) le chemin du fichier.
J’utilise donc la macro BeforePrint comme ceci:

“
Private Sub Workbook_BeforePrint(Cancel As Boolean)

For Each Sh In ActiveWorkbook.Worksheets
Sh.PageSetup.RightFooter = ActiveWorkbook.FullName
Next Sh

End Sub
“

Et cela fonctionne bien. Le truc c’est que je souhaiterais que cette macro soit activable de n'importe quel fichier excel sur mon pc (voir même d’autres en reseau) et pas seulement dans ce fichier où j’ai écrit cette macro.

Je suis convaincu que ce n’est pas compliqué, probablement faut-il juste enregistrer la macro dans “All open workbooks” mais voilà je bloque =(

Merci d’avance !!

G.

ps: Excel 2000
Configuration: Windows 2000 / Firefox 3.0.18

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonsoir,

    Sur excel 2003 je ne pense pas que ce soit possible.
    Sur 2007 je l'ignore...
    eric
    1. je vais encore embeter un peu, j'aimerais mettre le chemin du fichier, en pied de page, en couleur grise, pour que ce soit plus discret a l'impression.

      je suppose qu'il y a juste une ligne a rajouter dans la boucle, donc s'il vous plait ... ^__^

      merci
      1. Contributeur
        Ben tu peux ouvrir tous tes fichiers et lancer la macro, ensuite le classeur garde le pied de page.
        Il ne faudra le refaire que sur les nouveaux (enfin tant qu'ils ne sont pas déplacés...)
        Si je trouve une autre idée je reposterai ici
        eric
        1. Hum okay merci pour la boucle, eric =)

          Donc pas moyen d'avoir la macro activée automatiquement pour avoir le chemin du fichier à l'impression =/
          1. Contributeur
            Bonjour,

            Pour la boucle sur les classeurs ouverts tu pourrais faire ainsi :
            Sub piedpage()
                Dim wb As Workbook, sh As Worksheet
                For Each wb In Workbooks
                    With wb
                        For Each sh In .Worksheets
                            sh.PageSetup.RightFooter = ActiveWorkbook.FullName
                        Next sh
                    End With
                Next wb
            End Sub

            Workbook_BeforePrint est un évènement du classeur et n'agira que sur celui-ci.
            eric