IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Format d'un textbox ou label [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Par défaut Format d'un textbox ou label
    Bonjour,
    A partir d'un tableau dans un worksheet, un userform récupère les données et les affiche dans un textbox ou un label
    Cependant, je ne parviens pas à forcer le format du textbox : par exemple, dans ma cellule d'origine, formatée en nombre avec deux décimales, on visualise 0,05, la vrai valeur étant 0,045789...Je veux afficher 0,05 dans mon textbox. Cependant, je n'arrive à afficher 5E-2, il convertit automatiquement en écriture scientifique...j'ai beau chercher dans les propriétés du txtbox, rien sur le format
    Comment faire ?
    Merci

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    plusieurs solutions, dont celle-ci, amusante (exemple) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Text1.Text = Format(CCur("0,045789"), "0.##")

  3. #3
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Par défaut
    Merci, mais cela ne fonctionne malheureusement pas dans mon programme. Il s'agit d'un userform que je crée dynamiquement (parce que beaucoup de label/textbox à créer !) et quand je lui applique ce code, il me renvoie dans le textbox "1." dans tous les cas
    en plus, comme je crée ce userform dynamiquement, et que je peux aussi bien avoir comme valeur 1.25 que 0.05, et que je souhaite la forme décimale avec deux chiffres après la virgule, je lui ai appliqué format (CCur(valeur),"#,##"), ce qui n'a pas non plus fonctionné...
    que puis-je faire ?

  4. #4
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour ankoubzh l' ami ucfoutu le forum peut être comme cela!!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox1 = Format(TextBox1, "## #0.00 ")
    pour avoir la virgule a la place du point

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox1 = Replace(Format((TextBox1), "## #0.00 "), ".", ",")

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    le format "0.##" convient...
    la preuve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Text1.Text = Format(CCur("1,2458"), "0.##")
    enverra 1,25
    et même la "chaîne scientifique" sera acceptée et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Text1.Text = Format(CCur("5E-2"), "0.##")
    enverra bien 0.05
    encore faut-il utiliser une chaine de caractères et non une valeur numérique, bien évidemment
    si ta variable valeur est en fait un numérique et pas une chaîne de caractères, transforme-là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Text1.Text = Format(CCur(Cstr(valeur)), "0.##")
    maintenant : tes "5" (dans les décimales) sont-ils fortuits ou souhaites-tu que ce soit systématiquement arrondi au 5 centième le plus proche et non au centième le plus proche ? (si oui, c'est encore autre chose)

  6. #6
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Par défaut
    merci à vous deux pour vos réponses !
    le 5 centième est bien fortuit, et je suis quasiment sûr (mon code est au boulot...) de lui mettre en entrée une chaîne de caractère.
    J'avoue ne pas avoir essayé en dehors du code qui crée dynamiquement mon userform (le problème ne peut-il pas venir de là ?), peut-être ai-je mis #,## au lieu de #.##
    je vérifirai dès demain !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Format de durée dans TextBox ou Label
    Par gangsterus dans le forum VB.NET
    Réponses: 6
    Dernier message: 13/12/2007, 13h55
  2. [C#] Obtenir un format dans un textbox
    Par kenzo080 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 16/04/2007, 16h04
  3. [C#] [2.0] Hello World, textbox, button, label
    Par shako95 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 05/12/2006, 15h33
  4. [VB6] Composer un LONG avec TextBox et Label
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 18/05/2006, 14h06
  5. [C#] Je veux formater un control textBox
    Par justice007 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 28/05/2004, 11h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo