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
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
Essaie
donné par l'enregistreur de macro
Code : Sélectionner tout - Visualiser dans une fenêtre à part Selection.Fields.Update
ou
donné dans l'aide en ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part ActiveDocument.Fields.Update
sur fields !
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 ...
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
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
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...!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 ..?Envoyé par Australia
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)
avec i la page qui possède la section,
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
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
? peu-être :
Code : Sélectionner tout - Visualiser dans une fenêtre à part i= ActiveDocument.Range.Information(wdActiveEndPageNumber)
ca fonctionne pas super, je sais pas pourquoi mais ca me donne pas le bon nombre de pages !!!
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
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
Tel quel, donné par Bidou dans un post pas bien vieux mais un peu vieux quand même
Avec ça, tu devrais sélectionner toutes les pages
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
Mais je pense à un autre solution. Je la mets au propre, je la teste et je la mets
Pas testé, c'est ça :
Je regarde s'il faut ajouter un for each....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ActiveDocument.Footers(wdHeaderFooterPrimary). _ Range.Fields.Update
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
mais il me donne pas plus le bon nombre de page qu'avec la solutiobn que m'a fournir bbil,
Code : Sélectionner tout - Visualiser dans une fenêtre à part ThisDocument.BuiltInDocumentProperties("Number of Pages").Value
je pense qu'il donne le nombre de page de la section ou qqchose comme ca !!!!
est il possible de voir la totalité de ta procédure ?
michel
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
Un pis-aller en attendant qu'on ait le nombre de page
Tu peux mettre 50 pages, ça plante pas. Quant à mettre les champs à jour, tu peux tester pour nous ?
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
NB - Faut fermer l'entête à la fin...
Edit
Code : Sélectionner tout - Visualiser dans une fenêtre à part ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Je pense à une chose : si tu n'as pas d'entête sur une section, regarde à Exists dans l'aide
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager