Partager via


Dépannage d'erreurs dans les solutions Office

Lors du développement de solutions Office dans Visual Studio, vous pouvez rencontrer des problèmes lorsque vous effectuez les tâches suivantes :

  • Création, mise à niveau et ouverture de projets

  • Utilisation des concepteurs

  • Écriture de code

  • Génération de projets

  • Débogage de projets

Création, mise à niveau et ouverture de projets

Vous pouvez rencontrer les erreurs suivantes lors de la création ou de l'ouverture des projets Office.

h8c469ey.collapse_all(fr-fr,VS.110).gifImpossible de créer le projet

Une erreur s'est produite lorsque vous avez tenté de créer ou d'ouvrir un projet Office, mais Visual Studio ne dispose pas de suffisamment d'informations pour identifier la cause.Essayez de fermer votre projet, de quitter Visual Studio et de redémarrer.

Si vous tentez de créer un projet de niveau document, il est possible qu'un autre document du nouveau projet portant le même nom soit déjà ouvert dans Excel ou Word.Assurez-vous que toutes les autres instances d'Excel ou de Word sont fermées.

h8c469ey.collapse_all(fr-fr,VS.110).gifLes propriétés des contrôles sont perdues lorsque vous créez un nouveau projet basé sur un document d'un projet existant

Si vous créez un projet Office d'après un document d'un projet existant, les propriétés de tous les contrôles du document ne sont pas copiées dans le nouveau projet.Vous devez redéfinir manuellement les propriétés pour tous les contrôles préexistants.Vous pouvez également conserver les propriétés des contrôles en créant une copie du projet existant au lieu de créer un nouveau projet, ou en chargeant le projet existant dans la nouvelle solution (dans le concepteur) et en copiant et collant les contrôles du document existant vers le nouveau document.

h8c469ey.collapse_all(fr-fr,VS.110).gifDes erreurs se produisent lors de la création d'un projet de classeur Excel basé sur un classeur existant

Si vous créez un projet de classeur Excel basé sur un classeur existant, les erreurs suivantes peuvent se produire.

Dans Excel : « Avertissement concernant la confidentialité : ce document contient des macros, des contrôles ActiveX, des informations sur le kit d'extension XML ou des composants Web.Ils peuvent renfermer des informations personnelles qui ne peuvent pas être supprimées par l'Inspecteur de document. »

Dans Visual Studio : « Le chargement du concepteur n'a pas pu s'effectuer correctement ».

Ces erreurs peuvent se produire si vous tentez de créer un projet basé sur un classeur dont les données personnelles ont été supprimées à l'aide de l'Inspecteur de document.Pour éviter cette erreur, procédez aux étapes suivantes avant de créer le projet.

  1. Ouvrez le classeur dans Excel.

  2. Dans Excel, ouvrez le Centre de gestion de la confidentialité.

  3. Sous l'onglet Options de confidentialité, désactivez la case à cocher Supprimer les informations personnelles des propriétés de ce fichier lors de l'enregistrement.

  4. Enregistrez le classeur et quittez Excel.

h8c469ey.collapse_all(fr-fr,VS.110).gifImpossible d'ouvrir un projet après la migration

Après avoir effectué la migration d'une solution Office vers Microsoft Office 2010, le projet ne peut pas être ouvert sur un ordinateur de développement sur lequel seule la version 2007 de Microsoft Office System est installée.Les erreurs suivantes peuvent s'afficher.

« Un ou plusieurs projets de la solution n'ont pas été correctement chargés.Pour plus d'informations, consultez la fenêtre de Sortie. »

« Impossible de créer le projet, car l'application associée à ce type de projet n'est pas installée sur cet ordinateur.Vous devez installer l'application Microsoft Office associée à ce type de projet. »

