AnibalLorca Posted February 10, 2011 Report Share Posted February 10, 2011 Este tutorial lo encontré interesante y creo que a más de alguien puede servirle. Cabe destacar que yo no lo hice, tampoco sé de quien es, sólo se que si funciona a la perfección ya que una de las funciones de Microsoft Excel más buscadas en la red y en los foros, es como convertir un numero a texto o numero a letras, esta función no viene integrada en las formulas propias de Microsoft Excel, esto lo podemos hacer insertando un código llamado “Macro”. Aquí va: Copien el siguiente código: Function PesosMN(tyCantidad As Currency) As String Dim lyCantidad As Currency, lyCentavos As Currency, lnDigito As Byte, lnPrimerDigito As Byte, lnSegundoDigito As Byte, lnTercerDigito As Byte, lcBloque As String, lnNumeroBloques As Byte, lnBloqueCero Dim laUnidades As Variant, laDecenas As Variant, laCentenas As Variant, I As Variant 'Si esta como Option Explicit tyCantidad = Round(tyCantidad, 2) lyCantidad = Int(tyCantidad) lyCentavos = (tyCantidad - lyCantidad) * 100 laUnidades = Array("UN", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE", "DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE", "DIECIOCHO", "DIECINUEVE", "VEINTE", "VEINTIUN", "VEINTIDOS", "VEINTITRES", "VEINTICUATRO", "VEINTICINCO", "VEINTISEIS", "VEINTISIETE", "VEINTIOCHO", "VEINTINUEVE") laDecenas = Array("DIEZ", "VEINTE", "TREINTA", "CUARENTA", "CINCUENTA", "SESENTA", "SETENTA", "OCHENTA", "NOVENTA") laCentenas = Array("CIENTO", "DOSCIENTOS", "TRESCIENTOS", "CUATROCIENTOS", "QUINIENTOS", "SEISCIENTOS", "SETECIENTOS", "OCHOCIENTOS", "NOVECIENTOS") lnNumeroBloques = 1 Do lnPrimerDigito = 0 lnSegundoDigito = 0 lnTercerDigito = 0 lcBloque = "" lnBloqueCero = 0 For I = 1 To 3 lnDigito = lyCantidad Mod 10 If lnDigito <> 0 Then Select Case I Case 1 lcBloque = " " & laUnidades(lnDigito - 1) lnPrimerDigito = lnDigito Case 2 If lnDigito <= 2 Then lcBloque = " " & laUnidades((lnDigito * 10) + lnPrimerDigito - 1) Else lcBloque = " " & laDecenas(lnDigito - 1) & IIf(lnPrimerDigito <> 0, " Y", Null) & lcBloque End If lnSegundoDigito = lnDigito Case 3 lcBloque = " " & IIf(lnDigito = 1 And lnPrimerDigito = 0 And lnSegundoDigito = 0, "CIEN", laCentenas(lnDigito - 1)) & lcBloque lnTercerDigito = lnDigito End Select Else lnBloqueCero = lnBloqueCero + 1 End If lyCantidad = Int(lyCantidad / 10) If lyCantidad = 0 Then Exit For End If Next I Select Case lnNumeroBloques Case 1 PesosMN = lcBloque Case 2 PesosMN = lcBloque & IIf(lnBloqueCero = 3, Null, " MIL") & PesosMN Case 3 PesosMN = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, " MILLON", " MILLONES") & PesosMN End Select lnNumeroBloques = lnNumeroBloques + 1 Loop Until lyCantidad = 0 PesosMN = "SON: (" & PesosMN & IIf(tyCantidad > 1, " PESOS ", " PESO ") & Format(Str(lyCentavos), "00") & "/100 M.N.)" End Function Bien, ahora que ya tenemos el código vamos a insertarlo en nuestra hoja de trabajo de Microsoft Excel. Recomendable trabajar en un libro nuevo. Hacemos clic en Herramientas->Macros->Editor de Visual Basic, o simplemente presionando Alt+F11 Es importante que cierres todos los libros que tengas abierto y dejes abierto solo el libro en el que estas trabajando ya que podría dificultarte encontrar tu libro en el explorador de proyectos (lado izquierdo de tu pantalla, si no lo ves presiona Ctrl+R) Una vez abierto el editor de Visual Basic nos vamos a Insertar->Modulo En la ventana que se abre pegamos el codigo de la macro Listo, ya tenemos nuestro macro listo para trabajar, cerramos el editor de Visual Basic, lo puedes hacer con Alt+Q y regresamos a Microsoft Excel Vamos a probarlo, en la celda A1 ponemos un importe, yo pondré 1500.21, abajo, en la celda A2 ponemos =PesosMN(A1) Bien, si pudiste hacer el ejercio hasta aquí, ya puedes ponerlo en todos tus libros de trabajo. Eso, saludos y gracias a la persona que creo este tuto. Link to comment Share on other sites More sharing options...
diod_plus-44 Posted February 11, 2011 Report Share Posted February 11, 2011 (edited) Gracias...hace algún tiempo necesité ese código. Edited February 11, 2011 by diod_plus-44 Link to comment Share on other sites More sharing options...
vctorb Posted March 2, 2011 Report Share Posted March 2, 2011 gracias, buen aporte.. y facil de utilizar Link to comment Share on other sites More sharing options...
norrisnueve Posted March 6, 2011 Report Share Posted March 6, 2011 gracias, buen aporte :lero: Link to comment Share on other sites More sharing options...
dodoria Posted March 6, 2011 Report Share Posted March 6, 2011 gracias :banana: :banana: :banana: :banana: :banana: :burla: Link to comment Share on other sites More sharing options...
Chacalito2 Posted April 16, 2011 Report Share Posted April 16, 2011 buen aporte... de repente lo necesito. gracias Link to comment Share on other sites More sharing options...
AnibalLorca Posted October 29, 2012 Author Report Share Posted October 29, 2012 Principalmente para hacer presupuestos e informes básicos. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now