Mise en Page ! VBA

microd

XLDnaute Nouveau
Bonjour le Forum et mes meilleurs voeux

Je m'en remets à vous ( et votre connaissance) car la je cale .
J'ai cherché ( et aussi trouvé !!! ) bein des choses interessantes mais les mettre
a ma sauce c'est autre chose.
Aussi voila mon desir, je souhaiterais appliquer une mise en page ( marge, pied de page ...) a plusieurs documents existants et a créer.J'ai deux types de mise en page A4 portrait et paysage qui peuvent etre appliquer dans un même document.
J'ai bien pensé à utiliser un USF pour selectionner les différentes feuilles mais une fois mes feuilles choisi ........ pas de mise en page .:D
alors la comment faire !!!!

merci de votre aide
 

abc

XLDnaute Impliqué
Re : Mise en Page ! VBA

Bonjour,
a froid, tu clic sur l'onglet feuil1 par exemple ensuite tu appuies sur ctrl et tu déplace l'onglet et tu auras une copie de la feuil1.
Donc clic sur l'onglet+ctrl enfoncé et tu fais glissé puis renome.
A +
 

Gorfael

XLDnaute Barbatruc
Re : Mise en Page ! VBA

microd à dit:
Bonjour et merci de ta reponse !!

Pour le côté manuel c'est ok ...mais j'aimerais automatisé cette tache ...ma mise en page se repete .....

a te lier
Salut et bonne année à tous
Le plus simple : tu crées une macro enregistreuse (comme la caisse :p ) - Menu Outils>>Macro>>Nouvelle macro... - et tu fais ta mise en page
Tu regardes le code ainsi créé et tu peux l'appliquer quelque soit la feuille.
Si tu veux l'affiner, tu le mets dans un post (entre deux balises code) et tu poses tes questions.
A+
 

microd

XLDnaute Nouveau
Re : Mise en Page ! VBA

Salut a tous

j'ai suivi le dernier conseil et j'ai bien créé ma macro ....ca marche mais que feuille par feuille ....si je selectionne plusieurs feuilles en meme temps et que j'applique ma macro seul la première est traité .... comment faire pour utiliser cette macro avec plusieurs feuilles ......

Merci d'avance
 

Gorfael

XLDnaute Barbatruc
Re : Mise en Page ! VBA

microd à dit:
Salut a tous

j'ai suivi le dernier conseil et j'ai bien créé ma macro ....ca marche mais que feuille par feuille ....si je selectionne plusieurs feuilles en meme temps et que j'applique ma macro seul la première est traité .... comment faire pour utiliser cette macro avec plusieurs feuilles ......

Merci d'avance
Salut
Code:
Sub Test()
Dim F as Worksheet
 
for each f in sheets
f.select
 ...............
next
end sub
à la place des ........... tu mets ton code de mise en page
Si tu mets ta macro, on pourra l'épurer : quand tu fais une macro apprentissage, Excel met le code de tout ce que tu fais, et de toutes les options qui peuvent être modifiées. Si tu n'en change qu'une, tu peux laisser de coté celles qui tu ne modifient pas, ce qui allège considérablement ton code.

De plus, comme je ne connais pas ton niveau en VBA, je fais une sélection (activation) de chaque feuille, ce qui ralenti encore.

Par rapport aux macro apprentissage, on peut diminuer le code de 30 à 80% avec une meilleure efficacité.

Donc, mets ta macro qu'on s"amuse un peu :p
A+
 

microd

XLDnaute Nouveau
Re : Mise en Page ! VBA

Salut

Je viens de suivre ton conseil et ca marche pour toutes les feuilles ... mais si on pouvait faire plus vite !!! alors la bien ...
Code:
Sub Macro1()
'
' Macro1 Macro
'
Dim F As Worksheet
 
For Each F In Sheets
F.Select
'
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    ActiveSheet.PageSetup.PrintArea = ""
    With ActiveSheet.PageSetup
        .LeftHeader = "&F"
        .CenterHeader = "&D"
        .RightHeader = "&P/&N"
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.196850393700787)
        .RightMargin = Application.InchesToPoints(0.196850393700787)
        .TopMargin = Application.InchesToPoints(0.551181102362205)
        .BottomMargin = Application.InchesToPoints(0.47244094488189)
        .HeaderMargin = Application.InchesToPoints(0.511811023622047)
        .FooterMargin = Application.InchesToPoints(0.31496062992126)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlPortrait
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 100
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
Next
End Sub

je penses que l'on pourrait faire mieux peut on enlever sans crainte les lignes ou apparaisse ""....mais merci deja pour tes conseils...

A +
 

Discussions similaires

Réponses
10
Affichages
469

Statistiques des forums

Discussions
313 036
Messages
2 094 610
Membres
106 064
dernier inscrit
annie soyer