Erreur VBA à cause du . au lieu de , pour les décimales

Jacques25

XLDnaute Occasionnel
Bonjour à tous,

Le titre n'est pas forcément des plus clairs donc je m'explique :

A l'aide d'un userform je viens remplir une base de données pour les comptes d'une micro entreprise. Tout se passe bien sauf lorsque j'ai des nombres décimales négatifs.

Dans ma textbox j'indique le montant avec mon pavé numérique avec les résultats suivants :
50 ==> OK saisie 50,00
50.20 ==> OK saisie 50,20
-50 ==> OK saisie -50,00
-50.20 ==> NOK message "incompatibilité de type"

Si dans ma saisie je remplace le . par une , je n'ai pas de soucis mais c'est nettement pratique pour saisir...

Voici mon code (blocage à la ligne ou se trouve les ***:
Private Sub CommandButton1_Click()
Sheets("Saisies").Activate
noligne = Range("A6000").End(xlUp).Row + 1
If TextBox6.Value = "Crédit" Then
Cells(noligne, 1) = CDate(TextBox1.Value)
Cells(noligne, 2) = ComboBox1.Value
Cells(noligne, 3) = TextBox3.Value
Cells(noligne, 4) = TextBox4.Value
If TextBox5.Value <> "" Then
Cells(noligne, 4).AddComment
Cells(noligne, 4).Comment.Text Text:=TextBox5.Value
End If
Cells(noligne, 4).Font.Color = -11489280
Cells(noligne, 5) = TextBox6.Value
End If
If TextBox6.Value = "Débit" Then
Cells(noligne, 1) = CDate(TextBox1.Value)
Cells(noligne, 2) = ComboBox1.Value
Cells(noligne, 3) = TextBox3.Value
*** Cells(noligne, 4) = -TextBox4.Value
If TextBox5.Value <> "" Then
Cells(noligne, 4).AddComment
Cells(noligne, 4).Comment.Text Text:=TextBox5.Value
End If
Cells(noligne, 4).Font.Color = -16776961
Cells(noligne, 5) = TextBox6.Value
End If

Unload UserForm1
Sheets("accueil").Activate
End Sub

Merci pour votre aide à tous.
Bonne fin de journée

Jacques
 

Dranreb

XLDnaute Barbatruc
Re : Erreur VBA à cause du . au lieu de , pour les décimales

Bonsoir
50.20 ==> OK saisie 50,20
Ça ça m'étonne. Vous êtes sûr ? Ça n'y mettrait pas plutôt le texte "50.20" qui n'a absolument rien à voir avec un nombre ?
Si dans ma saisie je remplace le . par une , je n'ai pas de soucis mais c'est nettement pratique pour saisir...
Alors ajoutez cette procédure :
VB:
Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = Asc(".") Then KeyAscii = Asc(",")
End Sub
Et un conseil, utilisez CDbl(TextBox4.Text) pour en récupérer la valeur. Alors vous pourrez au passage en inverser le signe quand c'est du débit.
Cordialement.
 
Dernière édition:

Jacques25

XLDnaute Occasionnel
Re : Erreur VBA à cause du . au lieu de , pour les décimales

Bonjour à tous,

Désolé pour la réponse tardive, des petits soucis de connexion...
Merci pour vos réponses je vais essayer ça cette après midi et je vous retiens au courant.

Merci encore et bonne journée.
@ plus

Jacques
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin