Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

BOGUE : Message d'erreur "Ancien format ou bibliothèque de type non valide" lors de l'automatisation d'Excel 2002

Ancien nº de publication de cet article : F320369
Cet article peut contenir des liens vers des informations en langue anglaise (pas encore traduites).
Symptômes
Si vous automatisez Microsoft Excel 2002 avec Microsoft Visual Basic .NET, Microsoft Visual C# .NET ou Microsoft Visual C++, le message d'erreur suivant peut s'afficher lors de l'appel de certaines méthodes :
Erreur : 0x80028018 (-2147647512)
Description : Ancien format ou bibliothèque de type non valide
Cause
Cette erreur se produit lors de l'appel d'une méthode Excel lorsque les conditions suivantes sont remplies :
  • Vous utilisez une liaison anticipée pour appeler la méthode. - et -

  • La méthode requiert un LCID (identificateur de paramètres régionaux). - et -

  • Vous exécutez une version anglaise d'Excel 2002, mais les paramètres régionaux de l'ordinateur sont configurés pour une langue autre que l'anglais.
Si l'ordinateur client exécute la version anglaise de Microsoft Excel 2002 et que les paramètres régionaux de l'utilisateur actuel sont configurés pour une langue autre que l'anglais, Excel tentera de rechercher le module de prise en charge linguistique de la langue configurée. L'erreur se produit si le module de prise en charge linguistique est introuvable.
Résolution
Pour contourner ce problème, vous pouvez :
  • Définir les informations culturelles du thread actif sur l'anglais avant d'instancier Excel. Par exemple :
    System.Threading.Thread.CurrentThread.CurrentCulture =    System.Globalization.CultureInfo.CreateSpecificCulture("en-US")					
    - ou -

  • Utiliser une liaison tardive au lieu d'une liaison anticipée. - ou -

  • Installer le pack multilingue de Microsoft Office XP. Pour plus d'informations sur ce produit, reportez-vous au site Web de Microsoft suivant :

    Disponibilité d'Office XP avec le pack multilingue
    http://www.microsoft.com/office/evaluation/indepth/multilingual/muipackavailable.asp
Statut
Microsoft a confirmé l'existence de ce bogue dans les produits Microsoft répertoriés dans la section "Liste des produits concernés par cet article".
Plus d'informations

Procédure pour reproduire le problème

  1. Vérifiez que les paramètres régionaux de l'ordinateur sont définis sur une langue autre que l'anglais :
    1. Dans le Panneau de configuration Windows, double-cliquez sur Options régionales.
    2. Sous l'onglet Général, sélectionnez un emplacement, puis cliquez sur OK.
  2. Démarrez Microsoft Visual Studio .NET.
  3. Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet. Dans la boîte de dialogue Nouveau Projet, sous Types de projets, cliquez sur Projets Visual Basic. Sous Modèles, cliquez sur Application Windows, puis sur OK. Par défaut, Form1 est créé.
  4. Ajoutez une référence à la Bibliothèque d'objets Microsoft Excel 10.0 :
    1. Dans le menu Projet, cliquez sur Ajouter une référence.
    2. Dans la boîte de dialogue Ajouter une Référence, cliquez sur l'onglet COM, sélectionnez Bibliothèque d'objets Microsoft Excel 10.0, puis cliquez sur le bouton Sélectionner.
    3. Pour accepter votre sélection, cliquez sur OK.
  5. Dans le menu Affichage, cliquez sur Boîte à outils, puis ajoutez un bouton à Form1.
  6. Pour afficher la fenêtre de code du formulaire, double-cliquez sur Button1.
  7. Dans la fenêtre de code, remplacez le code suivant
    Private Sub Button1_Click(ByVal sender As System.Object, _                          ByVal e As System.EventArgs) _                          Handles Button1.ClickEnd Sub					
    par :
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click    Dim oApp As Excel.Application    Dim oDoc As Excel.Workbook    oApp = New Excel.Application()    oApp.Visible = True    oDoc = oApp.Workbooks.Add    oDoc.Close()    oApp.Quit()    oDoc = Nothing    oApp = NothingEnd Sub					
  8. Ajoutez le code suivant au début de Form1.vb :
    Imports Microsoft.Office.Interop					
  9. Appuyez sur F5 pour générer et exécuter le programme.
  10. Pour générer l'erreur, cliquez sur Button1. L'erreur se produit sur la ligne
    oDoc = oApp.Workbooks.Add					
Références
Pour plus d'informations sur Office Automation, reportez-vous au site Web de développement de Microsoft Office suivant (en anglais) :
Reportez-vous également aux articles suivants de la Base de connaissances Microsoft :
307029 COMMENT FAIRE : Transférer des données XML vers Microsoft Excel 2002 à l'aide de Visual C# .NET
307021 COMMENT FAIRE : Transférer des données XML vers Microsoft Excel 2002 à l'aide de Visual Basic .NET
301982 COMMENT FAIRE : Automatiser Microsoft Excel à partir de Visual Basic .NET
302084 PROCEDURE : Automatiser Microsoft Excel à partir de Visual C# .NET
Propriétés

ID d'article : 320369 - Dernière mise à jour : 07/21/2006 11:01:47 - Révision : 5.2

Microsoft Visual Basic .NET 2002 Initiation, Microsoft Visual Basic .NET 2003 Initiation, Microsoft Visual C# .NET 2002 Initiation, Microsoft Visual C# .NET 2003 Initiation, Microsoft Visual C++ 6.1, Microsoft Excel 2002, Microsoft Visual J# .NET 2003 Initiation

  • kbautomation kbbug kbpending KB320369
Commentaires