Couleur d’arrière-plan de l’en-tête et du pied de page (Microsoft Excel)
Leonid a demandé s’il y avait un moyen de définir une couleur d’arrière-plan pour l’en-tête ou le pied de page d’une page. La réponse simple est qu’il n’y a pas une telle fonctionnalité dans Excel. Il existe cependant plusieurs façons de contourner le problème. Par exemple, si vous utilisez Excel 2002 ou Excel 2003, vous pouvez ajouter un graphique à un en-tête ou un pied de page. Avec le bon graphique, vous pouvez faire apparaître que l’en-tête et le pied de page contiennent de la couleur alors qu’en fait, c’est le graphique qui contient la couleur.
Une autre option consiste à créer de « faux » en-têtes et pieds de page. Si tout ce que vous voulez faire est d’avoir un en-tête de couleur différente, vous pouvez utiliser les deux premières lignes de la feuille de calcul comme en-tête. Vous pouvez formater ces lignes comme vous le souhaitez, y compris en définissant la couleur des lignes. Vous pouvez ensuite demander à Excel de répéter ces lignes en haut de chaque page de l’impression (utilisez la boîte de dialogue Mise en page pour cela).
La répétition des lignes pour la zone de pied de page devient plus problématique, car Excel n’inclut pas de fonctionnalité qui vous permet de répéter les lignes au bas de chaque page. La création d’une macro pour ajouter des lignes pour l’en-tête et le pied de page est possible, mais cela entraîne une modification de votre feuille de calcul. Des lignes doivent être ajoutées pour les faux en-têtes et pieds de page.
À titre d’exemple, considérons la macro suivante. Il suppose que vous voulez des bordures d’un pouce à gauche et à droite de l’impression et que vous souhaitez imprimer seulement 46 lignes par page. Il définit les marges, puis parcourt la feuille de calcul, en ajoutant les fausses lignes d’en-tête et de pied de page, si nécessaire. (Étant donné que la macro ajuste la conception de la feuille de calcul, assurez-vous d’enregistrer votre feuille de calcul avant d’exécuter la macro.)
Sub FakeHeaderFooter() Dim LHeader As String Dim CHeader As String Dim LFooter As String Dim CFooter As String Dim CBottom As Integer Dim CRow As Integer Dim PageSize As Integer LHeader = "Top Left" CHeader = "Top Center" LFooter = "Bottom Left" CFooter = "Bottom Center" PageSize = 46 With ActiveSheet.PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" .PrintArea = "" .LeftHeader = "" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = Application.InchesToPoints(1) .RightMargin = Application.InchesToPoints(1) .TopMargin = Application.InchesToPoints(0) .BottomMargin = Application.InchesToPoints(0) .HeaderMargin = Application.InchesToPoints(0) .FooterMargin = Application.InchesToPoints(0) .PrintHeadings = False .Orientation = xlPortrait End With CBottom = Range("A16000").End(xlUp).Row CRow = 1 Do Until CRow > CBottom If CRow Mod PageSize = 1 Then Rows(CRow).Select Selection.Insert Shift:=xlDown Selection.Insert Shift:=xlDown CBottom = CBottom + 2 Cells(CRow, 1).Value = LHeader Cells(CRow, 4).Value = CHeader Range(Cells(CRow, 1), _ Cells(CRow, 8)).Interior.ColorIndex = 34 Range(Cells(CRow + 1, 1), _ Cells(CRow + 1, 8)).Interior.ColorIndex = xlNone CRow = CRow + 2 ElseIf CRow Mod PageSize = PageSize - 1 Then Rows(CRow).Select Selection.Insert Shift:=xlDown Selection.Insert Shift:=xlDown CBottom = CBottom + 2 Cells(CRow + 1, 1).Value = LFooter Cells(CRow + 1, 4).Value = CFooter Range(Cells(CRow + 1, 1), _ Cells(CRow + 1, 8)).Interior.ColorIndex = 34 CRow = CRow + 2 Else CRow = CRow + 1 End If Loop LastPageNumber = PageNumber + 1 LastRow = LastPageNumber * PageSize If CBottom <> LastRow Then Range(Cells(LastRow, 1), _ Cells(LastRow, 8)).Interior.ColorIndex = 34 Cells(LastRow, 1).Value = LFooter Cells(LastRow, 4).Value = CFooter End If CBottom = Range("A16000").End(xlUp).Row CRow = 2 Do Until CRow > CBottom If CRow Mod PageSize = 1 Then Cells(CRow, 1).PageBreak = xlManual End If CRow = CRow + 1 Loop End Sub
Pour changer le nombre de lignes par page, changez simplement la valeur attribuée à la variable PageSize. Vous pouvez également modifier ce qui apparaît dans les zones « en-tête » et « pied de page » en modifiant ce qui est affecté aux variables LHeader, CHeader, LFooter et CFooter.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (3056) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.