Pour résoudre ce problème, modifiez l'extension du fichier de .vbproj en .csproj.Pour un projet Word, remplacez HostPackage="{763FDC83-64E5-4651-AC9B-28C4FEB985A1}" par HostPackage="{6CE98B71-D55A-4305-87A8-0D6E368D9600}".Pour un projet Excel, remplacez HostPackage="{B284B16A-C42C-4438-BDCD-B72F4AC43CFB}" par HostPackage="{825100CF-0BA7-47EA-A084-DCF3308DAF74}".Pour un projet Outlook, remplacez HostPackage="{D2B20FF5-A6E5-47E1-90E8-463C6860CB05}" par HostPackage="{20A848B8-E01F-4801-962E-25DB0FF57389}".

Vous pouvez également vérifier que les projets migrés sont ouverts uniquement sur les ordinateurs de développement sur lesquels Microsoft Office 2010 est déjà installé.

h8c469ey.collapse_all(fr-fr,VS.110).gifErreurs dans les projets de niveau document mis à niveau depuis Office 2003 contenant des contrôles Windows Forms

Si vous mettez à niveau un projet de niveau document Microsoft Office 2003 contenant des contrôles Windows Forms, il est possible qu'il comporte des erreurs de compilation ou d'exécution.Pour éviter ce problème, installez Visual Studio 2005 Tools pour Office Second Edition Runtime sur l'ordinateur de développement avant de mettre à niveau le projet.Cette version du runtime est disponible sous forme de package redistribuable depuis le Centre de téléchargement Microsoft : Microsoft Visual Studio 2005 Tools pour Office Second Edition Runtime (VSTO 2005 SE) (x86).

Une fois la mise à niveau du projet terminée, vous pourrez désinstaller Visual Studio 2005 Tools pour Office Second Edition Runtime de l'ordinateur de développement s'il n'est pas utilisé par d'autres solutions Office.

Utilisation des concepteurs

Vous pouvez rencontrer les erreurs suivantes lors de l'utilisation d'un document, classeur ou concepteur de feuille de calcul dans les projets de niveau document.

h8c469ey.collapse_all(fr-fr,VS.110).gifLe chargement du concepteur n'a pas pu s'effectuer correctement

Visual Studio ne peut pas ouvrir le concepteur dans les cas suivants :

  • Excel ou Word est déjà ouvert et affiche une boîte de dialogue modale.Pour ouvrir le concepteur, vérifiez si Excel ou Word a ouvert des boîtes de dialogue et fermez-les le cas échéant.Si aucune boîte de dialogue modale n'est ouverte, certaines actions supplémentaires peuvent être requises avant la réponse d'Excel ou de Word.

  • Le projet est en cours de débogage.Pour ouvrir le concepteur, suspendez ou terminez le débogage.

  • Une macro complémentaire Excel installée sur l'ordinateur de développement affiche une boîte de dialogue au démarrage d'Excel.Pour créer un projet au niveau du document Excel, vous devez d'abord désactiver le complément.

h8c469ey.collapse_all(fr-fr,VS.110).gifLes contrôles s'affichent sous forme de rectangles noirs sur le document ou la feuille de calcul

Si vous groupez des contrôles dans un document ou une feuille de calcul, Visual Studio ne reconnaît plus les contrôles.Les contrôles regroupés ne sont pas accessibles dans la fenêtre Propriétés et ils s'affichent sous forme de rectangles noirs sur le document ou la feuille de calcul.Vous devez dégrouper les contrôles pour restaurer leurs fonctionnalités.

h8c469ey.collapse_all(fr-fr,VS.110).gifLes contrôles d'un modèle Word ne sont pas visibles dans Visual Studio

Si vous ouvrez un modèle Word dans le concepteur Visual Studio, les contrôles du modèle non alignés sur le texte peuvent ne pas être visibles.En effet, Visual Studio ouvre les modèles Word en mode Normal.Pour afficher les contrôles, cliquez sur le menu Affichage, sélectionnez Vue Microsoft Office Word, puis cliquez sur Mode Page.

h8c469ey.collapse_all(fr-fr,VS.110).gifLa commande d'insertion d'images clipart n'a aucun effet dans le concepteur Visual Studio

