Perdonar pero la función es erronea, esta es la versión correcta.
Public Function Conversion(Numero As String, _
ByVal BaseOrigen As Integer, _
ByVal BaseDestino) As String
Dim Contador As Integer
Dim FConversion As Long
Dim NTemporal As Long
Dim elDigito As Byte
If BaseOrigen = 10 Then
NTemporal = CLng(Numero)
Else
'Conversión a Base decimal
NTemporal = 0
FConversion = 1
For Contador = Len(Numero) To 1 Step -1
If Asc(Mid(Numero, Contador, 1)) <= vbKey9 Then
NTemporal = NTemporal + (Asc(Mid(Numero, Contador, 1)) - vbKey0) * FConversion
Else
NTemporal = NTemporal + (Asc(Mid(Numero, Contador, 1)) - vbKeyA + 10) * FConversion
End If
FConversion = FConversion * BaseOrigen
Next Contador
End If
'
'NTemporal contiene el número en decimal
If BaseDestino = 10 Then
Conversion = CStr(NTemporal)
Exit Function
End If
'Conversión a BaseDestino
While NTemporal <> 0
elDigito = NTemporal Mod BaseDestino
If elDigito < 10 Then
Conversion = Chr(elDigito + vbKey0) & Conversion
Else
Conversion = Chr(elDigito + vbKeyA - 10) & Conversion
End If
NTemporal = NTemporal \ BaseDestino
Wend
End Function