Páginas:
Por: Ariel Palazzesi
@
lunes, 30 de junio de 2008
Nota vista 109154 veces
Hoy te proponemos escribir una “macro” para Microsoft Excel que te permitirá expresar números como su equivalente en letras. Se trata de una función muy buscada y que no viene “de serie” en la planilla de cálculo. En NeoTeo te mostraremos, paso a paso, como puedes escribirla tu mismo.
Código de la macro
Este es el código de la macro en cuestión. Simplemente, debemos seleccionarlo con el ratón, copiarlo al portapapeles (con CTRL-C) y luego pegarlo en el editor de VBA (con CTRL-V):
'-------------------------------------
Public i
Function num2let(importe)
If importe = 1 Then final = " peso" Else final = " euros"
If importe > 999 Then num2let = num2letras(Int(importe / 1000)) + " mil "
num2let = num2let + num2letras(importe - Int(importe / 1000) * 1000) + final
If Int(importe) = 0 Then num2let = "cero euros"
If importe <> Int(importe) Then
num2let = num2let + " con " + num2letras((importe - Int(importe)) * 100) + " centavos."
End If
End Function
Function num2letras(importe)
'Pasa de numero a letras, importes entre 0 y 999
'Centena ----------------------------------------
centena2 = Int(importe / 100)
Select Case centena2
Case 0: num2letras = ""
Case 1: num2letras = "cien"
Case 2: num2letras = "doscientos"
Case 3: num2letras = "trescientos"
Case 4: num2letras = "cuatrocientos"
Case 5: num2letras = "quinientos"
Case 6: num2letras = "seiscientos"
Case 7: num2letras = "setecientos"
Case 8: num2letras = "ochocientos"
Case 9: num2letras = "novecientos"
End Select
'Decena ----------------------------------------------
decena2 = Int((importe - centena2 * 100) / 10)
If centena2 = 1 Then num2letras = num2letras + "to"
Select Case decena2
Case 1: num2letras = num2letras + " diez"
Case 2: num2letras = num2letras + " veinte"
Case 3: num2letras = num2letras + " treinta"
Case 4: num2letras = num2letras + " cuarenta"
Case 5: num2letras = num2letras + " cincuenta"
Case 6: num2letras = num2letras + " sesenta"
Case 7: num2letras = num2letras + " setenta"
Case 8: num2letras = num2letras + " ochenta"
Case 9: num2letras = num2letras + " noventa"
End Select
'Unidad ----------------------------------------------
unidad2 = Int((importe - centena2 * 100 - decena2 * 10))
If decena2 = 0 Then
'num2letras = Mid(num2letras, 1, Len(num2letras) - 6)
Select Case unidad2
'Case 0: num2letras = num2letras + " cero"
Case 1: num2letras = num2letras + " un"
Case 2: num2letras = num2letras + " dos"
Case 3: num2letras = num2letras + " tres"
Case 4: num2letras = num2letras + " cuatro"
Case 5: num2letras = num2letras + " cinco"
Case 6: num2letras = num2letras + " seis"
Case 7: num2letras = num2letras + " siete"
Case 8: num2letras = num2letras + " ocho"
Case 9: num2letras = num2letras + " nueve"
End Select
End If
If decena2 = 1 Then
num2letras = Mid(num2letras, 1, Len(num2letras) - 4)
Select Case unidad2
Case 0: num2letras = num2letras + " diez"
Case 1: num2letras = num2letras + " once"
Case 2: num2letras = num2letras + " doce"
Case 3: num2letras = num2letras + " trece"
Case 4: num2letras = num2letras + " catorce"
Case 5: num2letras = num2letras + " quince"
Case 6: num2letras = num2letras + " diceciseis"
Case 7: num2letras = num2letras + " diecisiete"
Case 8: num2letras = num2letras + " dieciocho"
Case 9: num2letras = num2letras + " diecinueve"
End Select
End If
If decena2 = 2 Then
If unidad2 <> 0 Then num2letras = Mid(num2letras, 1, Len(num2letras) - 6)
Select Case unidad2
Case 1: num2letras = num2letras + " veintiun"
Case 2: num2letras = num2letras + " veintidos"
Case 3: num2letras = num2letras + " veintitres"
Case 4: num2letras = num2letras + " veinticuatro"
Case 5: num2letras = num2letras + " veinticinco"
Case 6: num2letras = num2letras + " veintiseis"
Case 7: num2letras = num2letras + " veintisiete"
Case 8: num2letras = num2letras + " veintiocho"
Case 9: num2letras = num2letras + " veintinueve"
End Select
End If
If decena2 > 2 Then
Select Case unidad2
Case 1: num2letras = num2letras + " y un"
Case 2: num2letras = num2letras + " y dos"
Case 3: num2letras = num2letras + " y tres"
Case 4: num2letras = num2letras + " y cuatro"
Case 5: num2letras = num2letras + " y cinco"
Case 6: num2letras = num2letras + " y seis"
Case 7: num2letras = num2letras + " y siete"
Case 8: num2letras = num2letras + " y ocho"
Case 9: num2letras = num2letras + " y nueve"
End Select
End If
If importe = 100 Then num2letras = "cien"
End Function

Utilizando num2let()

ChemBots, los “robots líquidos” de DARPA

Más trucos para acelerar Windows Vista
Prohibida su copia total con o sin fines comerciales. Copias parciales deben citar la fuente.