Mot-clé - office

Fil des billets

lundi 30 juillet 2012

Quand Office 2007 ou 2010 attend les modèles attachés

Tous les documents édités sous Word sont attachés à un modèle ('attached template' dans la langue shakespearienne). Par défaut, il s'agit de Normal.dotx (ou Normal.dot) qui est disponible sur toute machine disposant de la suite Office. Dans certains cas toutefois, les documents sont créés avec des modèles particuliers qui sont attachés au fichier.

Lorsque le fichier est enregistré, il garde donc mémoire de l'emplacement du modèle qui a servi à le faire naître. Et pour une raison que je n'explique pas, il tente d'accéder au modèle à chaque nouvelle ouverture.

Si le modèle de départ est encore accessible, l'opération est tellement rapide qu'elle ne se remarque pas. En revanche, si le modèle a le mauvais goût de se trouver sur un partage réseau inaccessible, alors Microsoft Word essaye de contacter l'emplacement... et laisse l'utilisateur patienter de nombreuses minutes. Le temps d'attente est variable : sur Windows 7 64 bits avec Office 2007 ou 2010 (à jour en date de Juillet 2012), le temps d'attente peut dépasser 2 minutes. Et pire, parfois la main n'est jamais rendue à l'utilisateur. Autant dire que ce comportement est fort handicapant !

Typiquement, on peut se trouver dans cette situation si l'on reçoit un document provenant d'une compagnie qui travaille à partir de modèles stockés sur un serveur centralisé et bien sûr inaccessible au public depuis l'extérieur.

Résoudre le problème du côté de l'émetteur Voici trois méthodes qu'il est possible d'appliquer pour 'détacher' le modèle d'un document (et le remplacer par défaut par le modèle Normal.dotx).

Méthode 1 : activer l'onglet développeur dans les options de la suite Office, puis se rendre dans l'onglet 'développeur' et cliquer sur l'icône 'modèle de document'. Dans la fenêtre qui s'ouvre, il est possible de supprimer le chemin vers le modèle lié ce qui provoque le détachement (et le remplacement par défaut par Normal.dotx).

Méthode 2 : utiliser les outils de préparation en supprimant les infos et méta-données XML présentes dans le document.

Méthode 3 : supprimer manuellement la balise <w:attachedTemplate r:id="string"/> qui se trouve dans les fichiers xml qui forment le document .docx (que l'utilisateur avisé saura ouvrir à l'aide de 7zip par exemple)

Méthode 4 : utiliser une routine scriptée (en langage Visual Basic Application) pour supprimer l'attachement :

myCurrentDoc.AttachedTemplate = ""

Résoudre le problème à la réception A la réception, il est difficile d'agir avant que le fichier ne soit ouvert pour toutes les méthodes mentionnées ci-dessus sauf la dernière. Mais elle n'est pas la plus facile à mettre en oeuvre.

Il existe en revanche une option cachée qui permet de choisir un 'time out' (i.e. un temps maximal d'attente avant abandon) pour l'opération de chargement du modèle attaché... Voici comment paramétrer ce 'time out' à une valeur raisonnable de l'ordre de la seconde pour éviter de n'avoir à attendre plusieurs minutes devant le document avant son ouverture.

Etape 1 : ouvrir le gestionnaire des bases de données "regedit" __ Etape 2 :__ dans Regedit, se rendre dans l'arborescence à

HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Word\Options

Etape 3 : créer une nouvelle clé de type DWORD

Etape 4 : renommer la clé nouvellement créée en

UseTimeoutForAttachedTemplateLoad

Etape 5 : double-cliquer sur la clé et entrer une valeur décimale pour le "time out" (par ex. 1000 pour 1000ms = 1s)

Etape 6 : fermer Regedit et redémarrer le système (si Office avait déjà été ouvert)

Le temps d'attente à l'ouverture ne devrait désormais plus dépasser la durée choisie !

En espérant que ces astuces vous aideront à gagner quelques minutes très productives !