Globalisation et localisation de solutions ExcelGlobalization and localization of Excel solutions

Cette section contient des informations sur les considérations spéciales concernant les solutions Microsoft Office Excel appelées à être exécutées sur des ordinateurs dont les paramètres Windows sont autres qu’anglais.This section contains information about special considerations for Microsoft Office Excel solutions that will be run on computers that have non-English settings for Windows. La plupart des aspects de la globalisation et de la localisation des solutions Microsoft Office sont les mêmes que ceux que vous rencontrez quand vous créez d’autres types de solutions à l’aide de Visual Studio.Most aspects of globalizing and localizing Microsoft Office solutions are the same as you encounter when you create other kinds of solutions using Visual Studio. Pour obtenir des informations générales, consultez Globalize et localisation d’applications.For general information, see Globalize and localizing applications.

Par défaut, les contrôles hôtes dans Microsoft Office Excel fonctionnent correctement dans tous les paramètres régionaux Windows, dans la mesure où l’ensemble des données passées ou manipulées avec du code managé présentent une mise en forme Anglais (États-Unis).By default, host controls in Microsoft Office Excel work correctly in any Windows regional setting, as long as all data that is passed or manipulated using managed code is formatted using English (United States) formatting. Dans les projets qui ciblent le .NET Framework 4.NET Framework 4 ou le .NET Framework 4.5.NET Framework 4.5, ce comportement est contrôlé par le Common Language Runtime (CLR).In projects that target the .NET Framework 4.NET Framework 4 or the .NET Framework 4.5.NET Framework 4.5, this behavior is controlled by the common language runtime (CLR).

S’applique à : les informations contenues dans cette rubrique s’applique au document-projets et ajouter de VSTO de niveau-dans les projets pour Excel.Applies to: The information in this topic applies to document-level projects and VSTO Add-in projects for Excel. Pour plus d’informations, consultez fonctionnalités disponibles par type d’application et de projet Office.For more information, see Features available by Office application and project type.

Format des données dans Excel avec différents paramètres régionauxFormat data in Excel with various regional settings

Vous devez mettre en forme toutes les données ayant une mise en forme sensible aux paramètres régionaux, telles que les dates et les devises, en utilisant le format de données Anglais (États-Unis) (ID de paramètres régionaux 1033) avant de les passer à Microsoft Office Excel ou de lire ces données à partir du code de votre projet Office.You must format all data that has locale-sensitive formatting, such as dates and currency, using the English (United States) data format (locale ID 1033) before you pass it to Microsoft Office Excel or read the data from code in your Office project.

Par défaut, quand vous développez une solution Office dans Visual Studio, le modèle objet Excel attend la mise en forme de données correspondant à l’ID de paramètres régionaux 1033 (c’est ce que l’on appelle également verrouiller le modèle objet sur l’ID de paramètres régionaux 1033).By default, when you develop an Office solution in Visual Studio, the Excel object model expects locale ID 1033 data formatting (this is also called locking the object model to locale ID 1033). Ce comportement correspond au mode de fonctionnement de Visual Basic pour Applications.This behavior matches the way that Visual Basic for Applications works. Cependant, vous pouvez modifier ce comportement dans vos solutions Office.However, you can modify this behavior in your Office solutions.

Comprendre comment le modèle objet Excel attend toujours les paramètres régionaux 1033 d’IDUnderstand how the Excel object model always expects locale ID 1033

Par défaut, les solutions Office que vous créez à l’aide de Visual Studio ne sont pas affectées par les paramètres régionaux de l’utilisateur final et se comportent toujours comme si les paramètres régionaux étaient Anglais (États-Unis).By default, Office solutions that you create by using Visual Studio are not affected by the end user's locale settings, and always behave as though the locale is English (United States). Par exemple, si vous obtenez ou définissez la propriété Value2 dans Excel, les données doivent être mises en forme comme l’attend l’ID de paramètres régionaux 1033.For example, if you get or set the Value2 property in Excel, the data must be formatted the way that locale ID 1033 expects. Si vous utilisez un autre format de données, vous risquez d’obtenir des résultats inattendus.If you use a different data format, you might get unexpected results.

