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 du texte dans une TextBox


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 80
    Points : 46
    Points
    46
    Par défaut Format du texte dans une TextBox
    Bonjour,

    voilà, j'ai un outil de saisie grâce auquel on fait entrer des montants dans une feuille excel. Le problème est que dès que l'on met des montant de plusieurs chiffres ça devient illisible. Je veux alors mettre un format du texte dans la textbox pour qu'elle affiche 1 000 000 000 au lieu de 1000000000 par exemple. Peut quelqu'un m'indiquer comment faire ceci car je ne suis pas très familiarisé avec les GUI en VBA.

    Merci d'avance et bonne journée

  2. #2
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Clique droit sur ta cellule (ou sur la colonne que tu as selectionné) format de cellule, choisi nombre et coche le séparateur des milliers. Pas besoin de VBA. Si tu veux connaitre le code qui le fait lance l'enregistreur

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 80
    Points : 46
    Points
    46
    Par défaut
    c'est gentil de ta part. En fait je parle de la même chose, mais affectée à une TextBox (dans une userform) et non pas à une cellule (dans une feuille de travail)

  4. #4
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Désolé je suis allé un peu vite

    J'ai fait ca
    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
    Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    Dim reste As Byte, l As Integer, c As String
    If Len(TextBox1) > 3 Then
        c = TextBox1 'InStr(TextBox1, " ", "")
        TextBox1 = ""
        l = Len(c)
        reste = l - (l \ 3) * 3
        If reste <> 0 Then
            TextBox1 = Left(c, reste)
            For i = reste To l Step 3
            TextBox1 = TextBox1 & " " & Mid(c, i + 1, 3)
            Next i
        Else
            For i = 1 To l Step 3
            TextBox1 = TextBox1 & " " & Mid(c, i, 3)
            Next i
        End If
    End If
    End Sub
    Par contre ca rajoute des espace dans tes valeur il faut les enlever quand tu utilise la valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    valeur = CLng(Replace(textbox1, " ", ""))

  5. #5
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Points : 160
    Points
    160
    Par défaut plus simple
    Il suffit d'utliser la fonction Format tres puissant !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    
    Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    If IsNumeric(TextBox1) Then TextBox1.Text=Format(TextBox1.Text, "##,##0.00")
    End Sub
    Bon il faut bien sur adapter la chaine de formatage selon le besoin ""#,##0.00"

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 262
    Points : 343
    Points
    343
    Par défaut
    Bonjour,

    Affiche en temps réel avec le séparateur système de milliers

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub TextBox1_Change()
    Dim X As String
    If Len(Me.TextBox1) < 4 Then Exit Sub
    X = Application.Rept("### ", Application.RoundUp(Len(Me.TextBox1) / 3, 0))
    X = Left(X, Len(X) - 1)
    Me.TextBox1 = Format(Me.TextBox1, X)
    End Sub

  7. #7
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Pour compléter la maitrise des formats voici un petit tuto convernant ce sujet :

    Formats personnalisés sous Excel

    Bonne continuation

Discussions similaires

  1. Faire disparaitre un texte dans une textbox
    Par toinou62 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/10/2007, 11h40
  2. Autoriser la saisie d'un text dans une textbox
    Par Lutine dans le forum Windows Forms
    Réponses: 1
    Dernier message: 16/07/2007, 10h41
  3. Sauvegarder et charger du texte dans une Textbox
    Par kazylax dans le forum VB.NET
    Réponses: 2
    Dernier message: 08/07/2007, 12h39
  4. Colorer texte dans une textbox
    Par metatron dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 27/09/2006, 18h31
  5. Formater un texte dans une expression
    Par stéphane_ais2 dans le forum Access
    Réponses: 5
    Dernier message: 18/10/2005, 13h52

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