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 :

Problème de mise à jour de champ dans l'en tête


Sujet :

VBA Word

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 4
    Points : 6
    Points
    6
    Par défaut Problème de mise à jour de champ dans l'en tête
    Bonjour, je suis en word 2010 et je n'arrive pas à updater mes headers dans mon document. Pourtant, j'utilise la même logique que pour updater le footer, que j'arrive pourtant à updater...

    Voilà donc mon code:
    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
    'Updater les fields et fermer la fenêtre
        ActiveDocument.Fields.Update
        'Permet de mettre à jour les pieds de page des trois sections, et de celui de la première page de la section 3
        ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Fields.Update
        ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Fields.Update
        ActiveDocument.Sections(2).Footers(wdHeaderFooterPrimary).Range.Fields.Update
        ActiveDocument.Sections(2).Headers(wdHeaderFooterPrimary).Range.Fields.Update
        ActiveDocument.Sections(3).Footers(wdHeaderFooterPrimary).Range.Fields.Update
        ActiveDocument.Sections(3).Headers(wdHeaderFooterPrimary).Range.Fields.Update
        ActiveDocument.Sections(3).Footers(wdHeaderFooterFirstPage).Range.Fields.Update
        ActiveDocument.Sections(3).Headers(wdHeaderFooterFirstPage).Range.Fields.Update
        'Mise à jour de la text box sur la page de présentation
            Dim oRange As Word.Range
            Dim oShape As Word.Shape
            Set oRange = ActiveDocument.Sections(1).Range
            If oRange.ShapeRange.Count > 0 Then
            For Each oShape In oRange.ShapeRange
            oShape.TextFrame.TextRange.Fields.Update
            Next
            End If
            Set oRange = Nothing
        UserForm1.Hide
    Je commence à pogner les nerfs et je crois bien avoir essayer tous les codes d'exemple que je trouve sur internet. Merci bien de prendre une petite minute pour un gars qui trouve votre forum bien pratique!

  2. #2
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut d.martin77

    Pas d'erreur sur ton code (j'utilise le même). Je pense qu'il y a 2 possibilités: soit tu n'as plus de champ (mais uniquement la valeur) soit tu as changé des propriétés sur les entêtes/pieds de page (du style "Première page" différente...) et comme tu n'effectues pas les mises à jour sur toutes les parties de la section 1, ton entête reste non modifié.

    Si tu n'y arrives pas, mets ton document (ou une partie significative) sur le site en vérifiant qu'il ne contient rien de confidentiel ou d'illégal, pour qu'on puisse voir et t'aider.

    @+ (et courage, tu n'es pas seul )

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 4
    Points : 6
    Points
    6
    Par défaut
    Je viens de réaliser que mon champ se trouvais dans un textbox au sein de mon header. Je vais modifier pour inclure les textbox, j'en redonne des nouvelles.

    Alors voilà le code corrigé pour ceux qui auraient des problèmes similaires dans le futur...

    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
    48
    49
    50
    51
    52
    'Updater les fields et fermer la fenêtre
        ActiveDocument.Fields.Update
        'Permet de mettre à jour les pieds de page des section 3, et de celui de la première page de la section 2 et 3 puisqu'elle est "différente"
        ActiveDocument.Sections(2).Footers(wdHeaderFooterFirstPage).Range.Fields.Update
        ActiveDocument.Sections(3).Footers(wdHeaderFooterPrimary).Range.Fields.Update
        ActiveDocument.Sections(3).Footers(wdHeaderFooterFirstPage).Range.Fields.Update
     
    'Mise à jour de la text box sur la page de présentation
        Dim oRange As Word.Range
        Dim oShape As Word.Shape
        Set oRange = ActiveDocument.Sections(1).Range
        If oRange.ShapeRange.Count > 0 Then
        For Each oShape In oRange.ShapeRange
        oShape.TextFrame.TextRange.Fields.Update
        Next
        End If
        Set oRange = Nothing
     
    'Mise à jour de la text box dans le header section 2
        Dim oRange1 As Word.Range
        Dim oShape1 As Word.Shape
        Set oRange = ActiveDocument.Sections(2).Headers(wdHeaderFooterFirstPage).Range
        If oRange.ShapeRange.Count > 0 Then
        For Each oShape In oRange.ShapeRange
        oShape.TextFrame.TextRange.Fields.Update
        Next
        End If
        Set oRange = Nothing
     
    'Mise à jour de la text box dans le header section 3, first page
        Dim oRange2 As Word.Range
        Dim oShape2 As Word.Shape
        Set oRange = ActiveDocument.Sections(3).Headers(wdHeaderFooterFirstPage).Range
        If oRange.ShapeRange.Count > 0 Then
        For Each oShape In oRange.ShapeRange
        oShape.TextFrame.TextRange.Fields.Update
        Next
        End If
        Set oRange = Nothing
     
    'Mise à jour de la text box dans le header section 3
        Dim oRange3 As Word.Range
        Dim oShape3 As Word.Shape
        Set oRange = ActiveDocument.Sections(3).Headers(wdHeaderFooterPrimary).Range
        If oRange.ShapeRange.Count > 0 Then
        For Each oShape In oRange.ShapeRange
        oShape.TextFrame.TextRange.Fields.Update
        Next
        End If
        Set oRange = Nothing
    'Fermeture du formulaire
        UserForm1.Hide
    Ce n'est pas le code le plus élégant, il y a surement moyen de le simplifier mais bon, ça marche!

    d.martin77

  4. #4
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut d.martin77,

    Super et bravo d.martin77 .

    Il te reste juste un petit truc à faire. Sur le site de DVP.com, lorsqu'un problème est résolu, positivement ou négativement (et ici c'est positivement), on clique sur :Resolu: pour faciliter les recherches des autres DVPnautes.

    @+

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/08/2011, 20h49
  2. [AC-2003] problème de mise à jour des champs disponibles dans TCD
    Par patbeautifulday dans le forum IHM
    Réponses: 3
    Dernier message: 03/03/2010, 08h59
  3. [AC-2003] Requête SQL pour Mise à jour de champs dans un formulaire suite à une saisie
    Par sunshine44 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 28/01/2010, 16h25
  4. Réponses: 11
    Dernier message: 08/01/2008, 11h36
  5. Problème de mise à jour des champs Auto incrémentés avec VB6.
    Par NHenry dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 28/05/2007, 16h06

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