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

Traductions disponibles Traductions disponibles
Numéro d'article: 320369 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F320369
Cet article peut contenir des liens vers des informations en langue anglaise (pas encore traduites).
Agrandir tout | Réduire tout

Sommaire

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.Click
    End 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 = Nothing
    End 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) :
http://support.microsoft.com/ofd

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

Numéro d'article: 320369 - Dernière mise à jour: vendredi 21 juillet 2006 - Version: 5.2
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • 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
Mots-clés : 
kbautomation kbbug kbpending KB320369
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com