Même si vous utilisez le format Anglais (États-Unis) pour les données passées ou manipulées par du code managé, Excel interprète et affiche les données correctement en fonction des paramètres régionaux de l’utilisateur final.Even though you use the English (United States) format for data that is passed or manipulated by managed code, Excel interprets and displays the data correctly according to the end user's locale setting. Excel peut mettre correctement en forme les données, car le code managé passe l’ID de paramètres régionaux 1033 en même temps que les données, ce qui indique que les données sont au format Anglais (États-Unis) et qu’elles doivent donc être remises en forme en fonction des paramètres régionaux de l’utilisateur.Excel can format the data correctly because the managed code passes locale ID 1033 along with the data, which indicates that the data is in English (United States) format and therefore must be reformatted to match the user's locale setting.

Par exemple, si les utilisateurs finaux ont défini leurs options régionales sur les paramètres régionaux Allemand (Allemagne), ils s’attendent à ce que la date du 29 juin 2005 soit mise en forme de de cette façon : 29.06.2005.For example, if end users have their regional options set to the German (Germany) locale, they expect the date June 29, 2005, to be formatted this way: 29.06.2005. Or, si votre solution passe la date à Excel sous forme de chaîne, vous devez mettre en forme la date selon le format Anglais (États-Unis) : 6/29/2005.However, if your solution passes the date to Excel as a string, you must format the date according to English (United States) format: 6/29/2005. Si la cellule est mise en forme en tant que cellule de date, Excel affiche la date au format Allemand (Allemagne).If the cell is formatted as a Date cell, Excel will display the date in German (Germany) format.

Passer d’autres ID de paramètres régionaux au modèle objet ExcelPass other locale IDs to the Excel object model

Le Common Language Runtime (CLR) passe automatiquement l’ID de paramètres régionaux 1033 à toutes les méthodes et propriétés du modèle objet Excel qui acceptent les données sensibles aux paramètres régionaux.The common language runtime (CLR) automatically passes locale ID 1033 to all methods and properties in the Excel object model that accept locale-sensitive data. Il n’y a aucun moyen de modifier ce comportement automatiquement pour tous les appels à destination du modèle objet.There is no way to change this behavior automatically for all calls into the object model. Cependant, vous pouvez passer un autre ID de paramètres régionaux à une méthode spécifique en utilisant InvokeMember pour appeler la méthode et en passant l’ID de paramètres régionaux au paramètre culture de la méthode.However, you can pass a different locale ID to a specific method by using InvokeMember to call the method and by passing the locale ID to the culture parameter of the method.

Localiser le texte du documentLocalize document text

Il est probable que le document, le modèle ou le classeur de votre projet contient du texte statique, qui doit être localisé séparément à partir de l’assembly et d’autres ressources managées.The document, template, or workbook in your project probably includes static text, which must be localized separately from the assembly and other managed resources. Une façon simple de procéder consiste à copier le document et à traduire le texte en utilisant Microsoft Office Word ou Microsoft Office Excel.A straightforward way to do this is to make a copy of the document and translate the text using Microsoft Office Word or Microsoft Office Excel. Cette procédure fonctionne même si vous n’apportez pas de modifications au code, car vous pouvez lier n’importe quel nombre de documents à un même assembly.This process works even if you make no changes to the code, because any number of documents can be linked to the same assembly.

