Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/09/2011, 19h32   #1
Invité de passage
 
Inscription : septembre 2011
Messages : 3
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 3
Points : 1
Points : 1
Par défaut Taille de marge

Bonsoir,

J'ai une macro qui me permet d'insérer pour chaque feuille d'un fichier : le logo de ma boite, l'adresse du fichier et le nombre de page en conservant pour chaque feuille son orientation (Paysage ou Portrait).

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Sub LogoSA()
' Touche de raccourci du clavier: Ctrl+Maj+L
Range("AP55000").Activate
ActiveCell.FormulaR1C1 = "=MID(CELL(""filename"",R[-18]C[-1]),1,SEARCH(""["",CELL(""filename"",R[-18]C[-1]),1)-1)"
Range("AP55000").Select
    Selection.Copy
    Range("AP55000").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
vAdresse = ActiveCell.Value
Range("AP55000").Value = ""
Range("A1").Select
Dim vOnglet As String
For Each Feuille In Sheets
Feuille.PageSetup.LeftHeaderPicture.Filename = _
        "C:\Users\Anne\Pictures\iznogoud1.jpg"
    With Feuille.PageSetup.LeftHeaderPicture
        .Height = 33
        .Width = 63.75
        End With
 Feuille.PageSetup.LeftHeader = "&G"
 Feuille.PageSetup.LeftFooter = "&8" & vAdresse & "&f"
 Feuille.PageSetup.RightFooter = "&8Copyright©SA " & "&P/&N"
 Feuille.PageSetup.LeftMargin = Application.InchesToPoints(0.55)
 Feuille.PageSetup.RightMargin = Application.InchesToPoints(0.55)
 Feuille.PageSetup.TopMargin = Application.InchesToPoints(1)
 Feuille.PageSetup.BottomMargin = Application.InchesToPoints(1)
 Feuille.PageSetup.HeaderMargin = Application.InchesToPoints(0.13)
 Feuille.PageSetup.FooterMargin = Application.InchesToPoints(0.13)
 Feuille.PageSetup.FitToPagesWide = 1
 
Next
End Sub
A priori, ça marche en 2007, mais au boulot c'est du 2003 et la macro tourne en boucle sans fin.
Quelqu'un peut-il m'aider ? Merci
Anecdote
Anecdote76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 09h56   #2
Membre Expert
 
Avatar de hunteshiva
 
Homme eric Maitre
Étudiant
Inscription : février 2010
Messages : 954
Détails du profil
Informations personnelles :
Nom : Homme eric Maitre
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : février 2010
Messages : 954
Points : 1 166
Points : 1 166
Bonjour,

comme on n'a pas le fichier, c'est dur de faire des essaie à ta place.

un piste a suivre *rien de sur*
regarde du coté de ta boucle "For Each Feuille In Sheets"

c'est bizarre que tu ne spécifie pas ta feuille "Sheets"
normalement c'est Sheets("DATA")

je te donner un bout de code que j'ai, il ne gère pas plusieurs pages mais ils fonctionne sous 2003 (p-e que ça pourra t'aider)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
  'Mise en forme du document
   With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    ActiveSheet.PageSetup.PrintArea = ""
    With ActiveSheet.PageSetup
        .LeftHeader = "Nom du header"
        .CenterHeader = Sheets("Intouch").Range("A1").Value
        .RightHeader = "F0:(en min)" & Sheets("Intouch").Range("A2").Value
        .LeftFooter = ""
        .CenterFooter = "&P/&N"
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.196850393700787)
        .RightMargin = Application.InchesToPoints(0.196850393700787)
        .TopMargin = Application.InchesToPoints(0.226850393700787)
        .BottomMargin = Application.InchesToPoints(0.226850393700787)
        .HeaderMargin = Application.InchesToPoints(0.171811023622047)
        .FooterMargin = Application.InchesToPoints(0.171811023622047)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlLandscape
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 2
        .PrintErrors = xlPrintErrorsDisplayed
    End With
hunteshiva est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 20h31   #3
Invité de passage
 
Inscription : septembre 2011
Messages : 3
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 3
Points : 1
Points : 1
Merci pour ta réponse. En fait, tu peux tester la macro sur n'importe quel fichier. Il suffit de remplacer l'adresse du logo "C:\Users\Anne\Pictures\iznogoud1.jpg" par l'adresse d'une image enregistrée dans tes docs.

J'utilisais le "Each Feuille in Sheets dans ma macro initiale et ça marchais sans soucis.
Et ce que je ne comprends pas, c'est que ça marche sur du 2007. En même temps, si je n'ai plus qu'à gérer les marges, ce n'est pas le plus long...
Anecdote76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h18.


 
 
 
 
Partenaires

Hébergement Web