Choisir des pieds de pages différents en VBA

Bonjour,

Est-il possible de changer de pied de page en vba selon une cellule sélectionnée par exemple ?

Merci pour votre aide.

Bonne journée à tous

Bonjour, sans fichier exemple la question reste un peu vague.

Dans l'absolu oui c'est possible ; un simple enregistrement d'une nouvelle macro vous montrera le code pour le paramètrage du pied de page.

Pour le reste celà est encore imprécis. " selon une Cellule sélectionnée " vous entendez quoi par là ? c'est son contenu qui indiquer le texte à changer ?

si non comment seront trouvés le ou les textes à utiliser dans le pied de page ?

Un exemple avec comme condition si la cellule A1=1 alors changement du pied de page

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

if range("A1")value=1 Then

    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = "texte gauche"
        .CenterFooter = "texte mileu"
        .RightFooter = "texte droite"
        .LeftMargin = Application.InchesToPoints(0.708661417322835)
        .RightMargin = Application.InchesToPoints(0.708661417322835)
        .TopMargin = Application.InchesToPoints(0.748031496062992)
        .BottomMargin = Application.InchesToPoints(0.748031496062992)
        .HeaderMargin = Application.InchesToPoints(0.31496062992126)
        .FooterMargin = Application.InchesToPoints(0.31496062992126)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .PrintQuality = 600
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlPortrait
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 100
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
    Application.PrintCommunication = True
End if
End Sub

Bonjour Wmenpl.

Merci pour votre aide c'est très sympa.

Alors en effet je ne suis pas bien clair. En fait je n'ai pas encore tous les éléments et comme je ne suis pas assez pro (même tres nul en VBA), je voulais déjà savoir si ce n'était pas un doux rêve

A priori, j'aurai une dizaine de choix possibles dans des cellules (des titres en gros) et avant d'envoyer le pdf à générer il faudrait que le pied de page change (je ne sais pas si je peux préparer cette liste de pieds de page et du coup juste faire le choix selon la cellule sélectionnée).

Aussi, il faudrait que je joigne un pdf deja existant au pdf généré (un autre sujet mais aussi un autre soucis pour moi !!!) Je pense que la solution doit etre de générer le pdf et le fusionner avec un deja enregistré.

Merci beaucoup encore.

Ok si le Titre est une varialbe et qu'il se trouve dans la cellule B1 (par exemple) on pourrait utiliser le même code que l'exemple précédent

et à l'endroit ou on indique l'intitulé au centre du bas de page on utiliserait une ligne du genre :

.CenterFooter = range("B1")value ' à la place de "texte mileu" précédemment indiqué dans l'exemple.

Merci beaucoup. Je vais tenter de bidouiller tout cela.

Merci pour votre aide, grace à vous j'ai pu avancer. J'ai malgré tout deux soucis.

- selon le texte que j'inscris dans la cellule de ref, j'ai une erreur "10004" impossible de définir la propriété centerfooter de la classe pagesetup

Est-ce qu'il y a des caractères interdits car cela est bien du au contenu ?

- mon pied de page dynamique se met bien a jour quand je vais avant specifier dans la mise en page du classeur pied de page a "aucun" et ensuite le document généré garde le pied de page qui a été généré la première fois sans se mettre à jour. Lorsque je je retourne dans la mise en page, pied de page, celui actif est celui qui a deja été généré la première fois....

y a t'il moyen de forcer cette maj d'une manière ou d'une autre ?

Merci beaucoup

Bonjour,

Puisque le contenu de la cellule de référence sera du texte alors peut-être ainsi :

.CenterFooter = range("B1").Text

Merci, mais non ca n'a rien changé

Merci, mais non ca n'a rien changé

Tu peux essayer d'enregistrer une nouvelle macro dans laquelle tu entres manuellement le texte souhaité.

ensuite tu test cette macro pour voir si celà engendre la même erreur.

Oui je vais tenter ca.. et sinon est-il possible d'avoir une image en pied de page sur le gauche et centre et de conserver la numerotation des pages en droite ? Ca m'éviterai d'avoir ce soucis avec des caractères qui devront varier et donc aléatoires ?

merci pour votre aide

J'ai créé une variable string avec le meme contenu et meme erreur en execution...

Merci malgré tout pour l'idée !

Rechercher des sujets similaires à "choisir pieds pages differents vba"