Lorsqu'Excel ou Word est ouvert dans le concepteur Visual Studio, si vous cliquez sur le bouton Image clipart sous l'onglet Illustrations dans le ruban, le volet de tâches Image clipart ne s'ouvre pas.Pour ajouter une image clipart, vous devez ouvrir la copie du classeur ou du document qui se trouve dans le dossier du projet principal (et non la copie qui se trouve dans le dossier \bin) en dehors de Visual Studio, ajouter l'image clipart, puis enregistrer le classeur ou le document.

Écriture de code

Vous pouvez rencontrer les erreurs suivantes lorsque vous écrivez du code dans les projets Office.

h8c469ey.collapse_all(fr-fr,VS.110).gifCertains événements des objets Office ne sont pas accessibles à l'aide de C#

Dans certains cas, une erreur du compilateur telle que celle-ci peut s'afficher lorsque vous tentez d'accéder à un événement particulier d'une instance d'un type d'assembly PIA Office depuis un projet Visual C# :

« Ambiguïté entre "Microsoft.Office.Interop.Excel._Application.NouveauClasseur" et "Microsoft.Office.Interop.Excel.AppEvents_Event.NouveauClasseur" »

Cette erreur indique que vous tentez d'accéder à un événement portant le même nom qu'une autre propriété ou méthode de l'objet.Pour accéder à l'événement, vous devez convertir l'objet en son interface d'événement.

Les types d'assemblys PIA Office possédant des événements implémentent deux interfaces : une interface principale contenant toutes les propriétés et méthodes, et une interface d'événement contenant les événements exposés par l'objet.Ces interfaces d'événement utilisent la convention d'affectation des noms nomobjetEventsn_Event, par exemple, Microsoft.Office.Interop.Excel.AppEvents_Event et Microsoft.Office.Interop.Word.ApplicationEvents2_Event.Si vous ne pouvez pas accéder à un événement que vous pensez devoir trouver sur un objet, convertissez l'objet en son interface d'événement.

Par exemple, les objets Microsoft.Office.Interop.Excel.Application possèdent un événement NewWorkbook et une propriété NewWorkbook.Pour gérer l'événement NewWorkbook, convertissez Microsoft.Office.Interop.Excel.Application en l'interface AppEvents_Event.L'exemple de code suivant montre comment faire dans un projet de niveau document pour Excel.

private void ThisWorkbook_Startup(object sender, System.EventArgs e)
{
    ((Excel.AppEvents_Event)this.Application).NewWorkbook += 
        new Excel.AppEvents_NewWorkbookEventHandler(ThisWorkbook_NewWorkbook);
}

void ThisWorkbook_NewWorkbook(Excel.Workbook Wb)
{
    // Perform some work here.
}

Pour plus d'informations sur les interfaces d'événement dans les assemblys PIA Office, consultez Overview of Classes and Interfaces in the Office Primary Interop Assemblies.

h8c469ey.collapse_all(fr-fr,VS.110).gifImpossible de référencer des classes d'assembly PIA dans les projets qui ciblent .NET Framework 4 ou .NET Framework 4.5

Dans les projets qui ciblent .NET Framework 4 ou .NET Framework 4.5, le code qui référence une classe qui est définie dans un assembly PIA ne pourra pas par défaut.Les classes des assemblys PIA utilisent la convention d'affectation des noms nomobjetClass, par exemple DocumentClass et WorkbookClass.Par exemple, le code suivant d'un projet de complément Word ne pourra pas être compilé.

Dim document As Word.DocumentClass = Globals.ThisAddIn.Application.ActiveDocument
Word.DocumentClass document = (Word.DocumentClass) Globals.ThisAddIn.Application.ActiveDocument;

Ce code provoque les erreurs de compilation suivantes :

  • Visual Basic : « Une référence à la classe « ClasseDocument » n'est pas autorisée lorsque son assembly est lié en utilisant le mode No-PIA. ».

  • Visual C# : « Impossible d'incorporer le type interop 'Microsoft.Office.Interop.Word.ClasseDocument'.Utilisez l'interface applicable à la place ».