Vous devez quand même vous assurer que les parties de votre code qui interagissent avec le texte du document continuent de correspondre à la langue du texte et que les signets, plages nommées et autres champs d’affichage s’accommodent de toute nouvelle mise en forme du document Office qui s’avérait nécessaire pour s’adapter à la grammaire et à la longueur de texte différentes.You must still make sure that any part of your code that interacts with the document text continues to match the language of the text, and that bookmarks, named ranges, and other display fields accommodate any reformatting of the Office document that was necessary to adjust for different grammar and text length. Modèles de document qui contiennent peu de texte, vous pouvez souhaiter stocker le texte dans les fichiers de ressources, puis à charger le texte lors de l’exécution.For document templates that contain relatively little text, you might want to consider storing the text in resource files, and then loading the text at runtime.

Direction du texteText direction

Dans Excel, vous pouvez définir une propriété de la feuille de calcul pour afficher le texte de droite à gauche.In Excel, you can set a property of the worksheet to render text right to left. Contrôles hôtes, ou n’importe quel contrôle qui a un RightToLeft propriété, qui est automatiquement placée sur le concepteur correspondent à ces paramètres lors de l’exécution.Host controls, or any control that has a RightToLeft property, that is placed on the designer automatically match these settings at runtime. Word ne disposant pas de paramètre de document pour le texte bidirectionnel (seul l’alignement du texte est modifié), vous ne pouvez pas mapper les contrôles à ce paramètre.Word does not have a document setting for bi-directional text (you just change your alignment of text), so the controls cannot be mapped to this setting. Au lieu de cela, vous devez définir l’alignement du texte pour chaque contrôle.Instead, you must set the text alignment for each control. Il est possible d’écrire du code qui parcoure tous les contrôles et les force à afficher le texte de droite à gauche.It is possible to write code to walk through all of the controls and force them to render text from right to left.

Modifier la cultureChange culture

Votre code de personnalisation au niveau du document partage généralement le thread d’interface utilisateur principal d’Excel. De ce fait, toute modification que vous apportez à la culture du thread affecte tout ce qui s’exécute sur celui-ci ; la modification ne se limite pas à votre personnalisation.Your document-level customization code typically shares the main UI thread of Excel, so any changes you make to the thread culture affects everything else that is running on that thread; the change is not restricted to your customization.

Les contrôles Windows Forms sont initialisés avant que l’application hôte démarre les compléments VSTO de niveau application.Windows Forms controls are initialized before application-level VSTO Add-ins are started by the host application. En pareil cas, la culture doit être modifiée avant de définir les contrôles d’interface utilisateur.In these situations, the culture should be changed before setting the UI controls.

Installer les modules linguistiquesInstall the language packs

Si vous n’avez pas les paramètres Anglais pour Windows, vous pouvez installer les modules linguistiques Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime pour voir les messages de Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime dans la même langue que celle de Windows.If you have non-English settings for Windows, you can install the Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime Language Packs to see Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime messages in the same language as Windows. Si des utilisateurs finals n’exécutent pas vos solutions avec des paramètres Anglais pour Windows, ils doivent disposer du module linguistique approprié pour voir les messages du runtime dans la même langue que celle de Windows.If any end users run your solutions with non-English settings for Windows, they must have the correct language pack to see runtime messages in the same language as Windows. Le Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime linguistiques sont disponibles à partir de la centre de téléchargement Microsoft.The Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime Language Packs are available from the Microsoft download center.

Par ailleurs, les modules linguistiques .NET Framework sont nécessaires pour les messages ClickOnce.In addition, the redistributable .NET Framework Language Packs are necessary for ClickOnce messages. Les modules linguistiques .NET Framework sont disponibles à partir de la centre de téléchargement Microsoft.The .NET Framework Language Packs are available from the Microsoft download center.

Paramètres régionaux et des appels COM ExcelRegional settings and Excel COM Calls

