correction d'une macro d'impression

niki42

XLDnaute Occasionnel
Bonsoir à tout le forum

J'ai une macro qui me sert à mettre un entête et un pied de page sur la feuille sélectionnée puis
en même temps à imprimer une plage sélectionnée.
Mais je ne comprends pas car l'impression ne se fait pas sur la sélection mais sur la feuille entière.

Je vous joins mon code, si quelqu'un y voit une anomalie:

Sub MaMacro2()
'
Dim info As String
info = ActiveSheet.Name & Chr(32) & Format(Date, 'yyyy')
Range('A1:AG50').Select

Application.ScreenUpdating = False
With ActiveSheet.PageSetup
.PrintTitleRows = ''
.PrintTitleColumns = ''
End With
ActiveSheet.PageSetup.PrintArea = '$A$1:$AG$50'
With ActiveSheet.PageSetup
.CenterHeader = '&''Comic Sans MS,Gras''&16' & info
.CenterFooter = 'Imprimé le &D à &T'
.LeftMargin = Application.InchesToPoints(0.196850393700787)
.RightMargin = Application.InchesToPoints(0.196850393700787)
.TopMargin = Application.InchesToPoints(0.590551181102362)
.BottomMargin = Application.InchesToPoints(0.590551181102362)
.HeaderMargin = Application.InchesToPoints(0.31496062992126)
.FooterMargin = Application.InchesToPoints(0.31496062992126)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments

.CenterHorizontally = True
.CenterVertically = True
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FitToPagesWide = 1
.FitToPagesTall = 1
End With

Selection.PrintOut Copies:=1, Collate:=True
Application.ScreenUpdating = True


End Sub

Voilà j'attends votre avis sur la macro

:eek:
 

ChTi160

XLDnaute Barbatruc
Salut niki42
je n'ai pas d'imprimante connectée a mon portable mais j'ai fais une recherche sur le net et je suis tombé sur des macro qui concerne l'impression

j'ai donc modifié ta macro mais sans plus je te mets le code
Sub MaMacro2()
'
Dim info As String
info = ActiveSheet.Name & Chr(32) & Format(Date, 'yyyy')

Application.ScreenUpdating = False
With ActiveSheet.PageSetup
.PrintTitleRows = ''
.PrintTitleColumns = ''
End With
With ActiveSheet.PageSetup
.CenterHeader = '&''Comic Sans MS,Gras''&16' & info
.CenterFooter = 'Imprimé le &D à &T'
.LeftMargin = Application.InchesToPoints(0.196850393700787)
.RightMargin = Application.InchesToPoints(0.196850393700787)
.TopMargin = Application.InchesToPoints(0.590551181102362)
.BottomMargin = Application.InchesToPoints(0.590551181102362)
.HeaderMargin = Application.InchesToPoints(0.31496062992126)
.FooterMargin = Application.InchesToPoints(0.31496062992126)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments

.CenterHorizontally = True
.CenterVertically = True
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
ActiveSheet.PageSetup.PrintArea = '$A$1:$AG$50'

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

Application.ScreenUpdating = True
End Sub
New Edition
voilà je pense que cela fonctionne car en ajoutant un Preview cela montre le résultat

ActiveSheet.PageSetup.PrintArea = '$A$1:$G$26'
ActiveWindow.SelectedSheets.PrintPreview
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

bonne soirée
voir le Lien:
ICI

Message édité par: Chti160, à: 28/12/2005 21:58
 

niki42

XLDnaute Occasionnel
Bonsoir à tous

Jean Marie je t'informe que j'ai résolu mon problème.
Apparement ce que tu m'as donné ne fonctionnait pas parfaitement.
Je suis donc repassé par l'enregistreur de macro en détaillant pas chaque instruction et je pense que le problème venait du fait que e tableau que j'imprime est grand et il fallait rajouter une instruction pour 'ajuster 1 page sur 1 page'

Voilà maintenant ça fonctione comme je veux avec le nom de la feuille sélectionnée en entête de page, un pied de page et l'impression de la partie de tableau voulue

Je te remercie encore pour ton aide

@++
 

Discussions similaires

Statistiques des forums

Discussions
312 180
Messages
2 085 995
Membres
103 082
dernier inscrit
adri77