Necesito convertir el valor de un numero de una celda en letras en otra celda

Hola, quiero convertir el número de una celda a letras, en otra celda. ¿Me puedes explicar cómo hacerlo?
Saludos
Paskini
Respuesta
1
Supongo que lo quieres hacer en excel, porque hablando de celdas es lo primero que me ha venido a la mente.
Necesitas hacerte una macro que ejecute el código que te pongo a continuación. Este código traduce el número que le pases por parámetro a letras. Es un pelín compleja, pero bastante completa, está en VBA.
Saludos.
Private Function Pasa_Numero_A_Letra (ByVal strNum As String) As String
Dim lngA As Long
Dim Negativo As Integer
Dim L As Integer
Dim una As Integer
Dim Millon As Integer
Dim Millones As Integer
Dim vez As Integer
Dim MaxVez As Integer
Dim k As Integer
Dim strQ As String
Dim strB As String
Dim strU As String
Dim strD As String
Dim strC As String
Dim iA As Integer
Dim strN() As String
Dim lo As Integer
ReDim unidad(0 To 9) As String
ReDim decena(0 To 9) As String
ReDim centena(0 To 9) As String
ReDim deci(0 To 9) As String
ReDim otros(0 To 15) As String
lo = 255
'Asignar los valores
unidad(1) = "una"
unidad(2) = "dos"
unidad(3) = "tres"
unidad(4) = "cuatro"
unidad(5) = "cinco"
unidad(6) = "seis"
unidad(7) = "siete"
unidad(8) = "ocho"
unidad(9) = "nueve"
decena(1) = "diez"
decena(2) = "veinte"
decena(3) = "treinta"
decena(4) = "cuarenta"
decena(5) = "cincuenta"
decena(6) = "sesenta"
decena(7) = "setenta"
decena(8) = "ochenta"
decena(9) = "noventa"
centena(1) = "ciento"
centena(2) = "doscientas"
centena(3) = "trescientas"
centena(4) = "cuatrocientas"
centena(5) = "quinientas"
centena(6) = "seiscientas"
centena(7) = "setecientas"
centena(8) = "ochocientas"
centena(9) = "novecientas"
deci(1) = "dieci"
deci(2) = "veinti"
deci(3) = "treinta y "
deci(4) = "cuarenta y "
deci(5) = "cincuenta y "
deci(6) = "sesenta y "
deci(7) = "setenta y "
deci(8) = "ochenta y "
deci(9) = "noventa y "
otros(1) = "1"
otros(2) = "2"
otros(3) = "3"
otros(4) = "4"
otros(5) = "5"
otros(6) = "6"
otros(7) = "7"
otros(8) = "8"
otros(9) = "9"
otros(10) = "10"
otros(11) = "once"
otros(12) = "doce"
otros(13) = "trece"
otros(14) = "catorce"
otros(15) = "quince"
On Error GoTo 0
lngA = Abs(Val(strNum))
Negativo = (lngA <> Val(strNum))
strNum = LTrim$(RTrim$(Str$(lngA)))
L = Len(strNum)
If lngA = 0 Then
strNum = Left$("cero" & Space$(lo), lo)
Exit Function
End If
una = True
Millon = False
Millones = False
If L < 4 Then una = False
If lngA > 999999 Then Millon = True
If lngA > 1999999 Then Millones = True
strB = ""
strQ = strNum
vez = 0
ReDim strN(1 To 4)
strQ = Right$(String$(12, "0") & strNum, 12)
For k = Len(strQ) To 1 Step -3
vez = vez + 1
strN(vez) = Mid$(strQ, k - 2, 3)
Next
MaxVez = 4
For k = 4 To 1 Step -1
If strN(k) = "000" Then
MaxVez = MaxVez - 1
Else
Exit For
End If
Next
For vez = 1 To MaxVez
strU = "": strD = "": strC = ""

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas