Copier la mise en forme pour impression

  • Initiateur de la discussion Damien
  • Date de début
D

Damien

Guest
Bonjour à tous,

Je cherche à mettre en forme plusieurs onglets pour les imprimer coreectement.
Jusqu'à présent, je n'ai pas trouvé mieux que ça :
For PTF = 2 To Sheets.Count
Sheets(PTF).Select
Sheets(PTF).Activate
With ActiveSheet.PageSetup
.LeftHeader = _
"&""Arial,Italique""PLATEFORME&""Arial,Normal"": &""Arial,Gras""&A"
.LeftMargin = Application.InchesToPoints(0.196850393700787)
.RightMargin = Application.InchesToPoints(0.196850393700787)
.TopMargin = Application.InchesToPoints(0.5)
.BottomMargin = Application.InchesToPoints(0.17)
.HeaderMargin = Application.InchesToPoints(0.18)
.FooterMargin = Application.InchesToPoints(0.16)
.PrintGridlines = True
.CenterHorizontally = True
.Orientation = xlLandscape
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = False
.PrintTitleRows = "$1:$1"
End With
Next PTF

Mon problème est que l'exécution est très longue (j'ai une dizaine d'onglets et Excel semble appliquer ces paramètres un par un sur chaque onglet, en générant chaque fois un flash d'environ 1 seconde).
J'ai essayé de le afire en sélectionnant tous les onglets mais dès l'éxécution de Sheet(2).Activate, toutes les mofifs portent sur le 2ème onglet et plus sur les autres (qui restent pourtant sélectionnés.

Quelqu'un aurait-il une idée pour améliorer ça ?

Merci

Damien.
 
S

sylvain

Guest
bonjour,



Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select
devrait marcher.


pour gagner du temps dans les affichages :
Application.ScreenUpdating = False

puis après la boucle :
Application.ScreenUpdating = True

A+
 
D

Damien

Guest
bonsoir sylvain et merci de ta réponse,

pour le premier point, je n'ai pas de pb pour sélectionenr toutes les feuilles.
c'est au moment où je fais Activate que les choses se gâtent.

je vais tester l'option ScreenUpdating.

merci encore !
 
D

Damien

Guest
bonjour sylvain,

avec ou sans activate, le résultat est le même: seule la première feuille de la sélection est traitée correctement.
sheets(array()), workbook, selection ne fonctionnent pas non plus.

j'ai tenté d'enregistrer une macro à partir d'opérations manuelles qui fonctionnent mais lorsque celle-ci s'exécute, elle ne met à jour que la première feuille.

je crois qu'il va falloir me faire une raison ...

merci et à+
 

Discussions similaires

Statistiques des forums

Discussions
314 655
Messages
2 111 605
Membres
111 217
dernier inscrit
aladinkabeya2