Vba impression zone variable et previsualisation page a imprimer
crouault67
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
crouault67 Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
crouault67 Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Vba impression zone variable et previsualisation page a imprimer
- Spouleur d'impression - Guide
- Alternative zone telechargement - Accueil - Outils
- Imprimer tableau excel sur une page - Guide
- Supprimer page word - Guide
- Impression livret a5 - Guide
1 réponse
Bonjour, j'ai une macro de ce genre-là, je te donne le code
Là c'est pour imprimer en pdf. Il ne te restes plus qu'à modifier le code selon tes besoins
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
crouault67
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
Cela fonctionne tres bien mais ne repond pas a ma question sur l'affichage d'un "preview"