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
Version imprimable
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
L'aide de VB est là pourtant.... mais bon :
Code:Text1 = Format(100000, "0 000 000")
Ben...
La syntaxe et les exemples que l'on trouve dans l'aide en ligne (sur ta machine) me paraissent clairs !
Bonjour ohmonbato,Code:MsgBox Format("1000000", "# ### ###")
ta syntaxe va également ajouter des zéros devant si nombre plus court ...;)
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à.
comment l'applique-tu ...?
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 ?
Bonjour,
je l'utilise dans l'evenement change() comme suit :
Code:
1
2
3 Text1 change() Text1 = Format(text1.text, "# ### ###") end sub
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:
1
2
3
4 Private Sub Text1_Change() Text1.text = Format(Text1.Text, "# ### ###") Text1.SelStart = Len(Text1.Text) End Sub
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.
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.
Bon....
Tu ne parles jusqu'à présent que d'entiers...
Alors voilà :
Edit :Code:
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
Que tu peux écrire plus simplement ainsi, donc :
Et si tu traitais maintenant (maintenant que tu commences à voir le principe) également les décimales, hein ??Code:
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
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.
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:
pourquoi cette erreur et comment y remedier ?Code:..." & text1.text & "...
Bonjour,
Pas besoin de Replace pour faire "sauter" les espaces..
La fonction Val s'en charge seule.
Val("4 000 000") ==>> 4000000
J'ai essayé le code suivant :
mais j'ai toujours la meme erreur. Comment dois je proceder ?Code:...Text1.Text = Trim(Format(Val(Text1.Text & toto), filtre))...
J'ai testé avec l'événement Validate sans problèmes
Code:
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
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
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)
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 :
En fait je ne sais meme pas si ça marche, mais c'est ce que j'essaraieCode:Text1.Text = Format(PartieEntiere(Text1.Text) & PartieDecimale(Text1.Text), "### ### ###")