Microsoft 365 Impression recto/verso portrait/paysage d'un même onglet

SealeK

XLDnaute Nouveau
Bonjour à tous,

Je suis d'ores et déjà désolée si la réponse à ma question a déjà été donnée, mais j'ai eu beau éplucher le forum, je ne l'ai pas trouvée.

Voici mon problème:
J'ai, sur un même onglet Excel, deux tableaux. Le premier est en portrait, l'autre est en paysage et je dois pouvoir les imprimer en recto/verso. Sauriez-vous quelle macro je peux utiliser pour cela, svp ? Jusqu'à maintenant, j'ai bien réussi à les imprimer en portrait et paysage, mais sur 2 feuilles différentes. Voici le code utilisé :

Sub Imprime()
'Impression de la 1ère page en portrait

Range("A1:AD48").Select 'définition de la plage de cellules constituant la 1ère page
ActiveSheet.PageSetup.PrintArea = "$A$1:$AD$48" 'définition de la zone d'impression
ActiveSheet.PageSetup.Orientation = xlPortrait 'mise au format portrait
ActiveSheet.PageSetup.CenterHorizontally = True 'centrage horizontal de la feuille
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True 'impression

'-------------------------------------

'Impression de la 2ème page en paysage
Range("AF1:BN30").Select 'définition de la plage de cellules constituant la 2ème page
ActiveSheet.PageSetup.PrintArea = "$AF$1:$BN$30" 'définition de la zone d'impression
ActiveSheet.PageSetup.Orientation = xlLandscape 'mise au format paysage
ActiveSheet.PageSetup.CenterHorizontally = True 'centrage horizontal de la feuille
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True 'impression

Range("A1").Select

End Sub

Merci pour l'aide que vous saurez m'apporter.
 

piga25

XLDnaute Barbatruc
Bonjour SealeK,

Un code que j'avais récupéré il y a un bon moment. Je ne sais plus si je l'avais essayé, à voir cela peut être une piste.


VB:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
'Code de MichD
Dim Sh As Worksheet, Arr(), A As Integer
Dim NomFeuille As String, Elt As Variant
'************Variables à définir********************
NomFeuille = "Feuil1" 'Nom de l'onglet de la feuille dont
'tu veux imprimer en portrait et paysage
'Adresse des 2 plages à imprimer (Portrait - Paysage)
Arr = Array("A1:AD48", "AF1:BN30")
'****************************************************
For Each Sh In ActiveWindow.SelectedSheets
Cancel = False
If UCase(Sh.Name) = UCase(NomFeuille) Then
For Each Elt In Arr
'Première adresse en portrait
If A = 0 Then
With Sh
With .PageSetup
.PrintArea = Elt
.CenterFooter = ThisWorkbook.Name
.CenterHorizontally = True
.CenterVertically = True
.Orientation = xlPortrait
End With
End With
A = A + 1
Else
'L'autre adresse en paysage.
With Sh
With .PageSetup
.PrintArea = Elt
.CenterFooter = ThisWorkbook.Name
.CenterHorizontally = True
.CenterVertically = True
.Orientation = xlLandscape
End With
End With
End If
Application.EnableEvents = False
Sh.PrintPreview 'en remplacer après par .PrintOut
Sh.PageSetup.PrintArea = ""
Application.EnableEvents = True
Next
Cancel = True
End If
Next
End Sub
 

zebanx

XLDnaute Accro
Bonjour SealeaK, Piga25

Un code qui a l'air de bien fonctionner (aussi) et à régler avec vos paramètres.
Le code imprime bien les deux pages mais pour que cela soit du recto-verso, il est nécessaire de cocher la bonne case sur la configuration de l'imprimante...(sauf erreur car je n'en dispose pas sur mon imprimante).


VB:
Sub Print1()
'http://www.yqcomputer.com/81_113540_1.htm
With Worksheets("ark1").PageSetup '*** change to ur sheetname
.CenterHorizontally = True
.PrintArea = "$A$2:$D$6" '*** change to ur range
.PrintTitleRows = ("$A$1:$D$1") '*** change to ur range
.Orientation = xlPortrait ' *** change to xlLandscape if..
.FitToPagesWide = 1
.FitToPagesTall = 1
End With

Worksheets("ark1").printout ' *** change to ur sheetname
With Worksheets("ark1").PageSetup '*** change to ur sheetname
.CenterHorizontally = True
.PrintArea = "$A$11:$F$16" '*** change to ur range
.PrintTitleRows = ("$A$10:$F$10") '*** change to ur range
.Orientation = xlLandscape '*** change to xlPortrait if..
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
Worksheets("ark1").printout '*** change to ur sheet name

