FORUM Tom's Hardware » Programmation » Autre » mise en page paysage en vba
 

mise en page paysage en vba

Il y a 286 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : mise en page paysage en vba
 
Plus d'informations

Bonjour je souhaiterai savoir comment on fait pour en page sous forme paysage en vba (j'ai essayé de le faire avec l'enregistrement de macro mais je trouve ca tres long lorsque on execute la macro et le code est assez long )
Y a t'il plus simple?

zeb
Profil : Modérateur libre
Plus d'informations

Publie ton code...
Sinon,

Code :
  1. ActiveSheet.PageSetup.Orientation = xlLandscape

devrait suffire.


Message édité par zeb le 12-12-2005 à 17:55:29
Plus d'informations

effectivement ca fonctionne  
Pour le code je voulais pas trop le mettre car je comprennais pas tout et je voulais pas induire d'autre personne en erreur mais de toute facon c'est le code que l'on obtien si on fait un enregistrement de macro  
Ca donne ca :

Code :
  1. Sub Macro2()
  2.    
  3.     With ActiveSheet.PageSetup
  4.         .PrintTitleRows = ""
  5.         .PrintTitleColumns = ""
  6.     End With
  7.     ActiveSheet.PageSetup.PrintArea = ""
  8.     With ActiveSheet.PageSetup
  9.         .LeftHeader = ""
  10.         .CenterHeader = ""
  11.         .RightHeader = ""
  12.         .LeftFooter = ""
  13.         .CenterFooter = ""
  14.         .RightFooter = ""
  15.         .LeftMargin = Application.InchesToPoints(0.787401575)
  16.         .RightMargin = Application.InchesToPoints(0.787401575)
  17.         .TopMargin = Application.InchesToPoints(0.984251969)
  18.         .BottomMargin = Application.InchesToPoints(0.984251969)
  19.         .HeaderMargin = Application.InchesToPoints(0.4921259845)
  20.         .FooterMargin = Application.InchesToPoints(0.4921259845)
  21.         .PrintHeadings = False
  22.         .PrintGridlines = False
  23.         .PrintComments = xlPrintNoComments
  24.         .PrintQuality = 600
  25.         .CenterHorizontally = False
  26.         .CenterVertically = False
  27.         .Orientation = xlLandscape
  28.         .Draft = False
  29.         .PaperSize = xlPaperA4
  30.         .FirstPageNumber = xlAutomatic
  31.         .Order = xlDownThenOver
  32.         .BlackAndWhite = False
  33.         .Zoom = 100
  34.     End With
  35. End Sub


 
Comme tu peux le voir c'est assez indigeste et tres à s'executer  
Voila encore merci

zeb
Profil : Modérateur libre
Plus d'informations

Allez un ptit truc : quand tu valides un écran, toutes les valeurs de tous les champs de l'écran sont enregistrées dans la macro. Alors pour ton changement d'orientation, tu enregistres la manif pour mettre dans un sens et tu recommence pour le mettre dans l'autre sens. Ensuite tu compares les deux versions et tu te rends compte qu'il n'y a qu'une ligne différente. Tu vires alors toutes les lignes identiques. Tu n'oublies pas quand même de garder les WITH. Et tu condenses tout ça. Il reste une seule ligne.
 
Exemple pour changer l'orientation :

Code :
  1. With ActiveSheet.PageSetup
  2.     If .Orientation = xlLandscape Then
  3.         .Orientation = xlPortrait
  4.     Else
  5.         .Orientation = xlLandscape
  6.     End If
  7. End With

Si ça peut aider.


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » Autre » mise en page paysage en vba
 

Annonces Google
Publicité