imprimer recto tout un classeur excel - VB/VBA/VBS - Programmation
Marsh Posté le 01-10-2007 à 18:41:34
Citation : Par défaut (à mon boulot) l'imprimante imprime recto verso par défaut. |
dsl pour la répétition...
Marsh Posté le 02-10-2007 à 10:54:37
personne peut m'aider?
j'ai essayé : for each sheet in thisworkbook
mais rien. quad je met le curseur sur sheet, il met sheet = vide
Marsh Posté le 03-10-2007 à 08:06:38
bon ca n'a pas marché, temps pis. J'ai les ai faites une par une... ca ma pris un peu de temps
J'aurais bien aimé savoir ce qu'on aurait pu faire, juste pour culture personnel
Marsh Posté le 03-10-2007 à 11:03:27
« bon ca n'a pas marché »
Qu'est-ce qui n'a pas marché ? Quelles erreurs, quel comportement ?
Je t'ai donné la collection à utiliser pour le For Each, mais tu ne dis pas si et comment tu as codé.
Marsh Posté le 03-10-2007 à 13:01:06
excuse moi si tu la mal pris, je te remercie beaucoup que tu m'aides !
Donc en fait j'ai enregistré une macro en faisant la manip' et puis j'ai mis la boucle. Seulement quand je regarde mon classeur, j'ai l'impression qu'il reste sur la feuille 1 (elle clignote). De plus dans la macro que j'ai enregistré, je n'arrive pas à identifier quelle est la ligne qui dit que la mise en page est en recto.
Sub recto()
For Each Sheet In ThisWorkbook.Worksheets
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.787401575)
.RightMargin = Application.InchesToPoints(0.787401575)
.TopMargin = Application.InchesToPoints(0.984251969)
.BottomMargin = Application.InchesToPoints(0.984251969)
.HeaderMargin = Application.InchesToPoints(0.4921259845)
.FooterMargin = Application.InchesToPoints(0.4921259845)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
End With
Next
End Sub
Désolé encore tegu
Merci a+
Marsh Posté le 03-10-2007 à 13:07:07
Pas de problème.
Je vois dans ton code une erreur qui peut tout expliquer.
Le For Each sert à énumérer les objets d'une collection.
Cela veut dire qu'à chaque itération de la boucle, la variable Sheet va contenir une autre feuille. Or tu n'utilises pas cette variable dans ton code à l'intérieur de cette boucle.
For Each Sheet In ThisWorkbook.Worksheets |
Bref si tu remplaces tes ActiveSheet par ta variable Sheet, ça devrait aller mieux.
Marsh Posté le 01-10-2007 à 18:37:59
bonjour,
Voici mon probleme : J'ai plusieurs classeurs excel comprenant de nombreuses feuilles chacun. Par défaut (à mon boulot) l'imprimante imprime recto verso par défaut. Mais je souhaite imprimer en recto. Pour cela il faut prendre chaque feuille et faire mise en page/option/recto. Seulement ca va prendre du temps si je fais ca a la main !
C'est pourquoi j'ai voulu faire une boucle du genre:
for all sheet in workbook
mais bon ca marche pas, ca reste toujours sur la même feuille.
Si quelqu'un a une solution...merci !