Pour résoudre cette erreur, modifiez le code de façon à référencer l'interface correspondante.Par exemple, au lieu de référencer un objet DocumentClass, référencez une instance de l'interface Document.

Dim document As Word.Document = Globals.ThisAddIn.Application.ActiveDocument
Word.Document document = Globals.ThisAddIn.Application.ActiveDocument;

Les projets qui ciblent .NET Framework 4 ou .NET Framework 4.5, incluent automatiquement tous les types d'interopérabilité des assemblys PIA Office par défaut.Cette erreur de compilation se produit parce que la fonctionnalité des types interop incorporés fonctionne uniquement avec les interfaces, et pas avec les classes.Pour plus d'informations sur les interfaces et les classes des assemblys PIA Office, consultez Vue d'ensemble des classes et interfaces des assemblys PIA (Primary Interop Assembly) Office (page éventuellement en anglais).Pour plus d'informations sur les types interop incorporés des projets Office, consultez Conception et création de solutions Office.

h8c469ey.collapse_all(fr-fr,VS.110).gifLes références aux classes Office ne sont pas reconnues

Certains noms de classes, par exemple Application, se trouvent dans plusieurs espaces de noms tels que Microsoft.Office.Interop.Word et System.Windows.Forms.C'est pour cette raison que l'instruction Imports/using figurant en haut des modèles de projet inclut une constante qualifiante abrégée, par exemple :

Imports Word = Microsoft.Office.Interop.Word
using Word = Microsoft.Office.Interop.Word;

Du fait de cette utilisation de l'instruction Imports/using, vous devez différencier les références aux classes Office à l'aide du qualificateur Word ou Excel. Par exemple :

Dim doc As Word.Document
Word.Document doc;

Des erreurs se produiront si vous utilisez une déclaration non qualifiée. Par exemple :

Dim doc As Document  ' Class is ambiguous
Document doc;  // Class is ambiguous

Même si vous avez importé l'espace de noms Word ou Excel et que vous disposez d'un accès à toutes les classes qu'il contient, vous devez qualifier complètement tous les types avec Word ou Excel pour supprimer l'ambiguïté liée à l'espace de noms.

Génération de projets

Vous pouvez rencontrer les erreurs suivantes lorsque vous générez des projets Office.

h8c469ey.collapse_all(fr-fr,VS.110).gifImpossibilité de générer un projet au niveau du document basé sur un document comportant des autorisations restreintes

Visual Studio ne peut pas générer de projets au niveau du document si le document a des autorisations restreintes.Si votre projet contient un document doté d'autorisations restreintes, la compilation du projet ne s'effectuera pas, et vous recevrez le message suivant dans la fenêtre Liste d'erreurs :

« Impossible d'ajouter la personnalisation. ».

Si vous souhaitez inclure un document comportant des autorisations restreintes, utilisez un document non restreint pendant que vous développez et générez la solution.Ensuite, appliquez les autorisations restreintes au document dans l'emplacement de publication, une fois la solution publiée.

h8c469ey.collapse_all(fr-fr,VS.110).gifDes erreurs du compilateur se produisent après la suppression d'un contrôle NamedRange

Si vous supprimez un contrôle NamedRange d'une feuille de calcul autre que la feuille de calcul active dans le concepteur, il est possible que le code généré automatiquement ne soit pas supprimé de votre projet et que des erreurs du compilateur se produisent.Pour vous assurer que le code est supprimé, vous devez toujours sélectionner la feuille de calcul qui contient le contrôle NamedRange pour qu'elle devienne la feuille de calcul active avant la suppression du contrôle.Si le code généré automatiquement n'est pas supprimé lors de la suppression du contrôle, vous pouvez faire en sorte que le concepteur supprime le code en activant la feuille de calcul et en apportant une modification pour que la feuille de calcul soit marquée comme modifiée.Lorsque vous recréez le projet, le code est supprimé.

