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 de nombre décimaux dans TextBox feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de pitizone
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Par défaut Format de nombre décimaux dans TextBox feuille
    Bonsoir à tous,

    Je rencontre un problème qui me parassait simple à résoudre mais je ne parviens pas à trouver la solution et l'explication sur ce forum.

    Je possède une feuille Excel dans laquelle apparait des Textbox. Mon problème est que je ne peux pas entrer des nombres décimaux .

    Je m'explique: Pour entrer "3.3", je tape "3" + "." + "3" et il m'affiche "33".

    Je me suis rendu compte que cela venait de ma ligne de commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub D_tb_Change()
    Worksheets("INPUT_DATA").Cells(31, 5) = (D_tb.Value)
    End Sub
    avec D_tb = Nom de ma textbox


    Comment l'expliquez vous et comment résoudre ce problème?

    Merci d'avance

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,

    Commence par formater ton Textbox à l'initialisation de ton userform:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Initialize()
         Me.D_tb = Format(Me.D_tb, "#,00")
    End Sub
    Tu peux recommencer cette action lors du change, et pour t'assurer qu'il le place bien en tant que nombre tu multiplie par 1 (c'est une astuce comme une autre)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub D_tb_Change()
    Worksheets("INPUT_DATA").Cells(31, 5) = format(D_tb.Value,"#,00")*1
    End Sub
    Vérifie quand même que la virgule soit bien ton séparateur de décimal, sinon adapte par #.00

    A+

  3. #3
    Membre confirmé Avatar de pitizone
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Par défaut
    Merci de ta réponse mais le problème persiste toujours.

    Petite précision qui pourra peut être vous aider: En fait, il y a deux fonctions pour ma Textbox:

    1) Lorsque je rentre une valeur dans ma Textbox, cette valeur est copiée dans ma cellule cells(31,5) par l'intermédiare de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub D_tb_Change()
    Worksheets("INPUT_DATA").Cells(31, 5) = (D_tb.Value)
    End Sub
    2) Lorsque je rentre une valeur dans ma cellule cells(31,5), cette valeur est copiée dans ma Textbox par l'intermédiaire de la propriété Linkedcell = INPUT_DATA!E31

    Or je me suis rendu compte que lorsque je supprime une de ces deux fonctions, le problème disparait.

    Merci d'avance

  4. #4
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Donc ta textbox est dans la feuille et pas un userform, faut que je teste alors...

  5. #5
    Membre confirmé Avatar de pitizone
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Par défaut
    c'est exact, ma Textbox est dans une feuille mais pas dans une userform...

    Quelqu'un a t il une idée pour résoudre ce pb?

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    C'est logique à cause de l'interférence entre LinckedCell et le Change du Textbox
    ci-joint une roue de secours (mon textbox est appelé TextBox1, à adapter)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub TextBox1_Change()
    Dim Pos As Byte
     
    Pos = InStr(TextBox1.Text, ".")
    If Pos > 0 And Val(Mid(TextBox1.Text, Pos + 1)) = 0 Then
        TextBox1.LinkedCell = ""
    Else
        Range("E31").Value = TextBox1.Value
        TextBox1.LinkedCell = "E31"
    End If
    End Sub

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

Discussions similaires

  1. Comment formater des nombres décimaux ?
    Par Niguilouti dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 05/11/2009, 16h20
  2. [IP-2007] Nombres décimaux dans un formulaire connecté à Access
    Par Pluton62 dans le forum InfoPath
    Réponses: 0
    Dernier message: 10/08/2009, 17h06
  3. [E-07] Nombre à gauche dans TextBox
    Par chriscamp dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/03/2009, 21h35
  4. format heure supérieure à 24h dans textbox
    Par titemireille dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/02/2008, 11h41
  5. [VBA-E]Limite nombre caractères dans TextBox ?
    Par srame dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 26/04/2007, 11h21

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