Pied de page sur plusieurs lignes

Signaler
Messages postés
12
Date d'inscription
jeudi 17 mars 2011
Statut
Membre
Dernière intervention
8 juin 2013
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour,

Depuis peu j'apprends Excel et je crée des feuilles de calcul assez simples. Je suis confronté à un problème et je m'arrache les cheveux depuis plus d'une semaine dessus.

En fait, je voudrais savoir comment faire, avec une macro, pour prendre les valeurs de 3 cellules d'une feuille et les mettre en pied de page d'une autre feuille. Le LeftFooter fonctionne bien mais pour une seule valeur, je n'arrive pas à mettre les 3 une en dessous de l'autre. Si vous avez la solution, ou au moins me mettre sur la voie pour que j'apprenne, ça me conviendra très bien.

Je vous remercie d'avance.

10 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Bonjour,
On ne peut, sans voir ton code, savoir comment tu as défini le texte à y mettre !
Ne jamais oublier de présenter le bout de code concerné par la difficulté rencontrée (rappel du règlement)


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.

Bonjour,

Le LeftFooter fonctionne bien mais pour une seule valeur, je n'arrive pas à mettre les 3 une en dessous de l'autre


En supposant que VBA le permette; je n'en suis pas convaincu et je n'ai pas envie d'essayer, il faut aussi que la taille des marges soit suffisante.
Messages postés
12
Date d'inscription
jeudi 17 mars 2011
Statut
Membre
Dernière intervention
8 juin 2013

D'abord, merci pour les réponses. Je n'ai pas mis mon code car je ne pensais pas que cela était nécessaire, mais je le mets :

Sub PiedDePage()

With ThisWorkbook.Sheets(5).PageSetup
.LeftFooter = ActiveSheet.Range("C12")
End With

End Sub

Donc ça c'est le code qui a fonctionné une seule fois. Il prend le contenu de C12 de la feuille active pour le mettre en pied de page de la feuille 5. En fait, même ce code est problématique, vu qu'il ne fonctionne plus (j'ai effacé le pied de page créé et depuis, plus rien).
J'ai essayé avec & chr(10) & ActiveSheet.Range("C11") pour avoir une deuxieme ligne mais ça n'a rien donné.
Pour répondre à cmarcotte, j'ai aussi augmenté la taille des marges, mais là encore, aucun changement. Je ne sais pas non plus si VBA le permet, il a ses limites aussi.
J'espère que ces explications vous suffiront pour m'aider, là je tourne en rond.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut

Quand tu enregistres une macro pendant que tu fais l'opération à la main, la séquence renvoyée est un peu plus complète que ça.
As-tu pensé à regarder parmi les options que tu as supprimé ?

    Application.PrintCommunication = False   ' (Sous Excel 2010)
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    Application.PrintCommunication = True
    ActiveSheet.PageSetup.PrintArea = ""
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = "Codes" & Chr(10) & "Source"
        .CenterFooter = ""
        .RightFooter = ""
        .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

Perso, je commencerai en utilisant tout puis en supprimant par paquet de 5 jusqu'à ce que ... ça marche plus, pour savoir d'où ça vient.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
J'ai essayé avec & chr(10) & ActiveSheet.Range("C11") pour avoir une deuxieme ligne mais ça n'a rien donné.

Tu as du alors faire une fausse manoeuvre, car fonctionne chez moi sans faille ...

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
12
Date d'inscription
jeudi 17 mars 2011
Statut
Membre
Dernière intervention
8 juin 2013

@ Jack : Ben en fait, ça ne marche pas, mais je cherche dans cette voie... entre autres.

@Ucfoutu : oui, j'en ai fait une, lors de mon premier test, avec un seul range à copier en pied de page, je me suis mis en affichage "Mise en page", j'ai sélectionné le pied de page créé et je l'ai effacé. Depuis, plus moyen de rien faire .
Peut-être que le classeur subit encore les effets de la première macro, alors qu'elle est effacée, je ne sais pas.

Sinon j'essaie aussi de créer des variables et d'y affecter les valeurs voulues, pour ensuite faire .LeftFooter = var1 & Chr(10) & var2 etc...
Mais pareil, ça ne m'affiche rien. Grrrrr
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Si tes pieds de page n'apparaissent plus, c'est qu'il y a un autre problème, indifférent du contenu.
Regarde les options, les polices ou les marges que tu aurais modifiées ...
Que donne ce même bout de code dans un classeur tout neuf ? (je t'assure que cela fonctionne)
Messages postés
12
Date d'inscription
jeudi 17 mars 2011
Statut
Membre
Dernière intervention
8 juin 2013

Je te croyais tu sais. Mais par acquis de conscience, j'ai testé sur un nouveau classeur, et cela fonctionne. Même quand on modifie les données et qu'on ré-exécute la macro, la mise à jour se fait bien. C'est bien parce qu'on sait que c'est faisable.

Le problème s'est présenté à partir du moment où j'ai effacé manuellement le premier pied de page créé. Une mauvaise manip et hop, tout fiche le camp.

Donc maintenant le problème s'est déplacé. Si quelqu'un a déjà eu ce genre de soucis (et a su le régler), un début de solution ne serait pas de refus.
Messages postés
12
Date d'inscription
jeudi 17 mars 2011
Statut
Membre
Dernière intervention
8 juin 2013

Ok, j'ai honte de ce que je vais dire, mais j'ai trouvé la solution à mon problème. En fait, je me trompais dans l'index de la page à modifier. Au début, il était correct, mais depuis j'ai créé d'autres feuilles que j'ai inséré, ce qui a décalé l'index.

Enfin, c'est en commettant des erreurs qu'on apprend. Ne vous moquez pas (trop), ou pas devant moi en tout cas.

Je vous remercie pour vos réponses en tout cas, elle m'ont permis de m'orienter vers la solution.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
En fait, je me trompais dans l'index de la page à modifier. Au début, il était correct, mais depuis j'ai créé d'autres feuilles que j'ai inséré, ce qui a décalé l'index.

Voilà bien la raison pour laquelle nous rappelons assez fréquemment qu'il n'est pas très astucieux de se référer à une feuille par sont index.
Les plus avertis s'y réfère par son nom.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.