Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/08/2008, 15h30   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 36
Points : 10
Points : 10
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 :
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 :
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 ?
hitmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2008, 15h47   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 364
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 364
Points : 29 286
Points : 29 286
Salut,

Il faut faire attention, si tu as plusieurs Sections, il faut toutes les parcourir.
Je te conseilles de faire une vérification des tes sections et entêtes.
__________________
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2008, 16h01   #3
Candidat au titre de Membre du Club
 
Inscription : juillet 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 36
Points : 10
Points : 10
En effet, j'ai plusieurs sections.

Peut-on boucler sur toute les sections du document pour faire des update de mes champs ?

Car c'est juste un problème d'update si je rentre dans mon entete clic droit sur le champ, mettre à jour le champ la valeur se met à jour sans problème.
hitmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2008, 18h35   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 364
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 364
Points : 29 286
Points : 29 286
Oui, on peut boucler sur les sections.
Tu peux les compter et faire une boucle.

Code :
ActiveDocument.Sections.Count
Tu peux aussi boucler sur le type d'entête avec une structure décisionnelle si tu possèdes plusieurs types d'entête.
__________________
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2008, 08h04   #5
Candidat au titre de Membre du Club
 
Inscription : juillet 2008
Messages : 36
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 36
Points : 10
Points : 10
Bon j'ai suivi tes conseils et je vais boucler sur toutes les sections a voir maintenant si ca va marcher (moin sur .. lol)
Code :
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
Edit: Ca marche merci forum
hitmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h57.


 
 
 
 
Partenaires

Hébergement Web