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 :

Mise à jour champs Word en VB


Sujet :

VBA Word

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut Mise à jour champs Word en VB
    Bonjour,

    je souhaite pouvoir mettre à jour des champs de Word (DOCPROPERTY) depuis excel,
    en fait l'équivalent sous VB d'un word ouvert dans lequel on fait : "Ctrl-A" puis "F9" mais je sais pas si c'est possible ...

    Merci d'avance

  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 543
    Points
    15 543
    Par défaut
    Essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Selection.Fields.Update
    donné par l'enregistreur de macro
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.Fields.Update
    donné dans l'aide en ligne

    sur fields !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut
    merci, ca fonctionne bien sauf pour les champs qui se trouvent dans les en-têtes et pieds de pages, comment faire ?

    PS : ma question était un peu bête j'avoue mais en fête c'est parceque j'essayais de mettre à jour les champs word depuis excel, au lien de mettre à jour depuis le document word appelé par excel, je sais pas si je suis clair mais j'me comprends ...

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    pour les entetes, tu peux essayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary). _
            Range.Fields.Update

    michel

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut
    ben j'ai essayé mais ca marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary). _
            Range.Fields.Update
        ActiveDocument.Sections(2).Footers(wdHeaderFooterPrimary). _
            Range.Fields.Update
        ActiveDocument.Sections(3).Footers(wdHeaderFooterPrimary). _
            Range.Fields.Update
     
        ActiveDocument.Save

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par Australia
    ben j'ai essayé mais ca marche pas :

    ....
    c'est normal pour marcher il faut des jambes ... Word n'en as pas ... dis nous plutôt ce qui fonctionne pas (message d'erreur ..?) ... ! et ou tu as utilisé ce code...!

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut
    est-ce qu'il y a moyen de réupérer le nombre de page d'un document word ?
    surement mais comment ?

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par Australia
    est-ce qu'il y a moyen de réupérer le nombre de page d'un document word ?
    surement mais comment ?
    c'est une nouvelle question .. cela ou c'est le message d'erreur ..?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut
    ben ce qu'il fonctionne pas c'est que ca fonctionne pas, j'ai pas de message d'insulte ni d'erreur, ca ne me met pas mes champs dans les pieds de page à jour, bien sur que s'il y avait une erreur je le donnerait, je suis pas complètement stupide bien que faisant du VB avec Word ,

    sinon, j'ai trouvé ca qui fonctionne (puisque le verbe marche n'est pas à utiliser pour word)

    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
    Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:=i
     
        If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
            ActiveWindow.Panes(2).Close
        End If
        If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
            ActivePane.View.Type = wdOutlineView Then
            ActiveWindow.ActivePane.View.Type = wdPrintView
        End If
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
        Selection.WholeStory
        Selection.Fields.Update
        If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
            ActiveWindow.Panes(2).Close
        End If
        If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
            ActivePane.View.Type = wdOutlineView Then
            ActiveWindow.ActivePane.View.Type = wdPrintView
        End If
    avec i la page qui possède la section,

    j'ai donc besoin de savoir comment réupérer le nombre de page et je sais pas le faire et pourtant ca doit pas être bien dure,
    désolé d'être si nul mais la doc de VB sous word est vraiment un peu compliqué pour moi

  10. #10
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    ? peu-être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i= ActiveDocument.Range.Information(wdActiveEndPageNumber)

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut
    ca fonctionne pas super, je sais pas pourquoi mais ca me donne pas le bon nombre de pages !!!

  12. #12
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    n'arrivant pas à sélectionner tous les entêtes ... on peu boucler dedans... peu être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    Sub MajChamps()
     Dim H As HeaderFooter
     Dim s As Section
     For Each s In ActiveDocument.Sections
        For Each H In s.Headers
          H.Range.Fields.Update
        Next
      Next
    End Sub

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut
    déjà essayé tout à l'heure,

    il me manque plus que de pouvoir récupérer le nb de pages, en plus ca fait partie des statistiques du document donc ca doit pouvoir se récupérer !!! Enfin j'éspère
    je cherche
    un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    statistiDocumentProperties
    ...

  14. #14
    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 543
    Points
    15 543
    Par défaut
    Tel quel, donné par Bidou dans un post pas bien vieux mais un peu vieux quand même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub sélectionnerDesPagesSelonBidou()
        Selection.GoTo wdGoToPage, wdGoToFirst
        Selection.SetRange Selection.Start, Selection.GoTo(wdGoToPage, wdGoToNext, 2).End
    End Sub
    Avec ça, tu devrais sélectionner toutes les pages
    Mais je pense à un autre solution. Je la mets au propre, je la teste et je la mets
    Pas testé, c'est ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveDocument.Footers(wdHeaderFooterPrimary). _
            Range.Fields.Update
    Je regarde s'il faut ajouter un for each....

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut
    Excusez moi d'insister un peu mais
    Y a vraiment rien qui permet d'obtenir le nombre de page du document word ?
    moi j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisDocument.BuiltInDocumentProperties("Number of Pages").Value
    mais il me donne pas plus le bon nombre de page qu'avec la solutiobn que m'a fournir bbil,
    je pense qu'il donne le nombre de page de la section ou qqchose comme ca !!!!

  16. #16
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    est il possible de voir la totalité de ta procédure ?


    michel

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut
    je vois pas en quoi ca peut t'aider mais la voila :
    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
    Public Function Mise_a_jour_variables(NumCadFt As Integer, datePrecCadFt, dateCadFT, dateProchaineCadFt, numCrCaftFT)
    On Error GoTo Mise_a_jour_variables_error
        Dim nb_pages_word
        Dim i As Integer
        ThisDocument.CustomDocumentProperties("DatePrecedenteCAD") = datePrecCadFt
        ThisDocument.CustomDocumentProperties("DateCAD") = dateCadFT
        ThisDocument.CustomDocumentProperties("DateProchaineCAD") = dateProchaineCadFt
        ThisDocument.CustomDocumentProperties("numeroCAD") = NumCadFt
        ThisDocument.BuiltInDocumentProperties(wdPropertyTitle).Value = PREFIXE_TITRE & NumCadFt
        ThisDocument.BuiltInDocumentProperties(wdPropertySubject).Value = numCrCaftFT
        ThisDocument.Fields.Update
     
        'ca fonctionne pas mais on sait pas pourquoi ????
        nb_pages_word = ThisDocument.BuiltInDocumentProperties("Number of Pages").Value
     nb_pages_word = nb_pages_word * 2
        For i = 2 To nb_pages_word
           Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:=i
     
           If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
               ActiveWindow.Panes(2).Close
           End If
           If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
               ActivePane.View.Type = wdOutlineView Then
               ActiveWindow.ActivePane.View.Type = wdPrintView
           End If
           ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
           Selection.WholeStory
           Selection.Fields.Update
           If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
               ActiveWindow.Panes(2).Close
           End If
           If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
               ActivePane.View.Type = wdOutlineView Then
               ActiveWindow.ActivePane.View.Type = wdPrintView
           End If
        Next i
     
        ThisDocument.Save
    Exit Function
    Mise_a_jour_variables_error:
        MsgBox Err.Number & " : " & Err.Description
    End Function

  18. #18
    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 543
    Points
    15 543
    Par défaut
    Un pis-aller en attendant qu'on ait le nombre de page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Selection.HomeKey Unit:=wdStory
    Do
        i = i + 1
        With Selection
            .GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1
            ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
            Selection.Fields.Update
        End With
    Loop While i < 12
    Tu peux mettre 50 pages, ça plante pas. Quant à mettre les champs à jour, tu peux tester pour nous ?
    NB - Faut fermer l'entête à la fin...
    Edit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument

  19. #19
    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 543
    Points
    15 543
    Par défaut
    Je pense à une chose : si tu n'as pas d'entête sur une section, regarde à Exists dans l'aide

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut
    ouaih, je sais qu'il plante pas c'est pour ca que je mets nombre de page *2 parceque j'ai 5 pages et qu'il me dit 3 ce p?!$ù*ù$é'(-'_è-)_è) de word
    moi j'avais mis exprès 1000 pour récupérer l'erreur et manque de bol il lève pas d'erreur donc dans mon c...

    après le code, j'suis pas rentré dedans, j'ai juste récupérer la macro word ...

    c'est dingue quand même qu'il y ait pas une propriété nombre de page !!!

    merci à toi uskel'n'or pour m'avoir supporter toute la journée,
    peut être deain qqun aura une solution sur le nb de page mais la j'en ai marre de chez marre donc j'vais arrêter

Discussions similaires

  1. Liste déroulante avec mise à jour champ en dynamique
    Par B-Pascal dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/07/2006, 15h53
  2. [Mise à jour] Champs Téléphone
    Par yankee76 dans le forum Access
    Réponses: 3
    Dernier message: 17/05/2006, 10h46
  3. Mise à jour Champ en fonction liste modifiable
    Par lito74 dans le forum Access
    Réponses: 2
    Dernier message: 30/01/2006, 14h37
  4. formulaire mise à jour champ texte a partir autre page
    Par laulaurent dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 07/01/2006, 00h13
  5. Mise à jour champs modifés via formulaire
    Par Al3x dans le forum Requêtes
    Réponses: 2
    Dernier message: 02/01/2006, 17h31

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