web-dev-qa-db-fra.com

Erreurs Excel/VBA Automation dues à Office Service Pack 3.0 causées par des formulaires

Après avoir installé toutes les dernières mises à jour de Windows, mon code VBA Excel affiche une erreur d’automatisation au tout début du premier module. Il contient des formulaires ainsi que de nombreux modules de code VBA. Cependant, lors de la suppression des formulaires (et du code associé), tout va bien.

La même chose s’est produite il ya environ un an après d’autres mises à jour de Windows. À l’époque, supprimer les fichiers .exd s’est avéré utile, mais les mises à jour actuelles (y compris le Service Pack 3) semblent être différentes.

Que se passe-t-il et comment puis-je faire en sorte que les formulaires fonctionnent? Tout le code est inchangé et a survécu à toutes les mises à jour précédentes de Windows/Office. Exécution de Windows 7 (même chose sur la machine Vista) et Office 2007.

6
Rob

J'avais l'habitude de voir cela souvent avec Visual Basic et Crystal Reports ; en raison d'un déploiement incorrect ou DLL Hell .

Donc, je suppose que ce n'est pas le code, mais peut-être certains contrôles tiers (OCX, DLL) que vous utilisez. 

Vérifiez vos références (dans VBA IDE, cliquez sur Outils et références) et voyez où chaque DLL pointe. 

Voyez si certaines des dates sur les bibliothèques sont différentes d'une machine en fonctionnement et vous pouvez trouver le coupable. 


Modifier

Le PO a trouvé le problème en suivant les étapes ci-dessus. 

Le correctif pour ce problème particulier consiste à annuler l'enregistrement de mscomctl.ocx:

regsvr32 /u mscomctl.ocx 

Puis enregistrez-le:

regsvr32 mscomctl.ocx
16
ray

Même problème ici, problème complètement résolu après l'enregistrement de mscomctl.ocx!

pour Windows 7 ou 2008 - n'oubliez pas de lancer cmd.exe "en tant qu'administrateur", puis:

pour les systèmes Windows 32 bits: regsvr32 c:\windows\system32\mscomctl.ocx

pour les systèmes Windows 64 bits: regsvr32 c:\windows\syswow64\mscomctl.ocx

5
Micha Kaufman

Consultez http://support.Microsoft.com/kb/2687441 pour une mise à jour susceptible de résoudre ce problème

2
Avi

Nous n'avons pas pu résoudre le problème en ré-enregistrant mscomctl.ocx. Mais nous l'avons résolu en supprimant un "formulaire d'objet de barre de progression" qui appelle mscomctl.ocx ... Nous l'avons remplacé par application.statusbar.

2

Même problème avec VBA pour AutoCAD. Dans mon cas, enregistrer le nouveau fichier mscomctl.ocx avec regsvr32 était suffisant pour résoudre le problème.

2
Aaron

J'ai eu le même problème. Une erreur non spécifiée s'est produite lors de l'ouverture d'Excel avec le chargement de mon add-in. ____.] a fait le tour, mais pas cette fois.
Lorsque j'ai tenté d'ouvrir les formulaires dans mon add-in, une erreur différente s'est produite et je ne pouvais pas les ouvrir. encore.

0
Tom Pydeski

Annuler et enregistrer le fichier MSCOMCTL.ocx a été décisif pour moi:

  1. Ouvrez une invite de commande de niveau administratif. Cliquez sur Démarrer, puis tapez Exécuter dans la ligne de commande d'exécution. Sous Windows Vista et Windows 7, vous verrez Voir CMD.EXE apparaître dans la liste de recherche rapide. Cliquez avec le bouton droit sur CMD.EXE et Cliquez sur Exécuter en tant qu'administrateur. Une invite de commande noire s'ouvre.

  2. Si sur un ordinateur 64 bits, tapez ce qui suit: regsvr32.exe/u C:\Windows\SysWOW64\MSCOMCTL.OCX

Appuyez sur Entrée, puis tapez regsvr32.exe C:\Windows\SysWOW64\MSCOMCTL.OCX Si sur un ordinateur 32 bits, tapez ce qui suit: regsvr32.exe /u C:\Windows\System32\MSCOMCTL.OCX Appuyez sur Entrée, puis tapez
regsvr32.exe C:\Windows\System32\MSCOMCTL.OCX Votre programme Office devrait à nouveau fonctionner après cette opération.

Voir aussi: http://blogs.technet.com/b/the_Microsoft_Excel_support_team_blog/archive/2012/08/15/quot-unspecified-automation-error-quot-after-applying-ms12-060.aspx

0
hrattink

fils d'une arme à feu ... J'ai ré-enregistré C:\Windows\System32\MSCOMCTL.OCX et tout fonctionne à nouveau. Merci beaucoup à tous ceux qui l'ont souligné.

0
Tom Pydeski

Même problème ici aujourd'hui après avoir effectué la mise à jour pour Office 2007 Excel. Curieusement, un système n’avait aucun problème malgré la mise à jour - le système le plus récent. Ainsi, après quelques inspections, j'ai remarqué que ce système sans problème avait une version différente de MSCOMCTL.OCX dans Windows\sysWOW64, puis d'autres. Voici les détails de cet actifX Taille: 1 070 152 octets Créé: 6/3/2012 Modifié le: 6/6/2012 Version du produit: 6.01. 9834 J'ai donc copié ceci pour le problème et cela a fonctionné.

Vous pouvez également vérifier si ces extensions d’application sont présentes dans Windows\sysWOW64 ou Windows\System32 pour un système 32 bits FM20.DLL (Date de modification: 7/7/2011, version 12.0.6604.1000, 1.13 MB) FM20ENU.DLL (Date modifiée: 24/10/2008, version 12.0.6413.1000, 32.3KB) Vous ne savez pas où télécharger ces fichiers. Je les ai cannibalisés à partir d'autres systèmes.

0
zukunt

Nous avons le meme probleme. Dans notre complément, nous avons pu retracer le problème jusqu'à la déclaration d'une variable sous la forme Excel.Application. La référence à cet objet se trouve dans le fichier Excel.exe. Par conséquent, il est très difficile de savoir quels fichiers ont été endommagés. 

Les machines qui ont ce problème ont toutes été mises à jour tôt ce matin (15 août 2012) avec les mises à jour suivantes (désolé de ne pas poster de liens, en tant que nouvel utilisateur, je suis limité à deux par publication):

Mise à jour de sécurité pour les suites Microsoft Office 2007 (KB2596615)

Mise à jour de sécurité pour les suites Microsoft Office 2007 (KB2596754)

Mise à jour de sécurité pour les suites Microsoft Office 2007 (KB2596856)

Mise à jour de sécurité pour les suites Microsoft Office 2007 (KB2687441)

Mise à jour pour le filtre de courrier indésirable de Microsoft Office Outlook 2007 (KB2687400)

Outil de suppression de logiciel malveillant Windows x64 - Août 2012 (KB890830)

À l'heure actuelle, nous n'avons trouvé aucune information sur le site MSDN qui pourrait éclaircir cela. Nous essayons toujours d'isoler davantage cette situation.

0
Corey

Avait le même problème sur tous nos serveurs de terminal après l'une des mises à jour d'hier soir. L'enregistrement de mscomctl.ocx a résolu le problème pour tous les utilisateurs.

0
Marc