Quién sabe cómo puedo usar esté código vba para números en letras para una factura?
Reciban un cordial saludo. Bien pongo en este escenario para solicitar su valiosa ayuda.
Tengo este código que conseguí pero deseo aplicarlo a un formulario que tengo cuyo nombre es FmIgFactura. En este tengo el valor de la factura total. Igualmente tengo un reporte cuyo nombre es RpInfQry_Factura1
Function EstáCargado(ByVal txtNombreFormulario As String) As Boolean
' Devuelve Verdadero si se ha abierto el formulario especificado en la vista Formulario o la vista Base de datos.
Dim oAccessObject As AccessObject
Set oAccessObject = CurrentProject.AllForms(txtNombreFormulario)
If oAccessObject.IsLoaded Then
If oAccessObject.CurrentView <> acCurViewDesign Then
EstáCargado = True
End If
End If
End Function
Private Function N2T_1to15(ByVal Valor As Integer) As String
Dim R As String
Select Case Valor
Case 1: R = "un "
Case 2: R = "dos "
Case 3: R = "tres "
Case 4: R = "cuatro "
Case 5: R = "cinco "
Case 6: R = "seis "
Case 7: R = "siete "
Case 8: R = "ocho "
Case 9: R = "nueve "
Case 10: R = "diez "
Case 11: R = "once "
Case 12: R = "doce "
Case 13: R = "trece "
Case 14: R = "catorce "
Case 15: R = "quince "
Case Else: R = " "
End Select
N2T_1to15 = R
End Function
Private Function N2T_1to99(ByVal Valor As Integer) As String
Dim R As String
Select Case Valor
Case 1 To 15: R = N2T_1to15(Valor)
Case 16 To 19: R = "dieci" & N2T_1to15(Valor - 10)
Case 20: R = "veinte "
Case 21 To 29: R = "veinti" & N2T_1to15(Valor - 20)
Case 30: R = "treinta "
Case 31 To 39: R = "treinta y " & N2T_1to15(Valor - 30)
Case 40: R = "cuarenta "
Case 41 To 49: R = "cuarenta y " & N2T_1to15(Valor - 40)
Case 50: R = "cincuenta "
Case 51 To 59: R = "cincuenta y " & N2T_1to15(Valor - 50)
Case 60: R = "sesenta "
Case 61 To 69: R = "sesenta y " & N2T_1to15(Valor - 60)
Case 70: R = "setenta "
Case 71 To 79: R = "setenta y " & N2T_1to15(Valor - 70)
Case 80: R = "ochenta "
Case 81 To 89: R = "ochenta y " & N2T_1to15(Valor - 80)
Case 90: R = "noventa "
Case 91 To 99: R = "noventa y " & N2T_1to15(Valor - 90)
End Select
N2T_1to99 = R
End Function
Private Function N2T_1to999(ByVal Valor As Integer) As String
Dim R As String
Select Case Valor
Case 1 To 99: R = N2T_1to99(Valor)
Case 100: R = "cien"
Case 101 To 199: R = "ciento " & N2T_1to99(Valor - 100)
Case 200 To 299: R = "doscientos " & N2T_1to99(Valor - 200)
Case 300 To 399: R = "trescientos " & N2T_1to99(Valor - 300)
Case 400 To 499: R = "cuatrocientos " & N2T_1to99(Valor - 400)
Case 500 To 599: R = "quinientos " & N2T_1to99(Valor - 500)
Case 600 To 699: R = "seiscientos " & N2T_1to99(Valor - 600)
Case 700 To 799: R = "setecientos " & N2T_1to99(Valor - 700)
Case 800 To 899: R = "ochocientos " & N2T_1to99(Valor - 800)
Case 900 To 999: R = "novecientos " & N2T_1to99(Valor - 900)
End Select
N2T_1to999 = R
End Function
Private Function N2T_1to999_999(ByVal Valor As Double) As String
Dim R As String
Dim M, C As Integer
M = Int((Valor / 1000))
C = Int((Valor - M * 1000))
Select Case Int(Valor)
Case 1 To 999: R = N2T_1to999(C)
Case 1000 To 999999: R = N2T_1to999(M) & "mil " & N2T_1to999(C)
End Select
N2T_1to999_999 = R
End Function
Private Function N2T_1to999_999_999_999(ByVal Valor As Double) As String
Dim R As String
Dim MM, M, C As Integer
MM = Int(Valor / 1000000)
M = Int((Valor - MM * 1000000))
Select Case Int(Valor)
Case 1 To 999999: R = N2T_1to999_999(M)
Case 1000000 To 1999999: R = "un millon " & N2T_1to999_999(Int(M))
Case 2000000 To 999999999999#: R = N2T_1to999_999(Int(MM)) & "millones " & N2T_1to999_999(Int(M))
Case Else: R = "Numero demasiado grande"
End Select
N2T_1to999_999_999_999 = R
End Function
Function Moneda2Texto(ByVal Valor As Double, DLLS As Boolean) As String
Dim Cent As Double
Dim MM, M As Double
Dim R As String
MM = Int(Valor / 1000000)
M = Int(Valor - MM * 1000000)
Cent = Round((Valor - Int(Valor)), 2) * 100
R = N2T_1to999_999_999_999(Int(Valor))
If Valor = 0 Then
R = "cero "
End If
If DLLS Then
If Valor = 1 Then
R = "un dolar "
Else
R = R & "dolares "
End If
Else
If Valor = 1 Then
R = "un peso "
Else
R = R & "pesos "
End If
End If
If Cent < 10 Then R = R & "0"
R = R & Cent & "/100 "
If Not DLLS Then R = R & "m.n."
Moneda2Texto = R
End Function
Eeste está presente como un módulo.
Y he visto que es interesante porque con éste puedo tomar el valor en número del total de la factura y convertirlo en letras.
Pero la verdad no sé como hacerlo y deseo aprender.