Impression VBA, CenterFooter = "Page &P de &N"

Bonjour,

J'essaie d'automatiser un format d'impression pour un fichier, les feuilles peuvent contenir un nombre conséquent de données, et Excel ne retrouve pas le numéro de la feuille imprimé sur le nombre de feuilles. Je m'explique. J'ai utilisé l'enregistreur de macro, lorsque j'utilise la macro les feuilles ressortent avec dans la marge de Bas de Feuille : Page

Manuellement (sans macro, en passant par le menu impression) j'ai : Page de 1 à 3

Si je ne dis pas de bétises c'est cette ligne de code qui est censé l'afficher :

.CenterFooter = "Page &P de &N"

Les Paramètres que j'utilise pour l'impression sont :

  • >Imprimer les feuilles actives Imprimer uniquement les feuilles activesPages : "" à ""
  • >Impression recto verso
  • >Assemblé
  • >Orientation Paysage
  • >A4(210*297mm)
  • >Marges personnalisées (voir code pour dimensions)
  • >Ajuster toutes les colonnes à une Page Réduire l'impression pour faire une page en largeur.

Mise en Page ->Feuille -> Lignes à répéter en Haut : $1:$4

Voilà ce que j'obtiens avec l'enregistreur et un peu de bidouillage.

Sub Imprimer()
'
' Imprimer Macro
'

'

    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .PrintTitleRows = "$1:$4"
        .PrintTitleColumns = ""
    End With
    Application.PrintCommunication = True
    ActiveSheet.PageSetup.PrintArea = ""
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = "Page &P de &N"
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.31496062992126)
        .RightMargin = Application.InchesToPoints(0.31496062992126)
        .TopMargin = Application.InchesToPoints(0.5)
        .BottomMargin = Application.InchesToPoints(0.5)
        .HeaderMargin = Application.InchesToPoints(0.31496062992126)
        .FooterMargin = Application.InchesToPoints(0.31496062992126)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .PrintQuality = 600
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlLandscape
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = False
        .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
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
End Sub

Du coup je ne vois pas trop ce qui empèche Excel de retrouver le numéro des pages qu'il imprime.

Si quelqu'un voit de quelle ligne de code cela pourrait venir ou s'il manque une commande.

Merci à tous.

Bonjour Timothe URVOY,

J'ai déjà eu le problème et cela vient de l'instruction que l'enregistreur de macro met,

mais qu'il ne faut surtout pas utiliser

Application.PrintCommunication = False
Application.PrintCommunication = true

Enlève ces 2 instructions et tu n'auras plus de soucis

A+

Après essai ça fonctionne. Merci Bruno.

Dommage que la fonction bruit strident ne marche plus sur les modèles récents, sinon j'aurais passer 20 bonnes minutes à rester appuyer sur plusieurs touches du clavier pour me donner l'illusion de faire souffrir l'ordinateur ^^.

Rechercher des sujets similaires à "impression vba centerfooter page"