definition impression

eduraiss

XLDnaute Accro
Bonjour le forum
j'ai un problème au niveau de l'impression
J'ai un code (ci_dessous) qui me permet de faire plusieurs copies (trois copies) mais il arrive parfois que si une colonne est agrandie l'impression se fait en double (donc 6 feuilles)

comment faire que même si une colonne est agrandie je sorte qu'un trois feuilles
merci a vous

'impression Z1A
Range("B1:J40").Select
ActiveSheet.PageSetup.PrintArea = "$B$1:$J$40"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Range("B2").Select

'impression Z1B
Range("B41:J89").Select
ActiveSheet.PageSetup.PrintArea = "$B$41:$J$89"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Range("B2").Select

'impression Z3
Range("B90:J149").Select
ActiveSheet.PageSetup.PrintArea = "$B$90:$J$143"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Range("B2").Select
 

Staple1600

XLDnaute Barbatruc
Re : definition impression

Bonsoir

En nommant tes plages dynamiquement

cf recherche sur le forum

mot-clé: plage dynamique

un exemple extrait du forum
(Plage dynamique de nom Plage01 par rapport au nombre de lignes en G à partir de la cel G9

=DECALER('Feuille01'!$G$9:$G$9;;;NBVAL(Feuille01!$ G:$G))
 
Dernière édition:

ballmaster

XLDnaute Occasionnel
Re : definition impression

Essaie ca, à partir de ton code :

'impression Z1A
Range("B1:J40").Select
with ActiveSheet.PageSetup
.PrintArea = "$B$1:$J$40"
.FitToPagesWide = 1
.FitToPagesTall = 1
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Range("B2").Select
 

ballmaster

XLDnaute Occasionnel
Re : definition impression

Autant pour moi

Celle-là fonctionne, j'ai testé

Sub test()
'impression Z1A
Range("B1:J40").Select
With ActiveSheet.PageSetup
.PrintArea = "$B$1:$J$40"
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Range("B2").Select
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : definition impression

Re


Tu n'a pas essayer avec une plage de cellules nommée dynamiquement?

You could manage this by using a Dynamic Named Range, but if you want a VBA solution entirely try

Option Explicit

Sub SetPrintArea()
Dim PrintA As Range
Dim c As Long
'find the last used column in the range (Columns.Count)
'by working from the extreme right, the true last column is found,
'avoiding possible empty cells within that row
c = ActiveSheet.Cells(21, Columns.Count).End(xlToLeft).Column
'this will start at A21
Set PrintA = ActiveSheet.Range(Cells(21, 1), Cells(Rows.Count, c).End(xlUp))
PrintA.PrintPreview
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : definition impression

Re

Si tu as bien nommée ta plage de cellules nommée

si tu insères une colonne dans celle-ci

la zone nommée en tiendra compte automatiquement

alors dans ton code tu marques

ActiveSheet.PageSetup.PrintArea = [plagenommee]
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 949
Membres
101 851
dernier inscrit
vaiata