Vba impression zone variable et previsualisation page a imprimer

crouault67 Messages postés 20 Statut Membre -  
crouault67 Messages postés 20 Statut Membre -
Bonjour,

voila mon souci, j'utilise la macro suivante afin d'imprimer une feuille comportant des donnes a dimension variable, pas de souci jusque la.

en revanche, je n'arrive pas a inserer une commande me permettant de previsualiser a lecran ma zone d'impression avant de lancer l'impression ?

2me question : ou definir la zone d'impression si je veux pouvoir a partir d'une macro similaire, imprimer une autre feuille de mon classeur

merci de votre aide

Sub impression_liste_commandes() 'toutes les 52 lignes (à régler)
Dim N As Long
Dim I As Integer, Rep As Integer
With ActiveSheet
With ActiveSheet.PageSetup
.PrintTitleRows = "$A$1:$I$5"
End With
N = .Range("b65536").End(xlUp).Row
.ResetAllPageBreaks 'efface sauts de pages existants
.PageSetup.PrintArea = "A2:h" & N
For I = 1 To N / 52
.HPageBreaks.Add Before:=Rows(I * 52 + 2)
Next I
Rep = MsgBox("On imprime ?", vbYesNo + vbCritical + vbDefaultButton2, "Impression")
If Rep = vbYes Then
.PrintOut
End If
End With
End Sub

1 réponse

  1. tyranausor Messages postés 3501 Date d'inscription   Statut Membre Dernière intervention   2 060
     
    Bonjour, j'ai une macro de ce genre-là, je te donne le code

    Sub Enreg_Pdf()
    'Enregistre la feuille Archives du classeur en pdf. Nécessite une imprimante virtuelle comme PDFCreator.
    Dim S1, S4 As Byte
    Dim fichier_pdf As String
    d = Range("A65000").End(xlUp)
    Sheets("Archives").Select
    S1 = Range("A6").Value
    S4 = d
    Columns("D:J").Hidden = True
    Rows("1:3").Hidden = True
    Sheets("Archives").PageSetup.CenterHorizontally = True
    Sheets("Archives").PageSetup.CenterVertically = True
    With ActiveSheet.PageSetup
    .CenterHeader = "Heures des salariés pour les semaines " & S1 & " à " & S4
    End With
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "Heures des salariés.pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    From:=1, To:=1, OpenAfterPublish:=True
    Application.Dialogs(xlDialogPrint)
    End Sub


    Là c'est pour imprimer en pdf. Il ne te restes plus qu'à modifier le code selon tes besoins
    0
    1. crouault67 Messages postés 20 Statut Membre
       
      Cela fonctionne tres bien mais ne repond pas a ma question sur l'affichage d'un "preview"
      0