OVH Cloud OVH Cloud

Imprimer portrait/paysage

3 réponses
Avatar
xena10
Bonjour,
Je cherche le moyen d'imprimer une partie d'une feuille en paysage et une
autre partie en portait...est ce possible?

3 réponses

Avatar
michdenis
Bonjour Xena10,

Voici une façon de faire :

Tu copies cette procédure dans le ThisWorkbook de ton classeur.
Évidemment, tu adaptes le nom de la feuille où sont situées tes
données, de même que l'adresse de tes 2 plages de cellules
et l'orientation que doivent avoir chacune.

'----------------------------------
Private Sub Workbook_BeforePrint(Cancel As Boolean)

Dim Sh As Worksheet
Dim Arr(1 To 2)
'2 plages à imprimer
Arr(1) = "A1:G25"
Arr(2) = "K10:R40"
'Choix de la feuille
Set Sh = Worksheets("Feuil1")

For Each Sh In ActiveWindow.SelectedSheets
If Sh.Name = "Feuil1" Then
For a = 1 To 2
With Sh
With .PageSetup
.PrintArea = Sh.Range(Arr(1)).Address
If a = 1 Then
.Orientation = xlLandscape
Else
.Orientation = xlPortrait
End If
End With
.PrintPreview 'Après tes tests -> .PrintOut
End With
Next
End If
Next

End Sub
'----------------------------------


Salutations!



"xena10" a écrit dans le message de news:
Bonjour,
Je cherche le moyen d'imprimer une partie d'une feuille en paysage et une
autre partie en portait...est ce possible?
Avatar
michdenis
Cette présentation est supérieure :


Private Sub Workbook_BeforePrint(Cancel As Boolean)

Dim Sh As Worksheet
Dim Arr(1 To 2)

'Choix de la feuille
Set Sh = Worksheets("Feuil1")
With Sh
'2 plages à imprimer
Arr(1) = .Name & "!" & Range("A1:G25").Address
Arr(2) = .Name & "!" & .Range("K10:R40").Address
End With

For Each Sh In ActiveWindow.SelectedSheets
If Sh.Name = "Feuil1" Then
For a = 1 To 2
With Sh
With .PageSetup
.PrintArea = Arr(a)
If a = 1 Then
.Orientation = xlLandscape
Else
.Orientation = xlPortrait
End If
End With
.PrintPreview
End With
Next
End If
Next

End Sub


Salutations!



"michdenis" a écrit dans le message de news: %
Bonjour Xena10,

Voici une façon de faire :

Tu copies cette procédure dans le ThisWorkbook de ton classeur.
Évidemment, tu adaptes le nom de la feuille où sont situées tes
données, de même que l'adresse de tes 2 plages de cellules
et l'orientation que doivent avoir chacune.

'----------------------------------
Private Sub Workbook_BeforePrint(Cancel As Boolean)

Dim Sh As Worksheet
Dim Arr(1 To 2)
'2 plages à imprimer
Arr(1) = "A1:G25"
Arr(2) = "K10:R40"
'Choix de la feuille
Set Sh = Worksheets("Feuil1")

For Each Sh In ActiveWindow.SelectedSheets
If Sh.Name = "Feuil1" Then
For a = 1 To 2
With Sh
With .PageSetup
.PrintArea = Sh.Range(Arr(1)).Address
If a = 1 Then
.Orientation = xlLandscape
Else
.Orientation = xlPortrait
End If
End With
.PrintPreview 'Après tes tests -> .PrintOut
End With
Next
End If
Next

End Sub
'----------------------------------


Salutations!



"xena10" a écrit dans le message de news:
Bonjour,
Je cherche le moyen d'imprimer une partie d'une feuille en paysage et une
autre partie en portait...est ce possible?
Avatar
JB
Bonjour,

PJ: http://cjoint.com/?buhO78v6Mb

(Obtenu par l'enregistrement Automatique)

Sub ImprimeZone1()
ActiveSheet.PageSetup.PrintArea = "$B$3:$C$14"
ActiveSheet.PageSetup.Orientation = xlPortrait
ActiveSheet.PrintPreview ' ou ActiveSheet.printout
End Sub

Sub ImprimeZone2()
ActiveSheet.PageSetup.PrintArea = "$H$8:$L$14"
ActiveSheet.PageSetup.Orientation = xlLandscape
ActiveSheet.PrintPreview ' ou ActiveSheet.printout
End Sub

Cordialement JB