mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 13 janv. 2007 à 19:41
Bon, j'ai un poil galéré mais ceci devrait faire l'affaire (tiens moi au courant) :
Private Sub TextBox1_Change()
Dim MaVal As String
MaVal = TextBox1.Text
If Not Left(MaVal, 1) = "$" Then
TextBox1.Text = "$" & MaVal
Else
If Not Right(MaVal, 1) = "." Then
TextBox1.Text = "$" & Round(CDbl(Mid(MaVal, 2, Len(MaVal))), 2)
End If
End If
End Sub
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 13 janv. 2007 à 20:14
Alors voici la correction,
je t'ai inversé le tout, et fait en sorte que le curseur se place toujours avant le sigle Dollar :
Private Sub TextBox1_Change()
Dim MaVal As String
On Local Error Resume Next
MaVal = TextBox1.Text
If Not Right(MaVal, 1) = "$" Then
TextBox1.Text = MaVal & "$"
Else
If Not Right(Mid(MaVal, 1, Len(MaVal)
- 1), 1) = "." Then
TextBox1.Text = Round(CDbl(Mid(MaVal,
1, Len(MaVal) - 1)), 2) & "$"
End If
End If
TextBox1.SelStart = Len(TextBox1.Text) - 1
End Sub
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 13 janv. 2007 à 19:46
Jmfmarques,
j'ai pensé à ta solution, le problème, c'est qu'il faut gérer déjà ce qui est rentré dans le TextBox (et donc le dollar est déja présent lors de la saisie).
Mais je ne sais pas si avec Format, ça gère si le $ est déjà présent.
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 13 janv. 2007 à 19:53
Avyrex, par curiosité, c'est toi que j'aide sur développez.net ??
(sur le format paysage de l'impression du UserForm), si c'est non, concours de circonstances, à part le 1926, c'est le même pseudo.
En tout cas, je trouve ça sympathique
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
avyrex1926
Messages postés360Date d'inscriptiondimanche 3 décembre 2006StatutMembreDernière intervention 3 janvier 20123 13 janv. 2007 à 19:59
En passant, sur la formule que tu m'as donné qui fontionne super, on vien de me dire que le signe de dollars doit être à la fin du montant et non au début.
Je cherche à le modifier mais le signe de dollards se copie 25 fois après le chiffre.
Voici ce que j'ai fais:
Private Sub TextBox16_Change() Dim MaVal As String
MaVal = TextBox16.Text
If Not Left(MaVal, 1) = "$" Then
TextBox16.Text = "$" & MaVal
Else
If Not Right(MaVal, 1) = "." Then
TextBox16.Text = Round(CDbl(Mid(MaVal, 2, Len(MaVal))), 2) & "$"
End If
End If
End Sub
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 13 janv. 2007 à 21:00
Euh...
Coriace le vieux fou...
Alors :
Private Sub Text1_GotFocus() If Right(Text1.Text, 2) " $" Then Text1.Text Left(Text1.Text, Len(Text1.Text) - 2)
Text1.SelStart = Len(Text1.Text)
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer) If IsNumeric(Chr(KeyAscii)) Or KeyAscii 8 Or (Chr(KeyAscii) "." And InStr(Text1.Text, ".") = 0) Then Exit Sub
KeyAscii = 0
End Sub
Private Sub Text1_LostFocus()
If Text1.Text = "" Then Exit Sub
Text1.Text = Text1.Text & " $"
End Sub
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 13 janv. 2007 à 21:02
Mais je peux faire encore plus zouli zouli avec le $ qui "avance" au fur et à mesure .... et disparait s'il doit disparaitre ...quand il doit disparaître
J'essaye ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 13 janv. 2007 à 21:09
Alors yenapadipwoblem...
j'oublie le lostfocus et le setfocus et je gère en trimbalant, comme je l'ai dit plus haut, le $ quand il le faut et le fait disparaître également quanf il le faut...
On parie ?