Contenu d'une cellule -> en-tête & pied-de-page

Bonjour à tous,

je m'arrache les cheveux car j'aimerais retrouver dans mes en-tête et pied-de-page le contenu de certaines cellule...

Sub UpdateFooter()
ActiveSheet.PageSetup.LeftFooter = Range("A2").Value & vbLf & Range("C4").Value
End Sub 

Mais à l'impression, ça ne donne rien

Une piste pour mon problème ?

Bonjour Sistasse,

De quelle façon exécutes-tu la macro "UpdateFooter"?

De quelle façon exécutes-tu la macro "UpdateFooter"?

Rho, rien qu'à lire la question, je me sens trop c**

Je suis sur ma page... alt+F11. Je copie mon bout de code. Ctrl+s puis alt+q. Ctrl+s et Ctrl+p...

J'avoue que j'utilise d'autres macros, et que je ne me suis jamais posé la question de "quelle manière j'exécute la macro en tant que telle"..

Désolé

Un truc que j'oubliais... mais qui peut venir en second temps dans ma réflexion... j'aimerai que mes en-tête/pied de page soient différents de ceux de ma première page (ou que ceux de ma première page soient différents des autres, c'est selon )

Content de résoudre simplement en posant une question...

Pour le pied de page différent sur la 1ère page :

       ActiveSheet.PageSetup.FirstPage.LeftFooter.Text = "PREMIERE PAGE"

Je crois qu'il y a un quiproquo

En opérant de la sorte, mes en-tête/pied de pages ne bouge pas

Donc en fait, je ne sais pas si j'exécute correctement le schmilblick...

Tu as bien ajouté le code à la macro updatefooter?

Sauf erreur de ma page, si je suis sur ma page, que je vais dans VBA (alt+F11) et que je tape le code ci-dessous :

Sub UpdateFooter()
ActiveSheet.PageSetup.FirstPage.LeftFooter.Text = "PREMIERE PAGE"
ActiveSheet.PageSetup.LeftFooter = Range("A2").Value & vbLf & Range("C4").Value
End Sub

Ca devrait aller ?

C'est tout à fait ça...

Et ça ne fonctionne pas?

Bah...

C'est très bizarre, j'ai réussi à le faire apparaître (pied de page), mais quand j'ai changé le contenu de la cellule, ça n'a pas suivi

EDIT :

J'ai complété :

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Address = "$P$2" Then
        PageSetup.LeftFooter = Range("P2").Value
        ActiveSheet.PageSetup.FirstPage.LeftFooter = Range("P2").Value
    End If
End Sub

Mais je rencontre deux problèmes :

1_ rien ne s'affiche dans sur la première page (est-ce pcq j'ai mis une image dans l'en-tête de la première page?)

2_ lorsque je change le contenu de la cellule, j'ai des messages d'erreur :

Erreur d'exécution '438': propriété ou méthode non gérée par cet objet

Si je clique sur Débogage : il surligne la ligne "FirstPage"

Si ça t'es possible, envoies-moi le classeur que je regarde...

EXCEL bien reçu,

Je regarde ça demain et te donne des nouvelles,

Bonsoir,

Bonjour !

Je me permets un petit UP

Merci d'avance !

Désolé Sistasse,

J’ai eu peu de dispo ces jours derniers.

Je reprends ton sujet demain et te donne des nouvelles.

Bonjour Sistasse,

Je te propose :

1. Déplacer le code dans l'évènement "Worksheet_Activate". En effet, lorsque tu modifies la cellule P2 de "DATA", c'est l'évènement "Worksheet_Change" de "DATA" qui se déclenche et non l'évènement "Worksheet_Change" de "DCE_ADMIN".

2. Ajouter l'activation de la propriété "DifferentFirstPageHeaderFooter"

3. Ajouter la propriété .text à PageSetup.FirstPage.LeftFooter

Ce qui donne :

Private Sub Worksheet_Activate()
        PageSetup.LeftFooter = "&08" & Range("P2").Value
        PageSetup.DifferentFirstPageHeaderFooter = True
        PageSetup.FirstPage.LeftFooter.Text = "&08" & Range("P2").Value
End Sub

Désolé pour mon impatience

Entre temps, j'ai fait quelques modifs, du coup, j'ai essayé d'adapter :

Option Explicit
Private Sub Worksheet_Activate()
    If Target.Count > 1 Then Exit Sub
    If Target.Address = "$P$1" Or Target.Address = "$P$4" Then
        PageSetup.LeftFooter = "&08" & "L'EQUERRE scrl" & vbLf & Range("P1").Value
        PageSetup.RightFooter = "&08" & "&P/&N" & vbLf & Range("P3").Value

        PageSetup.DifferentFirstPageHeaderFooter = True
        PageSetup.FirstPage.LeftFooter.Text = "&08" & "L'EQUERRE scrl" & vbLf & Range("P1").Value
        PageSetup.FirstPage.RightFooter.Text = "&08" & "&P/&N" & vbLf & Range("P3").Value
End Sub

Mais les résultats attendus ne sont pas là. Si je modifie DATA, ça ne change pas les heater/footer

Mais le plus bizarre : si je modifie manuellement dans "DCE_ADMIN", les mofifs ne sont pas prises en compte

Pourquoi les même footer ? Parce que j'ai inséré une image dans le heater de ma première page... donc obligé de répéter pour les Footer (que je veux identique, eux).

Bonsoir Sistasse,

Je ne comprends pas la raison pour laquelle tu maintiens les 2 tests :

If Target.Count > 1 Then Exit Sub

If Target.Address = "$P$1" Or Target.Address = "$P$4" Then

Je te propose de supprimer ces 2 lignes.

Je les avais enlevé et ça ne marchait pas non plus... me suis dit que je devais les retirer, puisque tu ne le précisais pas.

Dans un cas, comme dans l'autre, lorsque je suis dans l'aperçu d'impression, les headers/footers ne se modifient pas.

Est-ce possible que ce problème soit lié à l'image que j'insère dans l'en-tête ?

[EDIT]

Du coup, j'ai fait le temps, manuellement j'ai supprimé tous les infos dans la mise en page des en-tête et pied de page...

Mnt, je n'ai plus rien qui s'affiche

J'ai beau retourner dans ma macro et sauver, et teste l'impression, les infos n'apparaissent plus.

Sistasse,

Chez moi, ça fonctionne...même avec l’image en page 1.

Pour déclencher l’évènement « Worksheet_change » il faut selectionner la feuille DATA puis revenir sur la feuille « DCE_ADMIN ».

Est-ce bien ce que tu fais?

A ne rien y comprendre !

Aujourd'hui, cela fonctionne à merveille !

Merci pour ton aide ! ! !

Rechercher des sujets similaires à "contenu tete pied page"