excel 2010- combobox - affichage d'un point à la place d'une virgule

Anonyme
2014-01-31T12:49:40+00:00

Bonjour,

voilà problème:

j'utilise un combobox pour afficher des données numérique du type : 0,025-  0,00056 - 152,55 - 40,25 etc

ces données sont dans des cases .

lorsque je récupère une  donnée numérique via le combobox et que je l'affiche dans une case , la virgule s'est transformée en un point

dans le combobox et dans la case que j'ai choisie liée au combobox.

Si je fais un calcul avec la donnée ainsi affichée, j'ai alors le message #value! qui s'affiche.

si je travaille avec une liste déroulante, aucun problème, la virgule ne se modifie pas en un point.

question: pouvez-vous m'indiquer la procédure pour résoudre cette anomalie.

merci

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

25 réponses

  1. DanielCo 107.1K Points de réputation
    2014-02-01T11:53:30+00:00

    Bonjour,

    Pour obtenir la virgule dans le combobox aussi utilise le code :

    Private Sub ComboBox1_Change()

    If IsNumeric(Me.ComboBox1) Then

    Application.EnableEvents = False

    Me.ComboBox1.Value = Application.Substitute(Me.ComboBox1.Value, ".", ",")

    Range("C5").Value = CDbl(Application.Substitute(Me.ComboBox1.Value, ",", "."))

    Application.EnableEvents = True

    End If

    End Sub

    Cordialement.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2014-02-01T10:05:20+00:00

    Bonjour,

    L'exemple que vous m'avez envoyé est exactement ce que  je fais.

    le problème que j'ai est donc aussi présent dans votre fichier, à savoir:

    que les nombres tels que : 1)-> 0,0025 affiché dans la liste devient 0.0025 dans le combobox et 25 dans la case excel liée au combobox .

    2)-> 1,236 devient 1.236 dans le combobox et 1236 dans la case excel liée au combobox.

    conséquence, on peut effectuer des calculs

    Ce qu'il faudrait c'est que par exemple :

    liste excel :0,0025 (virgule)

    dans la combobox:0.0025 (avec point ou avec virgule)

    dans la case excel liée au combobox:0,0025 (virgule)

    si cela n'est pas possible alors j'utiliserai une liste déroulante pour effectuer la sélection de données de ce type.

    en tout cas merci pour les infos fournies.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2014-01-31T19:49:14+00:00

    Voici un fichier exemple illustrant mon propos!

    http://cjoint.com/?DAFuWQoiALQ

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2014-01-31T19:04:28+00:00

    Bonsoir,

    J'ai essayé de vous faire parvenir mon fichier via e-mail mais cela ne fonctionne pas. Votre système refuse peut-être les fichiers annexés ?

    La solution que  vous m’avez proposée ne fonctionne pas.

    Exemple pour le type de nombre suivant: =>  ex : 0,000256

    L'affichage en utilisant les lignes de code que vous m'avez fait parvenir donne: 256,0000.

    Il y a transformation du nombre plus petit que zéro en nombre plus grand que zéro.

    Il faudrait seulement recopier le nombre comme tel mais en remplaçant le point par une virgule.


    Private Sub ComboBox1_Change()

    If IsNumeric(Me.ComboBox1) Then

        Range("D1").Value = CDbl(Me.ComboBox1.Value)

    End If

    End Sub


    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. Anonyme
    2014-01-31T13:34:52+00:00

    Bonjour,

    Comme tu ne l'as pas spécifié, je suppose que tu fais référence à un combobox émanant de la boîte d'outils "Formulaire" placé dans la feuille.

    Pour faire ce que tu désires, tu dois utiliser un combobox issu de la boîte d'outils "Contrôle".

    En mode création, tu affiches les propriétés du contrôle et tu définis la propriété "ListFillRange" avec l'adresse de la plage dont tu veux afficher les données : Exemple : Feuil1!A1:A10  . Et pour afficher la sélection de l'usager, utilise la propriété "Linkedcell" , exemple : Feuil1!G1

    Ceci étant dit, le combobox contient du texte même si les données qu'ils affichent sont numériques. Par conséquent dans la cellule liée par le contrôle, le contenu de la cellule s'affichera à gauche de la cellule comme si c'était du texte. Tu pourrais faire des calculs avec le contenu de cette cellule, mais pour avoir un affichage à droite, tu dois double-cliquer dans la cellule.

    Cependant, les contrôles qui émanent de la barre d'outils "Contrôle", on peut écrire un bout de code qui fait le travail tout seul et sans que l'on doive définir la propriété "LinkedCell".

    Pour ce faire :

    Tu insères un contrôle "Combobox" de la barre d'outils "contrôle dans la feuille de calcul

    Tu es automatiquement en mode création...

    Tu définis la propriété "ListFillRange" comme déjà mentionnée.

    Tu double-cliques sur le contrôle et tu vas te retrouver dans la fenêtre de l'éditeur de code (macros).

    Dans la page blanche, copie ce code :

    Tu adaptes le nom du contrôle selon celui de ton application.

    Tu adaptes aussi l'adresse de la cellule où le résultat doit apparaître (H1)

    '------------------------------

    Private Sub ComboBox1_Change()

    If IsNumeric(Me.ComboBox1) Then

    Range("H1").Value = CDbl(Me.ComboBox1.Value)

    End If

    End Sub

    '------------------------------

    Si tu as besoin d'information supplémentaire, fais signe!

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire