imprimer recto tout un classeur excel

imprimer recto tout un classeur excel - VB/VBA/VBS - Programmation

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 !

Reply

Marsh Posté le 01-10-2007 à 18:37:59   

Reply

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...

Reply

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

Reply

Marsh Posté le 02-10-2007 à 11:04:25    

plutôt : thisworkbook.Worksheets

Reply

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

Reply

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é.

Reply

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+

Reply

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
    With Sheet.PageSetup ...

Bref si tu remplaces tes ActiveSheet par ta variable Sheet, ça devrait aller mieux.


Message édité par tegu le 03-10-2007 à 13:07:26
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed