Sauvegardé les décimals aussi

Bonjour,

Dans un userform1, je saisie le montant 41,01$ et il enregistre 41,00$ au format texte dans la cellule de mon fichier.

'Initialisation du formulaire
Private Sub UserForm_Initialize()

    Dim j As Long
    Dim I As Integer
    Dim M As Long
    Dim tb_bud_eng As Currency

Saisie est ok

Private Sub tb_bud_eng_afterupdate()
    Dim Message As String
    Dim Réponse As Integer
    If Not IsNumeric(Me.tb_bud_eng.Value) Then
        Message = "Veuillez entrer un montant valide !"
        Réponse = MsgBox(Message, vbOKOnly, "Controle de saisie")
        MsgBox Réponse
        Me.tb_bud_eng.SetFocus
        Exit Sub
    Else
        Me.tb_bud_eng.Value = Format(Me.tb_bud_eng.Value, "currency")
        MsgBox "Montant inscrit : " & tb_bud_eng
        Call MAJ_actif2
    End If

End Sub

Enregistre ainsi : Range("N" & L).Value = Val(tb_bud_eng)

Bonjour,

vba travaille avec le . en séparateur décimal.

Val() s'arrête donc à la , qu'il considère comme du texte.

Fait val(replace(ta_valeur;",";".")) et ça devrait aller mieux

eric

Merci, j'ai remplacé le ; par une , car j'obtenais une erreur de compilation.

--> Range("N" & L).Value = Val(Replace(tb_bud_eng, ",", "."))

À la saisie, est-ce possible de permettre l'utilisation du . au lieu de la virgule ?

Les gens utilisent le clavier numérique qui lui n'a pas de ,

Merci!

Dans un textbox l'utilisateur peut saisir ce qu'il veut puisque c'est une chaine.

Pourquoi ne pas tester avant de poser la question ?

Je test à la sortie du champs pour être sur d'avoir du numérique et le point ne passe pas.

Private Sub tb_bud_eng_afterupdate()
    Dim Message As String
    Dim Réponse As Integer
    If Not IsNumeric(Me.tb_bud_eng.Value) Then
        Message = "Veuillez entrer un montant valide !"
        Réponse = MsgBox(Message, vbOKOnly, "Controle de saisie")
        Me.tb_bud_eng.SetFocus
        Exit Sub
    Else
        Call MAJ_actif
    End If
End Sub
Rechercher des sujets similaires à "sauvegarde decimals aussi"