VBA - IsNumeric ne prend pas les chiffres à virgule

PteppicJohl

XLDnaute Nouveau
bonjour,
j'essaye de faire fonctionner cette macro :

Code:
Sub Volatilité_Call()
Do
Dim coursducall
coursducall = InputBox("Saisir le cours du CALL (--.--)", "VOLATILITE IMPLICITE / CALL")
If coursducall = "" Then
MsgBox ("Saisir le cours du CALL")
GoTo REDEMANDE
ElseIf Not IsNumeric(coursducall) Then
MsgBox ("Saisir un chiffre" & Chr(10) & "(valeur numerique uniquement format (--.--))")
GoTo REDEMANDE
Else
Range("F10").GoalSeek Goal:=coursducall, ChangingCell:=Range("C8")
End If

Unload UserForm1

REDEMANDE:
Loop Until (IsNumeric(coursducall) And coursducall <> "")

seulement quand je rentre dans mon inputbox un chiffre à virgule il me renvoie la msgbox saisir un chiffre (valeur numérique), si j'utilise la virgule du clavier (pas le point du clavier numérique) goal seek plante.
Pas de problème avec les chiffres entier

Merci d'avance
PteppicJohl
 

gilbert_RGI

XLDnaute Barbatruc
Re : VBA - IsNumeric ne prend pas les chiffres à virgule

Bonjour

Comme ceci peut-être

(taper la virgule)

Code:
Sub Volatilité_Call()
    Do
        Dim coursducall
        coursducall = InputBox("Saisir le cours du CALL (--,--)", "VOLATILITE IMPLICITE / CALL")
        If coursducall = "" Then
            MsgBox ("Saisir le cours du CALL")
            GoTo REDEMANDE
        ElseIf Not IsNumeric(coursducall) Then
            MsgBox ("Saisir un chiffre" & Chr(10) & "(valeur numerique uniquement format (--,--))")
            GoTo REDEMANDE
        Else
            coursducall = Replace(coursducall, ",", ".")
            Range("F10").GoalSeek Goal:=coursducall, ChangingCell:=Range("C8")
        End If
        Exit Sub
        'Unload UserForm1
REDEMANDE:
    Loop Until (IsNumeric(coursducall) And coursducall <> "")
End Sub
 

gilbert_RGI

XLDnaute Barbatruc
Re : VBA - IsNumeric ne prend pas les chiffres à virgule

je pense que c'est votre formule en F10 qui doit poser problème

goalseek étant

expression.GoalSeek(Objectif, ModificationCellule)
Objectif
Obligatoire
Variante
Valeur qui doit être renvoyée dans cette
cellule.
ModificationCellule
Obligatoire
Range
Spécifie la cellule à modifier pour obtenir le résultat
souhaité.


pour employer aussi bien le . que la ,
Code:
Sub Volatilité_Call()
    Do
        Dim coursducall
        coursducall = InputBox("Saisir le cours du CALL (--,--)", "VOLATILITE IMPLICITE / CALL")
        If coursducall = "" Then
            MsgBox ("Saisir le cours du CALL")
            GoTo REDEMANDE
        Else
        coursducall = Replace(coursducall, ".", ",")
        If Not IsNumeric(coursducall) Then
            MsgBox ("Saisir un chiffre" & Chr(10) & "(valeur numerique uniquement format (--,--))")
            GoTo REDEMANDE
        Else
            coursducall = Replace(coursducall, ",", ".")
            Range("F10").GoalSeek Goal:=coursducall, ChangingCell:=Range("C8")
        End If
        End If
        Exit Sub
        'Unload UserForm1
REDEMANDE:
    Loop Until (IsNumeric(coursducall) And coursducall <> "")
End Sub
 
Dernière édition:

Statistiques des forums

Discussions
313 138
Messages
2 095 627
Membres
106 308
dernier inscrit
F.DIAS