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

Macros et VBA Excel Discussion :

Pilotage entête word depuis excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    juillet 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : juillet 2008
    Messages : 36
    Points : 20
    Points
    20
    Par défaut Pilotage entête word depuis excel
    Bonjour le forum,

    Je suis sur une appli excel qui ouvre un document word et renseigne des DOCPROPERTY donc pour cela je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    wordDoc.CustomDocumentProperties("NomCli").Value = UserForm3.txtCliNom.Value
    wordDoc.CustomDocumentProperties("...")
    ...
    ...
    wordDoc.Fields.Update
    wordDoc.Fields.Update met bien à jour tous mes champs sauf ceux qui se situent dans l'entête.

    J'ai effectuer quelques recherches:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    wordDoc.Sections(1).Headers(wdHeaderFooterPrimary).Range.Fields.Update
    Malheureusement ça ne fonctionne pas..

    Une petite idée pour accéder aux champs d'une entête word ?

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2005
    Messages : 12 464
    Points : 15 273
    Points
    15 273
    Par défaut
    A tout hasard, teste ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With wordDoc.Sections(1).Headers(wdHeaderFooterFirstPage)
        .Range.InsertAfter (UserForm3.txtCliNom.Value)
    End With

  3. #3
    Membre à l'essai
    Inscrit en
    juillet 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : juillet 2008
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    Merci de te pencher sur mon pb.

    Nan, cela m'ajoute directement la valeur "A l'arrache" dans mon entête mais ca ne va pas mettre a jour lom docproperty

    C'est juste un pb d'update pcq quand je vais dans le document clic droit sur mon variable, mettre à jour le champ ca marche

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2005
    Messages : 12 464
    Points : 15 273
    Points
    15 273
    Par défaut
    As-tu regardé dans l'aide de Word à CustomDocumentProperties ?
    J'en ai tiré ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test2()
        Nom = "UnNom"
        BlaBla = "Coucou"
        ActiveDocument.CustomDocumentProperties.Add _
            Name:=Nom, LinkToContent:=False, Value:=BlaBla, _
            Type:=msoPropertyTypeString
        Dim Pr As Object
        For Each Pr In ActiveDocument.CustomDocumentProperties
            MsgBox Pr.Name
            Pr.Delete
        Next
    End Sub
    En remplaçant ActiveDocument par wordDoc, ça devrait pouvoir fonctionner.
    Pas testé depuis Excel

  5. #5
    Membre à l'essai
    Inscrit en
    juillet 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : juillet 2008
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    On a bien accès à toutes les variables du document, mais ca ne met pas a jour pour autant...

    Je vais essayer de voir si on peut faire un fields.update dans chaque section du document

  6. #6
    Membre à l'essai
    Inscrit en
    juillet 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : juillet 2008
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    C'est tout fonctionne avec ce petit bout de 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
     
    Dim J As Integer
    Dim K As Integer
     
    If ActiveDocument.Sections.Count > 2 Then
       For J = 3 To ActiveDocument.Sections.Count
          For K = 1 To ActiveDocument.Sections(J).Headers.Count
             ActiveDocument.Sections(J).Headers(K).Range.Fields.Update
          Next K
          For K = 1 To ActiveDocument.Sections(J).Footers.Count
             ActiveDocument.Sections(J).Footers(K).Range.Fields.Update
          Next K
       Next J
    End If
    Merci et longue vie au forum

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

Discussions similaires

  1. Pilotage word depuis excel
    Par hedidev1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/02/2015, 18h31
  2. Pilotage entête word depuis excel
    Par hitmax dans le forum VBA Word
    Réponses: 4
    Dernier message: 05/08/2008, 08h04
  3. Pilotage de IE depuis excel: reperer et cocher une chexbox.
    Par biggione dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/08/2006, 16h57
  4. coller une plage dans word depuis excel
    Par tarmin dans le forum VBA Word
    Réponses: 7
    Dernier message: 18/01/2006, 10h16
  5. Ouverture d'un template Word depuis Excel
    Par modus vivendi dans le forum VBA Word
    Réponses: 1
    Dernier message: 14/08/2005, 10h29

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