Symptômes
Lorsque Microsoft Excel charge un complément Automation en mode d’édition de cellule, Excel échoue. Ce problème se produit uniquement avec les compléments Automation qui ont été chargés à la demande dans Excel.
Cause
Ce problème peut se produire lorsqu’un complément se charge si le complément affiche un formulaire ou une boîte de dialogue, ou si le complément envoie une requête Automation à Excel qui tente de modifier l’état d’Excel. La liste suivante contient des exemples de demandes Automation qui peuvent entraîner l’échec d’Excel lorsqu’il est appelé pendant le chargement d’un complément Automation en mode d’édition de cellule :
-
Modifiez par programmation la sélection actuelle. Par exemple :
Application.ActiveSheet.Range("A1").Select -
Appelez une propriété ou une méthode d’un élément dans la collection Windows. Par exemple :
Application.ActiveWindow.Zoom = 200
-
Modifier un paramètre Excel tel que le mode de calcul. Par exemple :
Application.CalculationMode = xlManual
Tous ces éléments sont des exemples de tentatives de code pour modifier l’environnement Excel, un classeur ou une feuille de calcul . ces types d’actions ne sont pas autorisés en mode édition.
Résolution
N’essayez pas les actions mentionnées ci-dessus pendant le chargement de votre complément. Les méthodes de complément appelées pendant le chargement incluent la méthode Initialize et, si votre complément Automation implémente l’interface IDTExtensibility2, les méthodes OnConnection et OnStartupComplete également.
État
Microsoft a confirmé qu’il s’agit d’un bogue dans les produits Microsoft répertoriés au début de cet article.
Informations supplémentaires
Étapes de reproduction du problème
-
Démarrez un nouveau projet DLL ActiveX en Visual Basic.
-
Dans le menu Projet, cliquez sur Propriétés de Project1. Remplacez le nom du projet par TestAddIn, puis cliquez sur OK.
-
Ajoutez le code suivant au module de code pour Class1 :
Private Sub Class_Initialize() MsgBox "Class_Initialize"End Sub
-
Build TestAddIn.dll.
-
Dans Excel, démarrez un nouveau classeur.
-
Dans Microsoft Office Excel 2003 ou Microsoft Excel 2002, procédez comme suit :
-
Dans le menu Outils , pointez sur Compléments, puis cliquez sur Automatisation.
-
Dans la liste, cliquez sur TestAddIn.Class1, puis sur OK.
-
Dans la boîte de dialogue Compléments , cliquez sur OK.
Dans Microsoft Office Excel 2007, procédez comme suit :
-
Cliquez sur le bouton Microsoft Office, puis surOptions Excel.
-
Cliquez sur l’onglet Compléments .
-
Dans la liste Gérer , cliquez sur Compléments Excel, puis sur Accéder.
-
Dans la boîte de dialogue Compléments , cliquez surAutomation.
-
Dans la liste, cliquez sur TestAddin.Class1, puis sur OK.
-
Cliquez sur OK.
-
-
Tapez =a dans n’importe quelle cellule. Une zone de message avec le texte « Class_Initialize » s’affiche.
-
Cliquez sur OK pour ignorer la boîte de message. Après quelques secondes, Excel échoue.
Références
Pour plus d’informations, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
291392 INFO : Compléments COM Excel et compléments Automation