RE:Convertir de decimal a Fraccion
Pon dos cuadros de texto en un Formulario: txtNumero (donde se introduce el número decimal) y Resultado (donde se verá el número convertido a fracción) y en el Editor de VBA un Procedimiento de Evento (Despues de actualizar txtNumero) y dos Funciones:
'En la Seccion de Declaraciones del Formulario:
Option Compare Database
Dim ParteDecimal As Double
Dim NSimple As Single
Dim Retorno
Dim K As Long
Option Explicit
'Procedimiento de Evento:
Private Sub txtNumero_AfterUpdate()
Retorno = Null
Me.Resultado = ConvertirDecimalAFraccion(txtNumero, 0, 0, 0)
End Sub
'Funcion primera:
Function ConvertirDecimalAFraccion(ByVal NumeroDecimal As Double, _
ByRef Numero As Long, _
ByRef Numerador As Long, _
ByRef Denominador As Long) As String
Numero = Fix(NumeroDecimal)
ParteDecimal = NumeroDecimal - Numero
NSimple = ParteDecimal
Denominador = 1
Do Until (Fix(NSimple) = NSimple)
NSimple = NSimple * 10
Denominador = Denominador * 10
Loop
Numerador = NSimple
ConvertirFormato Numerador, Denominador
If Numero <> 0 Then
Retorno = Numero
If (Numerador <> 0) Then
Retorno = Retorno & " y "
End If
Else
If Numerador < 0 Then
Retorno = Retorno & "-"
End If
End If
If Numerador <> 0 Then
Retorno = Retorno & Abs(Numerador) & "/" & Denominador
End If
ConvertirDecimalAFraccion = Retorno
End Function
'Funcion segunda:
Function ConvertirFormato(ByRef Numerador As Long, _
ByRef Denominador As Long)
For K = Numerador To 1 Step -1
If Numerador Mod K = 0 And _
Denominador Mod K = 0 Then
Numerador = Numerador / K
Denominador = Denominador / K
End If
Next K
End Function
Prueba a ver si te sirve esto para convertir un Número Decimal a Fracción, lo contrario, segun dices, ya sabes hacerlo.
Saludos
Enrique