End Sub
 

Pièces jointes

  • Classeur1.xlsm
    16.2 KB · Affichages: 8
Dernière édition:

SealeK

XLDnaute Nouveau
Bonjour,

J'ai enfin eu le temps de me pencher à nouveau sur ma problématique d'impression.
Piga25 et zebanx, merci pour vos réponses, cependant, voici les problématiques que je rencontre avec chacun des codes proposés et bien que j'aie essayé, je n'ai pas réussi à trouver comment résoudre chaque problème :

Piga 25 :
Ton code ne lance pas d'impression et quand je lance l'impression après avoir lancé la macro, les ordres de la macro ne sont pas pris en compte (le résultat est un peu du n'importe quoi : 7 feuilles au total)

zebanx :
Le code que tu proposes lance bien l'impression. Chaque page est bien à l'orientation attendue... mais sur 2 feuilles différentes et pas en recto/verso (donc ça ne change pas de ce que j'obtiens avec mon premier code).

En fait, je crois que mon véritable problème est de trouver la fonction R/V dans les macros Excel :(

En tout cas, merci à vous deux.

Bonne journée.
 

SealeK

XLDnaute Nouveau
Piga 25,

Je viens de refaire un test avec ton code et ça me différencie bien les orientations mais ça m'imprimer mes 2 pages sur 2 feuilles (comme pour zebanx) sauf que c'est plus compliqué de gérer la mise en page et de bien centrer chaque tableau sur sa page.

Je suis sûre que quelque part, ce code existe, mais je commence à désespérer de le trouver... :(
 

zebanx

XLDnaute Accro
Bonjour SealeK

Je me répète(#3) mais avez-vous correctement coché la case "recto-verso" de votre imprimante ?

Sinon, peut-être de dupliquez l'imprimante comme indiqué ci-dessous.

xl-ment
 

SealeK

XLDnaute Nouveau
Zebanx,

Oui, mon imprimante est bien en R/V, d'ailleurs, la page en paysage étant mal centrée, elle est bien imprimée en R/V. Le problème, c'est que comme on définit séparément les 2 zones d'impression, celles-ci sont traitées séparément.
J'ai essayé le conseil donné, mais je ne comprends rien au code, je n'arrive donc pas à l'adapter à ma feuille.
Bon, tant pis pour moi, je pense que je n'arriverai pas à faire ce que je veux. Je vais essayer de faire autrement, mais ça sera compliqué.
Merci d'avoir tout de même essayé.

Salut.
 

zebanx

XLDnaute Accro
Re

Un autre essai en passant par une feuille "temporaire" sur le range utilisé pour la deuxième feuille.

A voir si cela fonctionne.
Un paramétrage des feuilles sera ultérieurement possible (pied de page - entête) mais n'a d'utilité que si cela fonctionne.

J'ai recherché sur la toile pour voir si on pouvait modifier le pagesetup sur la même feuille mais n'ai pas trouvé de solutions non plus, d'où cette proposition là.

Tout a été mis en printpreview sur les codes, pour imprimer il faut repasser par printout.

A vous lire, xl-ment
zebanx
 

Pièces jointes

  • print_sh1portrait, sh2paysage.xlsm
    23 KB · Affichages: 7
Dernière édition:

SealeK

XLDnaute Nouveau
zebanx,

Merci beaucoup pour l'aide !
J'arrive enfin à imprimer en R/V portrait/paysage.... mais ma deuxième page n'est pas mise en page, au sens qu'elle est séparée en 4 pages différentes. Impossible de paramétrer la chose. Quand je paramètre via l'aperçu, je réalise que la feuille est passée au format "Letter" et il faut grandement dézoomer, les proportions sont donc perdues... Bref. Vraiment, Excel, refuse que j'imprime ces feuilles comme je le désire. :p

Cordialement,
 

zebanx

XLDnaute Accro
Re-

Si tu peux, en anonymant totalement les données, me communiquer la page en question. Je ne te promets pas de réussir mais avec un exemple, j'aurais au moins essayé.

Et merci de m'indiquer comment tu souhaites ton paramétrage (par exemple avec une copie écran de cette deuxième page ou en paramétrant au format paysage tel que cela devrait être restitué).

T'en remerciant, bon apm
zebanx
 
Haut Bas