Option Explicit
Function conversiondecbin(Valeur As Range, Base As Range) As String
Dim data1 As String
Dim data2 As Single
Dim data3 As String
If Base.Value > 16 Then
conversiondecbin = "False"
Exit Function
End If
If Valeur < Base And Valeur < 10 Then
conversiondecbin = Valeur
Exit Function
End If
data2 = Fix(Valeur.Value)
Do
data1 = Valhexa((data2 Mod Base)) & data1
data2 = Fix(data2 / Base)
If data2 = 0 Then Exit Do
Loop
'partie fractionnaire
data2 = Abs(Valeur.Value - Fix(Valeur.Value))
If data2 = 0 Then
conversiondecbin = data1
Exit Function
End If
Do
data3 = data3 & Valhexa(Fix((data2 * Base)))
data2 = Abs((data2 * Base) - Fix(data2 * Base))
If data2 = 0 Then Exit Do
Loop
conversiondecbin = data1 & "," & data3
End Function
Private Function Valhexa(Valeur1 As Integer)
Select Case Valeur1
Case 0 To 9
Valhexa = Valeur1
Case 10 To 15
Valhexa = Chr(55 + Valeur1)
End Select
End Function