IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

En tete et pied de page non lié et différent sur 2 pages [WD-2003]


Sujet :

VBA Word

  1. #1
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 130
    Points : 48
    Points
    48
    Par défaut En tete et pied de page non lié et différent sur 2 pages
    Bonjour à tous,
    en cherchant et m'aidant de l'enregistreur de macro dans word j'ai réussi à faire cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    'Insertion en tête et pied de page (Page1)
    With ActiveDocument.Sections(1)
    .Headers(wdHeaderFooterPrimary).Range.InsertFile "S:\Secrétariat\Banque de donnée\entete 1page.doc"
    .Footers(wdHeaderFooterPrimary).Range.InsertFile "S:\Secrétariat\Banque de donnée\pied1 2pages.doc"
    End With
     
    'Curseur position début de courrier
     Selection.MoveDown Unit:=wdScreen, Count:=1
     
    'Saut de section et page
    Selection.InsertBreak Type:=wdSectionBreakNextPage
     
    'Traitement page2/2
    With ActiveDocument.Sections(2)
        'If Selection.HeaderFooter.LinkToPrevious = True Then
     
            Selection.HeaderFooter.LinkToPrevious = False 'pour casser le lien avec la page précédente
       ' End If
        .Headers(wdHeaderFooterEvenPages).Range.InsertFile "S:\Secrétariat\Banque de donnée\entete2 2pages.doc"
        .Footers(wdHeaderFooterEvenPages).Range.InsertFile "S:\Secrétariat\Banque de donnée\pied2 2pages.doc"
    End With
     
    End Sub
    Mais je bloque avec une erreur (Erreur d'exécution 91 variable objet ou variable de bloc with non définie avec l'instruction =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Selection.HeaderFooter.LinkToPrevious = True Then
    )

  2. #2
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 130
    Points : 48
    Points
    48
    Par défaut Essai
    voilà ce que j'ai réussi à faire, mais les deux en têtes restent les mêmes !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Private Sub Document_Open()
     
    'Insertion en tête et pied de page (Page1)
    With ActiveDocument.Sections(1)
    .Headers(wdHeaderFooterPrimary).Range.InsertFile "S:\Secrétariat\Banque de donnée\entete 1page.doc"
    .Footers(wdHeaderFooterPrimary).Range.InsertFile "S:\Secrétariat\Banque de donnée\pied1 2pages.doc"
    End With
     
    'Curseur position début de courrier
    Selection.MoveDown Unit:=wdScreen, Count:=1
     
    'Saut de section
    Selection.InsertBreak Type:=wdSectionBreakNextPage
     
    'Traitement page2/2
        'on vas à la section qui nous interesses
    Selection.GoTo wdGoToSection, , , 2
     
    ' Activation du pied de page
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
     
        'Se mettre en début d'en tete 2
        If Selection.HeaderFooter.IsHeader = True Then
            ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
        Else
            ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
        End If
     
    'Suppression des liens en en tete
    Selection.HeaderFooter.LinkToPrevious = Not Selection.HeaderFooter. _
            LinkToPrevious
    'If Selection.HeaderFooter.LinkToPrevious = True Then
    '    Selection.HeaderFooter.LinkToPrevious = False 'pour casser le lien avec la page précédente
    'End If
     
    'on retourne à la section qui nous interesses pour desactiver le pied de page
    Selection.GoTo wdGoToSection, , , 2
     
     
    'Traitement page2/2
    With ActiveDocument.Sections(2)
        .Headers(wdHeaderFooterEvenPages).Range.InsertFile "S:\Secrétariat\Banque de donnée\entete2 2pages.doc"
        .Footers(wdHeaderFooterEvenPages).Range.InsertFile "S:\Secrétariat\Banque de donnée\pied2 2pages.doc"
    End With
     
     
    End Sub

  3. #3
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 130
    Points : 48
    Points
    48
    Par défaut
    Personne pour m'aider s'il vous plait ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Le mélange des vues avec du code donnant accès aux objets n'est pas une bonne solution.

    Un petit exemple ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub EntetePiedDePage()
    ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = True
    ActiveDocument.Sections(1).Headers(wdHeaderFooterFirstPage).Range.Text = "Ma première page"
    ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Text = "Mes autres pages"
     
    End Sub
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 130
    Points : 48
    Points
    48
    Par défaut
    Niquel, c'est ce que je recherchais et le code est beaucoup plus simple ! Par contre dernière chose comment diminuer la marge du haut que sur la deuxième page ?
    J'ai essayer avec cela mais ca change les deux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.PageSetup.TopMargin = CentimetersToPoints(0.95)
    Dernière chose, auriez-vous des liens de tutoriaux complet sur le vba word ou sinon un bon livre dessus. Merci Beaucoup !

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    La mise en page est applicable à toute une section.
    Pour que la mise en page soit différente d'une page à l'autre, il faut un saut de section.

    Pour le VBA Word, il est toujours en cours de rédaction :http://heureuxoli.developpez.com/office/word/vba-word/

    Pour le VBA : http://heureuxoli.developpez.com/office/word/vba-all/

    Et pour tous les tutoriels qui concernent Word : http://word.developpez.com/cours/
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #7
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 130
    Points : 48
    Points
    48
    Par défaut
    Merci pour ces solutions !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] non affichage d'image sur ma page php via mysql
    Par cristelle1986 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 02/09/2014, 20h17
  2. Réponses: 3
    Dernier message: 23/07/2013, 11h40
  3. pied de page différent sur 1ère page
    Par fmh1982 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 17/10/2007, 11h22
  4. Google Analytics sur une page non affichée dans un navigateur
    Par Fdescamps dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/06/2007, 08h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo