Problème nombre decimal

Bonjour

j'ai ce module dans une macro globale pour demander de rentrer un montant

le problème c'est que la saisie d'un nombre décimal avec un point (ex: 123.56) active la msgbox 3 donc erreur

et que la saisie d'un nombre avec une virgule par ex : 123,56 est autorisé mais ensuite me pose un autre problème lorsque j'attribue sa valeur sur une feuille (pb de format??) erreur #VALEUR!

tout ceci se passant normalement si nombre entier

Do

montantlig1 = InputBox("Montant prestations ligne 1")

If StrPtr(montantlig1) = 0 Then

MsgBox "Vous avez annulé", vbCritical + vbOKOnly, "Annulation utilisateur"

Exit Sub

ElseIf montantlig1 = vbNullString Then

MsgBox "Aucune saisie", vbCritical + vbOKOnly, "Pas de saisie utilisateur"

Else

If Not IsNumeric(montantlig1) Then

MsgBox "Merci de saisir une valeur numérique", vbExclamation

Else

okmon = True

End If

End If

Loop While Not okmon

ActiveSheet.Range("MONTANTLIG1").Value = montantlig1

Sheets("SYNTHESE").Range("F1").End(xlDown).Offset(1, 0).Value = Application.Sum(montantlig1, montantlig2, montantlig3)

je précise que montantlig1 est de type string (pe le problème d'ailleurs..) car sur la feuille ou la valeur est copiée il est ecrit commentaire excel "ce nombre dans cette cellule est au format texte ou avec un apostrophe devant)

Bonjour,

Un essai :

Sub Test()

Dim Montant As Single, montOK As Boolean

Do
    Montant = Application.InputBox("Montant prestations ligne 1", Type:=1) 'Force la saisie numérique
    Select Case Montant 'Peu utile ici car il n'y a désormais que 2 possibilités (If ... Then ... Else aurait suffit)
        Case 0
            MsgBox "Vous avez annulé ou saisie une valeur nulle", vbCritical + vbOKOnly, "Annulation utilisateur"
        Case Else
            montOK = True
    End Select
Loop While Not montOK
Range("A1") = Montant

End Sub
Rechercher des sujets similaires à "probleme nombre decimal"