Bonjour a tous , je dispose de 2 fonctions FIndAsk et FindBid qui me donne le bid et le ask d un produit financier
autrement pour un produit (chaine de caractere): "2m10y 100wc 245/123"
le bid est le chiffre a gauche du /
le ask celui situe a droite du /
J aimerais savoir comment ameliorer mes fonctions pour rendre le chiffre situe exactement a droite ou a gauche du / et dans le cas ou il n y en a pas de rien renvoyer .Exemples ou mes fonctions ne marchent pas
1) "2m10y 123/" (dans ce cas je ne renvoie que le bid (pas de ask))
2) "2m10y @147 /145" (la on remarque que je n ai que le ask , pas de bid )
ps le bid et le ask ne st jamais separe par un espace siils existent.
ma fonction rightnum est defini comme tel
autrement pour un produit (chaine de caractere): "2m10y 100wc 245/123"
le bid est le chiffre a gauche du /
le ask celui situe a droite du /
J aimerais savoir comment ameliorer mes fonctions pour rendre le chiffre situe exactement a droite ou a gauche du / et dans le cas ou il n y en a pas de rien renvoyer .Exemples ou mes fonctions ne marchent pas
1) "2m10y 123/" (dans ce cas je ne renvoie que le bid (pas de ask))
2) "2m10y @147 /145" (la on remarque que je n ai que le ask , pas de bid )
ps le bid et le ask ne st jamais separe par un espace siils existent.
Code:
Function FindBid(code As String) As Variant
Dim pos1 As Integer
If code Like ("*/*") Then
pos1 = InStr(code, "/")
FindBid = RightNum(Mid(code, Len(FindDates(code)), pos1 - Len(FindDates(code))))
Else
FindBid = ""
End If
End Function
Function FindAsk(code As String) As Variant
Dim pos As Integer
If code Like ("*/*") Then
pos = InStr(code, "/")
FindAsk = RightNum(Mid(code, pos))
Else: FindAsk = ""
End If
End Function
ma fonction rightnum est defini comme tel
Code:
Function RightNum(str As String) As Double
Dim n As Integer, i As Integer, ch As String, str0 As String, str1 As String, bln As Boolean
str0 = Replace(str, ",", ".")
n = Len(str0)
For i = 1 To n
ch = Mid(str0, i, 1)
If IsNumeric(ch) Or ch = "." Then
str1 = str1 + ch
bln = True
ElseIf bln = True Then
Exit For
End If
Next i
RightNum = CDbl(str1)
End Function
Dernière édition: