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 25/01/2012, 11h38   #1
Invité de passage
 
Homme
Enseignant Chercheur
Inscription : janvier 2012
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Enseignant Chercheur
Secteur : Enseignement

Informations forums :
Inscription : janvier 2012
Messages : 1
Points : 0
Points : 0
Par défaut Mise à jour automatique des champs à l'ouverture

Bonjour,
N'ayant pas trouvé mon bonheur dans les FAQ et le forum, je poste mon message.
Pour info, je suis sous Mac avec Word 2011 même si je suppose que ça n'est pas à l'origine du problème.
J'ai un certain nombre de fichiers Word 2011 (environ 200) qui contiennent tous un champ d'insertion du nom du fichier avec mise à jour automatique à l'ouverture du fichier et tout fonctionne très bien.
Le problème est lorsque je déplace ces fichiers dans un autre ordinateur sous Windows (Word 2004) : la mise à jour automatique de ce champ ne fonctionne simplement pas.
Comme je ne vois pas la macro "AutoOpen" (ci-dessous) sous Word-PC je suppose qu'elle n'est pas associée à mes fichiers.
Ma question:: Comment faire pour que cette macro qui est dans "normal.dotm" soit associée à tous mes fichiers, sachant que je souhaite partager ces fichiers avec d'autres personnes sur d'autres ordinateurs (d'ou mon test Mac-->PC) qui n'ont pas cette macro AutoOpen
Merci de votre patience et de votre aide.


PS:

Pour info la macro de mise à jour à l'ouverture:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub AutoOpen()
'
' AutoOpen Macro
' Mise à jour automatique des champs à l'ouverture du fichier'
'
Dim aStory As Range
   Dim aField As Field
 
   For Each aStory In ActiveDocument.StoryRanges
 
      For Each aField In aStory.Fields
         aField.Update
      Next aField
 
   Next aStory
 
End Sub
Gilles38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 18h18   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 343
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 343
Points : 29 254
Points : 29 254
Salut,

Il est préférable d'utiliser des évènements liés aux documents.

Code :
1
2
3
4
Sub Document_Open()
 
ActiveDocument.Fields.Update
End Sub
Explication de mon code par rapport au code que tu as posté.

Tu fais une boucle sur les champs contenus dans le document.

On utilise une boucle lorsque l'on souhaite faire un traitement différent pour certains champs. On boucle et en fonction d'un critère, on prend action ou non.

Dans mon code, comme la méthode Update va s'appliquer à tous les champs, on ne boucle pas, on l'applique à la collection.
__________________
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 26/01/2012, 06h11   #3
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 714
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : ex Observeur CGG / Analyste prog.

Informations forums :
Inscription : juin 2006
Messages : 1 714
Points : 3 654
Points : 3 654
Salut,
@Gilles38 : il me semble me rappeler que c'est Auto_Open et non AutoOpen
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 07h56   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 343
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 343
Points : 29 254
Points : 29 254
Salut,

Je pense que Auto_Open est pour Excel alors que Word utilise AutoOpen.
__________________
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
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h03.


 
 
 
 
Partenaires

Hébergement Web