211 lines
6.0 KiB
HTML
211 lines
6.0 KiB
HTML
<!-- 17 -->
|
|
<p>
|
|
La <a class="link" data-bs-toggle="modal" data-bs-target="#udf">UDF</a> <b>NumeroATextoMoneda</b> sirve para
|
|
convertir
|
|
números a textos en formato moneda (pesos mexicanos), ejemplo: <br>
|
|
En la celda C1 tenemos la cantidad en número 3050.8, y en la celda C2 ingresamos <b>=NumeroATextoMoneda(C1)</b> y
|
|
obtendremos el siguiente resultado:
|
|
</p>
|
|
<div class="img zoomable">
|
|
<img src="/static/source_imgs/excel/pst_3/1.png" alt="">
|
|
</div>
|
|
<p>
|
|
A continuación te dejo el código de la UDF para que la revises y la puedas usar o modificar.
|
|
</p>
|
|
|
|
<pre><i class="bi bi-copy"> Copiar código</i>
|
|
<code class="code_lightMode">
|
|
Function NumeroATextoMoneda(Numero)
|
|
Application.Volatile
|
|
Dim texto
|
|
Dim Billones
|
|
Dim Millones
|
|
Dim Miles
|
|
Dim Cientos
|
|
Dim Decimales
|
|
Dim Cadena
|
|
Dim CadBillones
|
|
Dim CadMillones
|
|
Dim CadMiles
|
|
Dim CadCientos
|
|
texto = Numero
|
|
texto = FormatNumber(texto, 2)
|
|
texto = Right(Space(18) & texto, 18)
|
|
Billones = Mid(texto, 1, 3)
|
|
Millones = Mid(texto, 5, 3)
|
|
Miles = Mid(texto, 9, 3)
|
|
Cientos = Mid(texto, 13, 3)
|
|
Decimales = Mid(texto, 17, 2)
|
|
CadBillones = ConvierteCifra(Billones, 1)
|
|
CadMillones = ConvierteCifra(Millones, 1)
|
|
CadMiles = ConvierteCifra(Miles, 1)
|
|
CadCientos = ConvierteCifra(Cientos, 0)
|
|
If Trim(CadBillones) > "" Then
|
|
If Trim(CadBillones) = "UN" Then
|
|
Cadena = CadBillones & " BILLON"
|
|
Else
|
|
Cadena = CadBillones & " BILLONES"
|
|
End If
|
|
End If
|
|
If Trim(CadMillones) > "" Then
|
|
If Trim(CadMillones) = "UN" Then
|
|
Cadena = CadMillones & " MILLON"
|
|
Else
|
|
Cadena = CadMillones & " MILLONES"
|
|
End If
|
|
End If
|
|
If Trim(CadMiles) > "" Then
|
|
Cadena = Cadena & " " & CadMiles & " MIL"
|
|
End If
|
|
If Trim(CadMiles & CadCientos) = "UN0" Then
|
|
Cadena = Cadena & "UN PESO " & Decimales & "/100 M.N."
|
|
Else
|
|
If Miles & Cientos = "000000" Then
|
|
Cadena = Cadena & " " & Trim(CadCientos) & " PESOS " & Decimales & "/100 M.N."
|
|
Else
|
|
Cadena = Cadena & " " & Trim(CadCientos) & " PESOS " & Decimales & "/100 M.N. "
|
|
End If
|
|
End If
|
|
Select Case Numero
|
|
Case Is < 0
|
|
Cadena = "El valor es negativo"
|
|
Case Is > 999999999999.99
|
|
Cadena = "El valor excede el limite de la función"
|
|
Case Is < 1
|
|
Cadena = "CERO PESOS " & Decimales & "/100 M.N."
|
|
Case Is < 2
|
|
Cadena = "UN PESO " & Decimales & "/100 M.N."
|
|
End Select
|
|
NumeroATextoMoneda = Trim(Cadena)
|
|
|
|
End Function
|
|
|
|
Function ConvierteCifra(texto, SW)
|
|
Dim Centena
|
|
Dim Decena
|
|
Dim Unidad
|
|
Dim txtCentena
|
|
Dim txtDecena
|
|
Dim txtUnidad
|
|
Centena = Mid(texto, 1, 1)
|
|
Decena = Mid(texto, 2, 1)
|
|
Unidad = Mid(texto, 3, 1)
|
|
Select Case Centena
|
|
Case "1"
|
|
txtCentena = "CIEN"
|
|
If Decena & Unidad <> "00" Then
|
|
txtCentena = "CIENTO"
|
|
End If
|
|
Case "2"
|
|
txtCentena = "DOSCIENTOS"
|
|
Case "3"
|
|
txtCentena = "TRESCIENTOS"
|
|
Case "4"
|
|
txtCentena = "CUATROCIENTOS"
|
|
Case "5"
|
|
txtCentena = "QUINIENTOS"
|
|
Case "6"
|
|
txtCentena = "SEISCIENTOS"
|
|
Case "7"
|
|
txtCentena = "SETECIENTOS"
|
|
Case "8"
|
|
txtCentena = "OCHOCIENTOS"
|
|
Case "9"
|
|
txtCentena = "NOVECIENTOS"
|
|
End Select
|
|
|
|
Select Case Decena
|
|
Case "1"
|
|
txtDecena = "DIEZ"
|
|
Select Case Unidad
|
|
Case "1"
|
|
txtDecena = "ONCE"
|
|
Case "2"
|
|
txtDecena = "DOCE"
|
|
Case "3"
|
|
txtDecena = "TRECE"
|
|
Case "4"
|
|
txtDecena = "CATORCE"
|
|
Case "5"
|
|
txtDecena = "QUINCE"
|
|
Case "6"
|
|
txtDecena = "DIECISEIS"
|
|
Case "7"
|
|
txtDecena = "DIECISIETE"
|
|
Case "8"
|
|
txtDecena = "DIECIOCHO"
|
|
Case "9"
|
|
txtDecena = "DIECINUEVE"
|
|
End Select
|
|
Case "2"
|
|
txtDecena = "VEINTE"
|
|
If Unidad <> "0" Then
|
|
txtDecena = "VEINTI"
|
|
End If
|
|
Case "3"
|
|
txtDecena = "TREINTA"
|
|
If Unidad <> "0" Then
|
|
txtDecena = "TREINTA Y "
|
|
End If
|
|
Case "4"
|
|
txtDecena = "CUARENTA"
|
|
If Unidad <> "0" Then
|
|
txtDecena = "CUARENTA Y "
|
|
End If
|
|
Case "5"
|
|
txtDecena = "CINCUENTA"
|
|
If Unidad <> "0" Then
|
|
txtDecena = "CINCUENTA Y "
|
|
End If
|
|
Case "6"
|
|
txtDecena = "SESENTA"
|
|
If Unidad <> "0" Then
|
|
txtDecena = "SESENTA Y "
|
|
End If
|
|
Case "7"
|
|
txtDecena = "SETENTA"
|
|
If Unidad <> "0" Then
|
|
txtDecena = "SETENTA Y "
|
|
End If
|
|
Case "8"
|
|
txtDecena = "OCHENTA"
|
|
If Unidad <> "0" Then
|
|
txtDecena = "OCHENTA Y "
|
|
End If
|
|
Case "9"
|
|
txtDecena = "NOVENTA"
|
|
If Unidad <> "0" Then
|
|
txtDecena = "NOVENTA Y "
|
|
End If
|
|
End Select
|
|
|
|
If Decena <> "1" Then
|
|
Select Case Unidad
|
|
Case "1"
|
|
If SW Then
|
|
txtUnidad = "UN"
|
|
Else
|
|
txtUnidad = "UN"
|
|
End If
|
|
Case "2"
|
|
txtUnidad = "DOS"
|
|
Case "3"
|
|
txtUnidad = "TRES"
|
|
Case "4"
|
|
txtUnidad = "CUATRO"
|
|
Case "5"
|
|
txtUnidad = "CINCO"
|
|
Case "6"
|
|
txtUnidad = "SEIS"
|
|
Case "7"
|
|
txtUnidad = "SIETE"
|
|
Case "8"
|
|
txtUnidad = "OCHO"
|
|
Case "9"
|
|
txtUnidad = "NUEVE"
|
|
End Select
|
|
End If
|
|
ConvierteCifra = txtCentena & " " & txtDecena & txtUnidad
|
|
End Function
|
|
|
|
</code></pre> |