Chaque fois qu’un client managé appelle une méthode sur un objet COM et qu’il doit passer des informations spécifiques à la culture, il utilise la propriété CurrentCulture (paramètres régionaux) qui correspond aux paramètres régionaux du thread actif.Whenever a managed client calls a method on a COM object and it needs to pass in culture-specific information, it does so using the CurrentCulture (locale) that matches the current thread locale. Par défaut, les paramètres régionaux du thread actif sont hérités des paramètres régionaux de l’utilisateur.The current thread locale is inherited from the user's regional settings by default. Cependant, quand vous effectuez un appel dans le modèle objet Excel à partir d’une solution Excel créée à l’aide des outils de développement Office dans Visual Studio, le format de données Anglais (États-Unis) (ID de paramètres régionaux 1033) est passé automatiquement au modèle objet Excel.However, when you make a call into the Excel object model from an Excel solution created by using the Office development tools in Visual Studio, the English (United States) data format (locale ID 1033) is passed to the Excel object model automatically. Vous devez mettre en forme toutes les données ayant une mise en forme sensible aux paramètres régionaux, telles que les dates et les devises, en utilisant le format de données Anglais (États-Unis) avant de les passer à Microsoft Office Excel ou de lire ces données à partir du code de votre projet.You must format all data that has locale-sensitive formatting, such as dates and currency, using the English (United States) data format before you pass it to Microsoft Office Excel or read the data from your project code.

Considérations sur le stockage de donnéesConsiderations for storing data

Pour assurer une interprétation et une lecture correctes de vos données, vous devez aussi savoir que des problèmes peuvent survenir quand une application stocke des données (par exemple, les formules dans les feuilles de calcul Excel) dans des littéraux de chaîne (codés en dur) et non dans des objets fortement typés.To ensure that your data is correctly interpreted and displayed, you should also consider that problems can occur when an application is storing data, such as Excel worksheet formulas, in string literals (hard-coded) instead of in strongly-typed objects. Vous devez utiliser des données mises en forme dans un style indépendant de la culture ou au format Anglais (États-Unis) (valeur LCID 1033).You should use data that is formatted assuming a culture-invariant or English (United States) (the LCID value 1033) style.

Applications qui utilisent des littéraux de chaîneApplications that use string literals

Parmi les valeurs qui peuvent être codées en dur figurent les littéraux de date écrits au format Anglais (États-Unis) et les formules de feuille de calcul Excel qui contiennent des noms de fonctions localisés.Possible values that might be hard-coded include date literals that are written in English (United States) format, and Excel worksheet formulas that contain localized function names. Une chaîne codée en dur contenant un nombre tel que « 1,000 » est une autre possibilité ; dans certaines cultures, ce nombre est interprété comme un millier, mais dans d’autres, il représente « un virgule zéro ».Another possibility might be a hard-coded string that contains a number such as "1,000"; in some cultures, this is interpreted as one thousand, but in other cultures, it represents one point zero. Les calculs et les comparaisons effectués sur un format incorrect peuvent produire des données incorrectes.Calculations and comparisons performed on the wrong format might result in incorrect data.

Excel interprète les chaînes conformément au LCID qui est passé avec celles-ci.Excel interprets any strings in accordance with the LCID that is passed with the string. Cela peut poser un problème si le format de la chaîne ne correspond pas au LCID passé.This can be a problem if the format of the string does not correspond to the LCID that is passed. Les solutions Excel créées à l’aide des outils de développement Office dans Visual Studio utilisent le LCID 1033 (en-US) au moment de passer toutes les données.Excel solutions created by using the Office development tools in Visual Studio use the LCID 1033 (en-US) when passing all data. Excel affiche les données en fonction des paramètres régionaux et de la langue de l’interface utilisateur Excel.Excel displays the data according to the regional settings and Excel user interface language. Visual Basic pour Applications (VBA) fonctionne aussi de cette façon ; les chaînes sont mises en forme au format en-US et VBA passe presque toujours 0 (indépendant de la langue) en guise de LCID.Visual Basic for Applications (VBA) also works this way; strings are formatted as en-US and VBA almost always passes 0 (language neutral) as the LCID. Par exemple, le code VBA suivant affiche une valeur correctement mise en forme pour le 12 mai 2004, conformément aux paramètres régionaux de l’utilisateur actuel :For example, the following VBA code displays a correctly formatted value for May 12, 2004, in accordance with the current user locale setting:

