Public Function CVTRomDec(ByVal valeur As String) As Long
Dim sum as Long = 0
Dim incr as Long = 0
Dim decr As Long = 0
If String.IsNullOrEmpty(valeur) Then Return 0
For i As Integer = valeur.Length - 1 To 0 Step -1
Select Case valeur.Substring(i, 1)
Case "I"
incr = 1
Case "V"
incr = 5
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "I" Then decr = 1
Case "X"
incr = 10
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "I" Then decr = 1
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "V" Then decr = 5
Case "L"
incr = 50
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "I" Then decr = 1
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "V" Then decr = 5
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "X" Then decr = 10
Case "C"
incr = 100
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "I" Then decr = 1
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "V" Then decr = 5
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "X" Then decr = 10
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "L" Then decr = 50
Case "D"
incr = 500
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "I" Then decr = 1
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "V" Then decr = 5
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "X" Then decr = 10
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "L" Then decr = 50
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "C" Then decr = 100
Case "M"
incr = 1000
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "I" Then decr = 1
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "V" Then decr = 5
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "X" Then decr = 10
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "L" Then decr = 50
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "C" Then decr = 100
If (i > 1) AndAlso valeur.Substring(i - 1, 1) = "D" Then decr = 500
Case Else
Return 0
End Select
sum += incr
If decr <> 0 Then
sum -= decr
i -= 1
End If