BIMSOFTWARE.MX GStarCAD - Software CAD 2d/3d
Canales de Ingeniería Civil en:
Whatsapp / Telegram
Whatsapp / Telegram
COMO HAGO UN MACRO PARA QUE AL PONER UNA CANTIDAD CON NUMERO
Reglas del Foro
Favor de usar el boton de Dar Gracias
En el mensaje del usuario al que deseas agradecer
En vez de escribir gracias repetidamente
Favor de usar el boton de Dar Gracias
En el mensaje del usuario al que deseas agradecer
En vez de escribir gracias repetidamente
EXPERTOS EN EXCEL OJALA ME PUEDAN AYUDAR EN EXPLICARME COMO HAGO UN MACRO PARA QUE MI CANTIDAD QUE APARECE EN UNA CELDA ME APARESCA EN OTRA CELDA PERO CON LETRA, DISCULPENME CASI NO SOY EXPERTO EN MACROS. SALUDOS Y HOJALA ME PUEDAN AYUDAR. SALUDOS DESDE VERACRUZ MEXICO
-
- Usuario Principiante
- Mensajes: 5
- Registrado: Mié Dic 03, 2008 10:22 am
Este archivo lo tienes que copiar en mis documentos y en excel agregar un complemento en herramientas y buscas la ruta donde lo guardaste y la fórmula es la siguiente:
=numtxt(celda de número;"Moneda local";2)
=numtxt(celda de número;"Moneda local";2)
Te anexo un libro de excel, que trae la función "pesos", es muy fácil de usar, trae un ejemplo en el libro y el código la ves en vb.
No tienes los permisos requeridos para ver los archivos adjuntos a este mensaje.
Última edición por surfer200 el Sab Ene 10, 2009 5:02 pm, editado 1 vez en total.
hola amigo cristobal muchas gracias por tu informacion, solo que no me quedo claro como buscar laruta que me dices despues de haber guardado el archivo en mis documentos y cual es "ud" donde puedo ver el codigo. no se que tan corecto sea veinte y tres pesos o veintitres pesos; esque tengo uno y su formula es (=+PESOSCOMOFACTURA(REDONDEAR(B19,2)) pero al querer hacer otro o copiar la formula se me desconfigura y me ponne error. gracias amigo enverdad y ojala me puedas ayudar. saludos desde veracruz mexico
PUDE DESCARGAR DE LA RED UN PROGRAMA QUE CONTIENE 112 FUNCIONES NUEVAS PARA EXCEL, QUIZAS YA ESCUCHARON DE EL,
CON TIENE UNA FUNCION LLAMADA "=ALETRAS("CELDA"). EL INCOVENIENTE QUE TIENE ES SOLO PARECE FUNCIONAR CON OFFICE 2003.
SI ALGUIEN LO QUIERE PROBAR ME LO PIDE.
CON TIENE UNA FUNCION LLAMADA "=ALETRAS("CELDA"). EL INCOVENIENTE QUE TIENE ES SOLO PARECE FUNCIONAR CON OFFICE 2003.
SI ALGUIEN LO QUIERE PROBAR ME LO PIDE.
- ajmojicar2002
- Usuario Master Superior
- Mensajes: 446
- Registrado: Mié Sep 22, 2004 8:44 pm
- Ubicación: SANTA MARTA
Hola. te agradeceriamos mucho si colocas dicho enlace para bajar el programakuky2008 escribió:PUDE DESCARGAR DE LA RED UN PROGRAMA QUE CONTIENE 112 FUNCIONES NUEVAS PARA EXCEL, QUIZAS YA ESCUCHARON DE EL,
CON TIENE UNA FUNCION LLAMADA "=ALETRAS("CELDA"). EL INCOVENIENTE QUE TIENE ES SOLO PARECE FUNCIONAR CON OFFICE 2003.
SI ALGUIEN LO QUIERE PROBAR ME LO PIDE.
AQUI LES ENVIO EL ARCHIVO. LO BAJE UNA VEZ.
SOLO TIENES QUE EJECUTARLO Y LUEGO BUSCARLO EN LA UBICACION QUE SE INSTALO , AHI ENCONTRARAS LAS INSTRUCCIONES PARA PODER HABILITARLO EN TU EXCEL
SOLO TIENES QUE EJECUTARLO Y LUEGO BUSCARLO EN LA UBICACION QUE SE INSTALO , AHI ENCONTRARAS LAS INSTRUCCIONES PARA PODER HABILITARLO EN TU EXCEL
No tienes los permisos requeridos para ver los archivos adjuntos a este mensaje.
BUENO QUISIERA POR FAVOR QUE ME AYUDEN EN EL CASO DEL ARCHIVO QUE ESTA MAS ARRIBA CON LA FUNCION PESOS LA CUAL PUDE VER QUE TIENE VARIOS INCONVENIENTES COMO POR EJEMPLO NO ME FUNCIONA CON NUMEROS MENORES QUE 1 POR EJEMPLO 0.56, O CON NUMEROS COMO ESTE 10652235.58, SI LO INGRESO SIN LA PARTE DECIMAL FUNCIONA DE LO CONTRARIO TAL Y COMO ESTA NO FUNCIONA.
Esta es la macro:
Function PesosMN(tyCantidad As Currency) As String
Dim lyCantidad As Currency
Dim lyCentavos As Currency
Dim lnDigito As Byte
Dim lnPrimerDigito As Byte
Dim lnSegundoDigito As Byte
Dim lnTercerDigito As Byte
Dim lcBloque As String
Dim lnNumeroBloques As Byte
Dim lnBloqueCero
Dim laUnidades As Variant
Dim laDecenas As Variant
Dim laCentenas As Variant
Dim I As Variant
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 = "(" & PesosMN & IIf(tyCantidad > 1, " PESOS ", " PESO ") & Format(Str(lyCentavos), "00") & "/100 M.N.)"
End Function
Abres Visual Basic, creas un modulo, pegas este codigo, lo guardas, y desde una casilla de excel la mandas llamar =pesosMN(a1)
Function PesosMN(tyCantidad As Currency) As String
Dim lyCantidad As Currency
Dim lyCentavos As Currency
Dim lnDigito As Byte
Dim lnPrimerDigito As Byte
Dim lnSegundoDigito As Byte
Dim lnTercerDigito As Byte
Dim lcBloque As String
Dim lnNumeroBloques As Byte
Dim lnBloqueCero
Dim laUnidades As Variant
Dim laDecenas As Variant
Dim laCentenas As Variant
Dim I As Variant
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 = "(" & PesosMN & IIf(tyCantidad > 1, " PESOS ", " PESO ") & Format(Str(lyCentavos), "00") & "/100 M.N.)"
End Function
Abres Visual Basic, creas un modulo, pegas este codigo, lo guardas, y desde una casilla de excel la mandas llamar =pesosMN(a1)
-
- Similar Topics
- Respuestas
- Vistas
- Último mensaje
-
- 0 Respuestas
- 6065 Vistas
-
Último mensaje por Vadvais
-
- 0 Respuestas
- 8685 Vistas
-
Último mensaje por ErickRQ
-
- 0 Respuestas
- 4776 Vistas
-
Último mensaje por AnaLuz5
-
- 0 Respuestas
- 10801 Vistas
-
Último mensaje por Jeffreyjeff
-
- 0 Respuestas
- 8575 Vistas
-
Último mensaje por Ing Pato
-
- Información
-
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 13 invitados