Débogage de projets

Vous pouvez rencontrer les erreurs suivantes lorsque vous déboguez des projets Office.

h8c469ey.collapse_all(fr-fr,VS.110).gifL'invite à la désinstallation apparaît lorsque vous publiez et installez une solution sur l'ordinateur de développement

Lorsque vous déboguez une solution Office, l'erreur suivante peut s'afficher.

« La personnalisation ne peut pas être installée car une autre version est actuellement installée et ne peut pas être mise à niveau depuis cet emplacement. ».

Cette erreur indique que vous avez précédemment publié et installé cette solution Office sur votre ordinateur de développement.Pour que ce message cesse d'apparaître, désinstallez la solution depuis la liste des programmes installés sur l'ordinateur avant de déboguer la solution.Vous pouvez également créer un autre compte d'utilisateur sur votre ordinateur de développement pour tester l'installation de la solution publiée.

h8c469ey.collapse_all(fr-fr,VS.110).gifLes projets de niveau document créés à des emplacements réseau UNC ne peuvent pas être exécutés dans Visual Studio

Si vous créez un projet de niveau document pour Excel ou Word à un emplacement réseau UNC, vous devez ajouter cet emplacement à la liste des emplacements approuvés dans Excel ou Word.Sinon, la personnalisation ne sera pas chargée lorsque vous tenterez d'exécuter ou de déboguer le projet dans Visual Studio.Pour plus d'informations sur les emplacements approuvés, consultez Octroi de niveaux de confiance à des documents.

h8c469ey.collapse_all(fr-fr,VS.110).gifLes threads ne sont pas arrêtés correctement après le débogage

Les projets Office dans Visual Studio suivent une convention d'affectation des noms de thread qui permet au débogueur de fermer le programme correctement.Si vous créez des threads dans votre solution, vous devez nommer chaque thread avec le préfixe VSTA_ afin de garantir que ces threads sont gérés correctement lorsque vous arrêtez le débogage.Par exemple, vous pouvez affecter la valeur VSTA_NetworkListener à la propriété Name d'un thread qui attend un événement réseau.

h8c469ey.collapse_all(fr-fr,VS.110).gifImpossible d'exécuter ou de déboguer les solutions Office sur l'ordinateur de développement

Si vous ne parvenez pas à exécuter ou développer le projet Office sur votre ordinateur de développement, le message d'erreur suivant peut s'afficher :

« La personnalisation n'a pas pu être chargée, car le domaine d'application n'a pas pu être créé »

Visual Studio utilise Fusion, le chargeur d'assembly du .NET Framework, pour mettre en cache les assemblys avant de charger les solutions Office.Vérifiez que Visual Studio peut écrire dans le cache de Fusion et réessayez.Pour plus d'informations, consultez Clichés instantanés d'assemblys.

h8c469ey.collapse_all(fr-fr,VS.110).gifUne erreur se produit lors de l'arrêt du débogueur dans un projet de niveau document après l'utilisation de la commande Modifier & Continuer

Si vous utilisez la commande Modifier & Continuer pour apporter des modifications au code dans un projet de niveau document pour Excel ou Word alors que le projet est en mode Arrêt, une boîte de dialogue avec le message d'erreur ci-dessous peut apparaître lorsque vous arrêtez le débogueur.

« Si vous terminez le processus dans son état actuel, cela risque de produire des résultats indésirables notamment la perte de données et l'instabilité du système. ».

Que vous cliquiez sur Oui ou sur Non dans la boîte de dialogue, Visual Studio met fin au processus Excel ou Word et arrête le débogueur.Pour arrêter le débogage du projet sans que cette boîte de dialogue ne s'affiche, quittez Excel ou Word directement au lieu d'arrêter le débogueur dans Visual Studio.

Voir aussi

Tâches

Dépannage de la sécurité des solutions Office

Concepts

Dépannage du déploiement de solutions Office

Autres ressources

Dépannage des solutions Office