[Office] Bulletin MS14-082 et problème d’ActiveX

Suite à la mise à jour corrective MS14-082 pour les suites Office, de nombreux utilisateurs ont vite constaté un problème avec leurs contrôles ActiveX, notamment dans un classeur Excel. Il s’agit des mises à jour de sécurité suivantes, destinées à colmater une faille qui permettait l’exécution de code distant :

  • Security Update for Microsoft Office 2007 (KB2596927).
  • Security Update for Microsoft Office 2010 (KB2553154).
  • Security Update for Microsoft Office 2013 (KB2726958).

Les symptômes rencontrés peuvent varier d’une machine à une autre. On note les problèmes suivants :

  • Contrôles ActiveX inactifs / impossibilité de modifier leurs propriétés.
  • Erreur indiquant « Impossible d’insérer un objet » (Cannot insert object).
  • Erreur indiquant « Le programme utilisé pour créer cet objet est xxxx. Ce programme n’est pas installé sur votre ordinateur ou ne répond pas (…)« .
  • Erreur 438, « L’objet ne gère pas cette propriété ou méthode » en tentant de pointer vers un contrôle ActiveX depuis le code (d’un classeur).
  • Problème affectant le nom d’un contrôle donné lors de sa création.

Plusieurs solutions s’offrent à vous, certaines peuvent ne pas fonctionner selon la version Office utilisée sur votre machine.

Désinstaller la mise à jour

La première solution qui nous vient à l’esprit est de désinstaller la mise à jour de votre système (voir ci-dessous pour repérer le correctif correspondant). Sur Windows 7 et Windows 8, rendez-vous dans le Panneau de configuration, Windows Update, Mises à jour installées, sélectionnez la mise à jour puis cliquez sur Désinstaller. Cependant cela ne sera peut-être pas forcément nécessaire : la solution suivante consiste à nettoyer les fichiers temporaires, et nous allons voir pourquoi !

Nettoyer les fichiers temporaires

En consultant les différents blogs, dont celui de Microsoft, la solution proposée est toujours la même. Celle-ci consiste à nettoyer les fichiers temporaires qui servent de cache. Trois méthodes sont disponibles : manuelle, scriptée ou automatisée. A vous de choisir celle que vous préférez, en fonction de votre niveau de compétences.

1 – Méthode manuelle

Après la mise à jour, les libraires de types de contrôles, mises en cache, sont « désynchronisées ». Elles sont stockées sous le format « Extender files » (*.exd). Il faut alors supprimer ces fichiers à plusieurs endroits de votre disque.

  • %appdata%\microsoft\forms
  • %temp%\excel8.0
  • %temp%\word8.0
  • %temp%\PPT11.0
  • %temp%\vbe

Vous pouvez également chercher après le fichier « MSForms.exd » dans %TEMP% et %APPDATA%. Attention, n’oubliez pas de fermer les applications Microsoft Office (Excel, PowerPoint, etc) avant d’effectuer cette opération. Un redémarrage peut être nécessaire par la suite.

2 – Utilisation d’un script

Étant donné que le problème peut affecter plusieurs machines il peut être intéressant de concevoir un script batch qui contiendra les lignes suivantes :

del %temp%\vbe*.exd
del %temp%\excel8.0*.exd
del %appdata%\microsoft\forms*.exd
del %appdata%\microsoft\local*.exd
del %temp%\word8.0*.exd
del %temp%\PPT11.0*.exd

Enregistrez le fichier en lui donnant l’extension « .bat ». Lancez-le pour chaque profil car les fichiers « .exd » sont spécifiques à l’utilisateur. Pour automatiser ce script lors de l’identification dans un domaine, vous pouvez suivre le tutoriel suivant : Setting up a Logon Script through Active Directory Users & Computers (en).

3 – Méthode automatisée

Microsoft a mis en ligne un script qui permet d’effectuer ces opérations. Il peut être obtenu à l’adresse suivante : « Cannot insert object Error in an ActiveX custom Office solution after you install the MS14-082 security update » https://support.microsoft.com/kb/3025036/EN-US.

Notes

%TEMP% correspond habituellement à : C:\Users\NOM\AppData\Local\Temp.
%APPDATA% correspond habituellement à : C:\Users\NOM\AppData\Roaming.

Sources

BornCity
ExcelMatters
Microsoft Blog

Un commentaire sur « [Office] Bulletin MS14-082 et problème d’ActiveX »

  1. Bonjour Vincent, et merci pour l'astuce. J'ai été confronté à ce problème hier sur un poste avec office 2010. La désinstallation de la mise a jour concernée a réglé le problème pour moi.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *