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

VB 6 et antérieur Discussion :

Textbox et format


Sujet :

VB 6 et antérieur

  1. #1
    Membre éclairé Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Par défaut Textbox et format
    Bonjour,
    je voudrais savoir comment faire pour que les chiffres saisies dans un textbox se rangent par centaine exemple 1000000 donne 1 000 000
    j'ai essayé avec Format() mais je ne connais pas bien la syntaxe.
    Merci d'avance

  2. #2
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    L'aide de VB est là pourtant.... mais bon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Text1 = Format(100000, "0 000 000")

  3. #3
    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
    Ben...

    La syntaxe et les exemples que l'on trouve dans l'aide en ligne (sur ta machine) me paraissent clairs !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Format("1000000", "# ### ###")
    Bonjour ohmonbato,

    ta syntaxe va également ajouter des zéros devant si nombre plus court ...

  4. #4
    Membre éclairé Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Par défaut
    Bonjour,
    pour la syntaxe c'est correct, mais lorsque je l'applique à un textbox les chiffres s'ecrivent de la droite vers la gauche et le curseur lui va à droite. Comment remedier à ce probleme.
    Merci déjà.

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    comment l'applique-tu ...?

  6. #6
    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
    oui..
    et 2 autres questions :
    1) dans quel évènement as-tu placé de code ,
    2) quelle est la propriété Alignment de ta textbox ?

  7. #7
    Membre éclairé Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Par défaut
    Bonjour,
    je l'utilise dans l'evenement change() comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Text1 change()
    Text1 = Format(text1.text, "# ### ###")
    end sub

  8. #8
    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
    Je n'aime pas beaucoup que l'on utilise l'évènement Change ainsi ...

    Mais puisque tu y tiens (et sous TA responsabilité... moi, je m'en lave les mains ...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Text1_Change()
      Text1.text = Format(Text1.Text, "# ### ###")
      Text1.SelStart = Len(Text1.Text)
    End Sub

  9. #9
    Membre éclairé Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Par défaut
    Que m'aurais-tu proposé ?

  10. #10
    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
    Citation Envoyé par bruce207 Voir le message
    Que m'aurais-tu proposé ?
    Je ne peux te répondre sur ce point sans connaitre ton "affaire", ses tenants et ses aboutissants...
    Expose-les et je te proposerai alors une méthode en connaissance de cause.

    Ce sera vraisemblablement tout sauf l'évènement Change (du moins jamais ainsi ).

    Chaque problème a une solution adéquate. Encore faut-il connaître le problème et son contexte.

  11. #11
    Membre éclairé Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Par défaut
    En fait je realise une aplication de gestion d'une cooperative et on a besoin d'entrée des valeurs monetaires dans les champs (textbox) concernés, donc pour permettrent aux utilisateurs de ne pas se tromper dans les unites des chiffres j'ai pensé à les separés par centaines dans les textbox concernés. Donc voila le probleme.

  12. #12
    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
    Bon....

    Tu ne parles jusqu'à présent que d'entiers...

    Alors voilà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Text1_KeyPress(KeyAscii As Integer)
     Dim filtre As String, toto As String, I as integer
     If KeyAscii = 8 Then Exit Sub
      If Not IsNumeric(Chr(KeyAscii)) Then KeyAscii = 0: Exit Sub
      toto = Chr(KeyAscii)
      KeyAscii = 0
      filtre = "# "
      For i = 1 To 6
        filtre = filtre & String(3, "#") & " "
      Next
      Text1.Text = Trim(Format(Text1.Text & toto, filtre))
      Text1.SelStart = Len(Text1.Text)
    End Sub
    Edit :

    Que tu peux écrire plus simplement ainsi, donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Text1_KeyPress(KeyAscii As Integer)
     Dim filtre As String, toto As String
     If KeyAscii = 8 Then Exit Sub
     toto = Chr(KeyAscii)
     KeyAscii = 0
     If Not IsNumeric(toto) Then Exit Sub
     filtre = "# "
     For i = 1 To 6
       filtre = filtre & String(3, "#") & " "
     Next
     Text1.Text = Trim(Format(Text1.Text & toto, filtre))
     Text1.SelStart = Len(Text1.Text)
    End Sub
    Et si tu traitais maintenant (maintenant que tu commences à voir le principe) également les décimales, hein ??

    Je te laisse essayer seul d'abord...
    Je n'interviendrai que si tu "baisses les bras", mais après m'avoir montré ce que tu auras tenté.
    Bonne étude.

  13. #13
    Membre éclairé Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Par défaut
    Bonjour,
    j'ai essayer le code il separe bien les milliers mais j'ai l'erreur suivante lorsque je veux remplir ma table qui porte sur le champ :
    Erreur d'exécution '-2147217900(80040e14)':
    Erreur de syntaxe (opérateur absent) dans l'expression '5 000 000'.
    pourtant comme c'est numérique j'ai codé dans la requete sql insert into:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ..." & text1.text & "...
    pourquoi cette erreur et comment y remedier ?

  14. #14
    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,

    Pas besoin de Replace pour faire "sauter" les espaces..

    La fonction Val s'en charge seule.

    Val("4 000 000") ==>> 4000000

  15. #15
    Membre éclairé Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Par défaut
    J'ai essayé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...Text1.Text = Trim(Format(Val(Text1.Text & toto), filtre))...
    mais j'ai toujours la meme erreur. Comment dois je proceder ?

  16. #16
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    J'ai testé avec l'événement Validate sans problèmes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Text1_Validate(Cancel As Boolean)
        If IsNumeric(Text1.Text) Then
            Text1.Text = Format(Text1.Text, "### ##0.00# ###")
          Else
            Beep
            Text1.SelStart = 0
            Text1.SelLength = Len(Text1.Text)
            Cancel = True
        End If
    End Sub

  17. #17
    Membre éclairé Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Par défaut
    Bonjour,
    Eh bien je ne sais pas mais chez moi ça ne marche pas du tout. Mais je voudrais savoir comment faire pour que lorsque j'utilise Format() je puisse aussi avoir des décimales, parce que par exemple si je tape :
    Text1.Text = Format(Text1.Text, "### ### ###"), il n'est pas possible de saisir un nombre décimale ou si je tape Text1.Text = Format(Text1.Text, "### ###.###"), là si je tape un chiffre il va directement à la virgule exemple 1236----> 1,236 Comment faire donc pour remedier à ça

  18. #18
    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
    ucfoutu avait écrit :
    Citation Envoyé par ucfoutu Voir le message
    Bon....

    Tu ne parles jusqu'à présent que d'entiers...

    Alors voilà :

    Et si tu traitais maintenant (maintenant que tu commences à voir le principe) également les décimales, hein ??

    Je te laisse essayer seul d'abord...
    Je n'interviendrai que si tu "baisses les bras", mais après m'avoir montré ce que tu auras tenté.
    Bonne étude.
    Montre-nous donc ce (le code) que tu as tenté !

  19. #19
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Je me demande s'il n'y a pas confusion entre "," et "." pour la séparation décimale ?
    Dans ton exemple tu mets un point mais tu parles de virgule... Comment sont tes paramètres régionaux dans windows pour le séparateur décimal ? (Je n'ai jamais compris que Microsoft nous propose une virgule en France alors que nos claviers sont équipés d'un point sur le clavier numérique... à chaque fois je dois ajuster ce paramètre)

  20. #20
    Membre éclairé Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Par défaut
    Bonjour,
    ce que j'ai en tete c'est de formater la partie entiere et la partie décimale le tout dans Format(). Mais le probleme c'est que je ne connais pas la fonction partie entiere ni partie décimale. Mon code donnerait peut ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Text1.Text = Format(PartieEntiere(Text1.Text) & PartieDecimale(Text1.Text), "### ### ###")
    En fait je ne sais meme pas si ça marche, mais c'est ce que j'essaraie

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/07/2015, 10h02
  2. [XL-2010] Comparer la valeur de textbox au format date
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/05/2015, 10h31
  3. [XL-2003] textbox en format date
    Par macduss dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/04/2009, 13h33
  4. [UserControl - TextBox] 2 format de texte
    Par TheBlackReverand dans le forum C#
    Réponses: 2
    Dernier message: 03/08/2008, 03h42
  5. [C#] Je veux formater un control textBox
    Par justice007 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 28/05/2004, 12h51

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