'VBA  
Application.ActiveCell.Value2 = "05/12/04"  

Ce même code, quand il est utilisé dans une solution créée à l’aide des outils de développement Office dans Visual Studio et passé à Excel via COM Interop, produit les mêmes résultats quand la date est mise en forme dans le style en-US.The same code, when used in a solution created by using the Office development tools in Visual Studio and passed to Excel through COM interop, produces the same results when the date is formatted in en-US style.

Exemple :For example:

Me.Range("A1").Value2 = "05/12/04"
this.Range["A1"].Value2 = "05/12/04";

Vous avez tout intérêt à utiliser des données fortement typées à la place de littéraux de chaîne chaque fois que vous en avez la possibilité.You should work with strongly-typed data instead of string literals whenever possible. Par exemple, au lieu de stocker une date dans un littéral de chaîne, stockez-la sous forme de Double, puis convertissez-le en objet DateTime pour la manipulation.For example, instead of storing a date in a string literal, store it as a Double, then convert it to a DateTime object for manipulation.

L’exemple de code suivant prend une date entrée par un utilisateur dans la cellule A5, la stocke sous forme de Double, puis le convertit en objet DateTime pour l’afficher dans la cellule A7.The following code example takes a date that a user enters into cell A5, stores it as a Double, then converts it to a DateTime object for display in cell A7. La cellule A7 doit être mise en forme pour afficher une date.Cell A7 must be formatted to display a date.

Private Sub ConvertDate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles ConvertDate.Click

    Try
        Dim dbl As Double = Me.Range("A5").Value2
        Dim dt As System.DateTime = System.DateTime.FromOADate(dbl)
        Me.Range("A7").Value2 = dt

    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub
private void ConvertDate_Click(object sender, EventArgs e)
{
    try
    {
        double dbl = (double)(this.Range["A5"].Value2);
        System.DateTime dt = System.DateTime.FromOADate(dbl);
        this.Range["A7"].Value2 = dt;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

Fonctions de feuille de calcul ExcelExcel worksheet functions

Les noms de fonctions de feuille de calcul sont traduits en interne pour la plupart des versions linguistiques d’Excel.Worksheet function names are translated internally for most language versions of Excel. Toutefois, en raison de potentielles de langage et les problèmes d’interopérabilité COM, il est recommandé que vous utilisez des noms de fonction uniquement en anglais dans votre code.However, due to potential language and COM interop issues it is recommended that you use only English function names in your code.

Applications qui utilisent des données externesApplications that use external data

Tout code ouvrant ou utilisant des données externes, telles que des fichiers contenant des valeurs séparées par des virgules (fichiers CSV) exportés à partir d’un système hérité, peut aussi être affecté si ces fichiers sont exportés en utilisant un format en plus de « en-US ».Any code that opens or otherwise uses external data, such as files that include comma-separated values (CSV files) exported from a legacy system, might also be affected if such files are exported using any format besides en-US. Il se peut que l’accès à la base de données ne soit pas affecté, car toutes les valeurs sont censées être au format binaire, à moins que la base de données stocke les dates sous forme de chaînes ou exécute des opérations qui n’utilisent pas le format binaire.Database access might not be affected because all values should be in binary format, unless the database stores dates as strings or performs operations that do not use binary format. De même, si vous créez des requêtes SQL en utilisant des données à partir d’Excel, vous devrez peut-être vérifier qu’elles sont au format en-US, selon la fonction que vous utilisez.Also, if you construct SQL queries using data from Excel, you might need to ensure they are in en-US format, depending on the function you use.

Voir aussiSee also

Comment : cibler l’interface utilisateur multilingue d’Office How to: Target the Office multilingual user interface
Concevoir et créer des solutions Office Design and create Office solutions
Paramètres optionnels dans les solutions OfficeOptional parameters in Office solutions