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 :

Problème de décimale avec Textbox et excel ? [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2016
    Messages : 5
    Par défaut Problème de décimale avec Textbox et excel ?
    Bonjour à tous,

    Je souhaite créer un Userform classique qui alimente les données d'un tableau. L'une des colonnes de ce tableau se nomme "Taux Horaire". Comme son nom l'indique les valeurs inscrites dans cette colonne doivent être des nombres avec deux décimales maximum.

    L'utilisateurs saisira donc le taux horaire en question à travers une Texbox. Cette TextBox vérifie si les valeurs saisies sont des chiffres, notamment grâce à ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Private Sub tx_horaire1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     
    'Vérifie si le tx horaire est bien un nombre, avec des décimales, et opère aux modification le cas contraire
     Select Case KeyAscii
     
            'seulement des chiffres
            Case 48 To 57
     
            'virgule et point, séparateur décimal
            Case 44, 46
     
                'seulement la virgule
                If KeyAscii = 46 Then KeyAscii = 44
     
                'seulement une fois
                If InStr(tx_horaire1.Text, Chr(KeyAscii)) <> 0 Then KeyAscii = 0
     
                'interdit le séparateur décimal en premier
                If tx_horaire1.Text = "" Then If KeyAscii = 44 Then KeyAscii = 0
     
        Case Else
     
                tx_horaire1.Value = Null
                MsgBox "Seulement numérique ! Deux décimales maximum."
     
            End Select
     
    End Sub

    Cependant, je rencontre un problème dont j'ignore totalement l'origine. Lorsque je saisie un nombre ayant plus de 2 décimales, le nombre récupéré par la cellule n'est pas le même d'une manière bien étrange.


    Exemple :


    • Si je saisi 50,50 dans ma textbox, aucun soucis je me retrouve avec 50,50 dans la cellule.


    • Si saisi 50,505 dans ma textbox, là je me retrouve avec 50 505,00 dans la cellule.


    A priori, l'origine du problème ne se trouve pas dans le code ci-dessous ; puisque j'ai essayé sans et le problème persiste.

    Avez-vous une idée de ce que cela peut être ?

    Bien à vous !

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2016
    Messages : 5
    Par défaut Trouvé !
    J'ai finalement trouvé une solution :

    Plutôt que de récupérer la valeur du textbox et de l'écrire sur la cellule comme ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Range("L3").Value = tx_horaire1.Value
    Eh bien, je multiplie la valeur du texbox par "1" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("L3").Value = tx_horaire1.Value * 1
    A mon avis la valeur est formatée en text par défaut ; il fallait donc manipuler la valeur pour que celle ci devienne un nombre.

    Salut.

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

Discussions similaires

  1. Problème : Filtrer Listbox avec textbox
    Par clickandgo dans le forum VBA Access
    Réponses: 3
    Dernier message: 11/05/2013, 12h29
  2. Problème d'écriture avec textbox
    Par 0ColdZero0 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 19/04/2009, 18h57
  3. Problème de calculer avec textbox et produire un single ou double ?
    Par zizou2007 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 27/01/2007, 19h59
  4. [FLASH MX] Problème de décimale avec euro
    Par yoda_style dans le forum Flash
    Réponses: 7
    Dernier message: 21/05/2005, 05h14
  5. [CR8] Problème de décimales avec Centura
    Par ccquick dans le forum SAP Crystal Reports
    Réponses: 13
    Dernier message: 05/10/2004, 11h46

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