Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > Visual Basic > Un reto para Expertos en Excel
-Foros de debate

Visual Basic
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Un reto para Expertos en Excel
Enviado por Javier Vergara el día 20 de diciembre de 2003

Aparentemente facil Pero?
Necesito desde Excel, poder convertir un numero en texto (Ej: 2.500 EN Dos mil quinientos), para lo cual debe existir una funcion o MACRO en VB, que permita escribir en otra celda el numero en letras.
URGENTE

 
Re: Un reto para Expertos en Excel
Enviado por NEMT el día 23 de diciembre de 2003

Hola, no soy experta en excel, pero espero que de algo te sirva esto:
hay una funcion en excel que se llama
speellnumber(N)
esta te le el numero pero te da la expresion en dolares....
ojala te sirva...
Salu2
Suerte

 
Re: Re: Un reto para Expertos en Excel
Enviado por NEMT el día 23 de diciembre de 2003

Se me paso comentarte que la funcion se utiliza asi:
=spellnumber(N) don de N es la referencia de la celda a convertir...

 
Re: Re: Re: Un reto para Expertos en Excel
Enviado por Miguel Carranza el día 26 de febrero de 2005

LA FUNCION PARA LA VERSIÓN EN CASTELLANO CUAL ES?

 
Re: Re: Re: Re: Un reto para Expertos en Excel
Enviado por RafaelRC el día 28 de febrero de 2005

Supongo que esto ya estará más que contestado.
Por si sirve de ayuda, hace tiempo hice en Clipper una función que luego he adaptado a VBA.

Por deformación la llamo "spell". Con un poco de habilidad, puede adaptarse para cantidades con decimales.

Si estáis interesados, por favor enviadme un email y os la mando.

 
Que Excel usais?
Enviado por Alejo el día 3 de marzo de 2005

spellnumber? qoe Office es ese?

 
Re: Que Excel usais?
Enviado por roymx el día 4 de marzo de 2005

la función que buscan esta aqui.

http://www.programacion.com/foros/32/msg/20303/

 


Re: Re: Re: Re: Re: Un reto para Expertos en Excel
Enviado por rodosandoval el día 7 de junio de 2006

Seria de gran ayuda si me envias la funcion hecha en clipper.

Gracias

 

Re: Re: Re: Re: Re: Un reto para Expertos en Excel
Enviado por Patricio el día 10 de junio de 2006

Rafael:
Muy agadecido estaré se me envias lo de "spell" que soporte decimales.
Millon de gracias por vuestro ofrecimiento.
Coridiales Saludos
Patricio

 



Re: Re: Re: Un reto para Expertos en Excel
Enviado por Gustavo el día 15 de mayo de 2005

Necesito hacer una base de datos en excel, que me guarde eventtos y a la hora que ocurrieron. Cuanso uso la funcion AHORA(). Esta se actualiza cada vez que Ya que pareces que dominas excel dime com hago esto: Quiero hacer una base de datos en excel. Registrar eventos y a que hora ocurrieron. El PC esta conectado en PLC. Uso la funcion AHORA(), pero cuando hago un calculo se actulkiza la hora en todos los campos.Al final todos lo eventos quedan registrados con la ultima hora tomada. Se puede hacer estoi en excel?
Espero tu ayuda

 



Re: Un reto para Expertos en Excel
Enviado por JUAN ESPINDOLA el día 6 de mayo de 2005

Saludos, yo tengo una macro, escribeme y te la reenvio

jde1968@hotmail.com

 
Re: Re: Un reto para Expertos en Excel
Enviado por renato el día 12 de septiembre de 2005

POR FAVOR ENVIAME LA MACRO DE CONVERSION DE NUMEROS A LETRAS

 

Re: Re: Un reto para Expertos en Excel
Enviado por marco el día 16 de junio de 2006

por favor en verdad necesito esa macro que ofreces, seria posible que me la mandes? gracias

 


Re: Un reto para Expertos en Excel
Enviado por Argenis Chaffardet el día 7 de junio de 2005

La función se usa así
=Numeros_Letras(G36;P31;Q31;R31;S31;T31;U31)

Donde las celdas G36;P31;Q31;R31;S31;T31;U31 son los parámetro por los cuales se va a regir el valor en texto,

Saludos.


Option Explicit
'Mauricio Baeza
'Samuel Monajaras
'Enero-97
'Ultima modificacion Octubre del 2002
'mbs@inbox.net
'http://www.vbalym.netfirms.com
'Argumentos:
'Numero = Valor que deseamos convertir en texto
'Moneda = es el nombre de la moneda a mostrar
'Fraccion_Letras = Verdadero para que la fraccion de la moneda
' tambien la convierta a letras
'Fraccion = Es el nombre de la fraccion de la moneda
'Texto_Inicial = Cualquier texto que quieras al principio del resultado
'Texto_Final = Cualquier texto que quieras al finla del resultado
'Estilo = Formato de salida
' 1 = MAYUSCULAS
' 2 = minusculas
' 3 = Tipo Titulo
'Los valores negativos los convierte a positivos
'El valor minimo en 0, el valor maximo es 9,999,999,999,999.99

Public Function Numeros_Letras(ByVal Numero As Double, _
ByVal Moneda As String, _
Optional Fraccion_Letras As Boolean = False, _
Optional Fraccion As String = "", _
Optional Texto_Inicial As String = "", _
Optional Texto_Final As String = "", _
Optional Estilo As Integer = 1) As String
Dim strLetras As String
Dim NumTmp As String
Dim intFraccion As Integer

strLetras = Texto_Inicial
'Convertimos a positivo si es negativo
Numero = Abs(Numero)
NumTmp = Format(Numero, "000000000000000.00")
If Numero < 1 Then
strLetras = strLetras & "cero " & Plural(Moneda) & " "
Else
strLetras = strLetras & NumLet(Val(Left(NumTmp, 15)))
If Val(NumTmp) = 1 Or Val(NumTmp) < 2 Then
strLetras = strLetras & Moneda & " "
ElseIf Val(Mid(NumTmp, 4, 12)) = 0 Or Val(Mid(NumTmp, 10, 6)) = 0 Then
strLetras = strLetras & "de " & Plural(Moneda) & " "
Else
strLetras = strLetras & Plural(Moneda) & " "
End If
End If
If Fraccion_Letras Then
intFraccion = Val(Right(NumTmp, 2))
Select Case intFraccion
Case 0
strLetras = strLetras & "con cero " & Plural(Fraccion)
Case 1
strLetras = strLetras & "con un " & Fraccion
Case Else
strLetras = strLetras & "con " & NumLet(Val(Right(NumTmp, 2))) & Plural(Fraccion)
End Select
Else
strLetras = strLetras & Right(NumTmp, 2)
End If
strLetras = strLetras & Texto_Final
Select Case Estilo
Case 1
strLetras = StrConv(strLetras, vbUpperCase)
Case 2
strLetras = StrConv(strLetras, vbLowerCase)
Case 3
strLetras = StrConv(strLetras, vbProperCase)
End Select

Numeros_Letras = strLetras

End Function

Public Function NumLet(ByVal Numero As Double) As String
Dim NumTmp As String
Dim co1 As Integer
Dim co2 As Integer
Dim pos As Integer
Dim dig As Integer
Dim cen As Integer
Dim dec As Integer
Dim uni As Integer
Dim letra1 As String
Dim letra2 As String
Dim letra3 As String
Dim Leyenda As String
Dim TFNumero As String

NumTmp = Format(Numero, "000000000000000") 'Le da un formato fijo
co1 = 1
pos = 1
TFNumero = ""
'Para extraer tres digitos cada vez
Do While co1 <= 5
co2 = 1
Do While co2 <= 3
'Extrae un digito cada vez de izquierda a derecha
dig = Val(Mid(NumTmp, pos, 1))
Select Case co2
Case 1: cen = dig
Case 2: dec = dig
Case 3: uni = dig
End Select
co2 = co2 + 1
pos = pos + 1
Loop
letra3 = Centena(uni, dec, cen)
letra2 = Decena(uni, dec)
letra1 = Unidad(uni, dec)

Select Case co1
Case 1
If cen + dec + uni = 1 Then
Leyenda = "billon "
ElseIf cen + dec + uni > 1 Then
Leyenda = "billones "
End If
Case 2
If cen + dec + uni >= 1 And Val(Mid(NumTmp, 7, 3)) = 0 Then
Leyenda = "mil millones "
ElseIf cen + dec + uni >= 1 Then
Leyenda = "mil "
End If
Case 3
If cen + dec = 0 And uni = 1 Then
Leyenda = "millon "
ElseIf cen > 0 Or dec > 0 Or uni > 1 Then
Leyenda = "millones "
End If
Case 4
If cen + dec + uni >= 1 Then
Leyenda = "mil "
End If
Case 5
If cen + dec + uni >= 1 Then
Leyenda = ""
End If
End Select

co1 = co1 + 1
TFNumero = TFNumero + letra3 + letra2 + letra1 + Leyenda

Leyenda = ""
letra1 = ""
letra2 = ""
letra3 = ""
Loop

NumLet = TFNumero

End Function

Private Function Centena(ByVal uni As Integer, ByVal dec As Integer, _
ByVal cen As Integer) As String
Dim cTexto As String

Select Case cen
Case 1
If dec + uni = 0 Then
cTexto = "cien "
Else
cTexto = "ciento "
End If
Case 2: cTexto = "doscientos "
Case 3: cTexto = "trescientos "
Case 4: cTexto = "cuatrocientos "
Case 5: cTexto = "quinientos "
Case 6: cTexto = "seiscientos "
Case 7: cTexto = "setecientos "
Case 8: cTexto = "ochocientos "
Case 9: cTexto = "novecientos "
Case Else: cTexto = ""
End Select
Centena = cTexto

End Function

Private Function Decena(ByVal uni As Integer, ByVal dec As Integer) As String
Dim cTexto As String

Select Case dec
Case 1:
Select Case uni
Case 0: cTexto = "diez "
Case 1: cTexto = "once "
Case 2: cTexto = "doce "
Case 3: cTexto = "trece "
Case 4: cTexto = "catorce "
Case 5: cTexto = "quince "
Case 6 To 9: cTexto = "dieci"
End Select
Case 2:
If uni = 0 Then
cTexto = "veinte "
ElseIf uni > 0 Then
cTexto = "veinti"
End If
Case 3: cTexto = "treinta "
Case 4: cTexto = "cuarenta "
Case 5: cTexto = "cincuenta "
Case 6: cTexto = "sesenta "
Case 7: cTexto = "setenta "
Case 8: cTexto = "ochenta "
Case 9: cTexto = "noventa "
Case Else: cTexto = ""
End Select

If uni > 0 And dec > 2 Then cTexto = cTexto + "y "

Decena = cTexto

End Function

Private Function Unidad(ByVal uni As Integer, ByVal dec As Integer) As String
Dim cTexto As String

If dec <> 1 Then
Select Case uni
Case 1: cTexto = "un "
Case 2: cTexto = "dos "
Case 3: cTexto = "tres "
Case 4: cTexto = "cuatro "
Case 5: cTexto = "cinco "
End Select
End If
Select Case uni
Case 6: cTexto = "seis "
Case 7: cTexto = "siete "
Case 8: cTexto = "ocho "
Case 9: cTexto = "nueve "
End Select

Unidad = cTexto

End Function

'Funcion que convierte al plural el argumento pasado
Private Function Plural(ByVal Palabra As String) As String
Dim pos As Integer
Dim strPal As String

If Len(Trim(Palabra)) > 0 Then
pos = InStr(1, "aeiou", Right(Palabra, 1), vbTextCompare)
If pos > 0 Then
strPal = Palabra & "s"
Else
strPal = Palabra & "es"
End If
End If
Plural = strPal

End Function

 
Re: Re: Un reto para Expertos en Excel
Enviado por jjchg(JOSE DE JESÚS CHÁVEZ GUE el día 16 de junio de 2005

YO TENGO UNA MACRO QUE EN UNA LINEA QUE NO EXCEDE DE 100 CARACTERES HACE LA CONVERSIÓN. LO ÚNICO QUE TE PIDO ES QUE ME CONTESTES, PORQUE QUIERO SABER QUE USTEDES NO SON UNA FALASIA.

GRACIAS

JJCHG

 
Re: Re: Re: me interesa la macro
Enviado por pepe el día 2 de agosto de 2005

hola que tal cuate, me interesa la macro, me la podria enviar me urge, ya que tengo algunos problemitas con eso de las conversiones grasias.

 

Saludos
Enviado por vanrankin el día 3 de noviembre de 2005

Hoal vi te respuesta en el foro y la verdad necesito mucho la funcion para hacer la conversion de digitos en letras

 

Re: Re: Re: Un reto para Expertos en Excel
Enviado por dan el día 15 de noviembre de 2005

no habia tenido contacto anterior con usted ....pero me interesa la macro... ya que tengo la necesidad de convertir numeros en textos para facturar...por lo cual te agradeceria me enviaras la macro.....de antemano mil gracias

 


Re: Re: Un reto para Expertos en Excel
Enviado por JJCHG el día 17 de junio de 2005

POR FAVOR DIME UNA COSA. ¿CREES QUE ESTOY MINTIENDO ACERCA DE LA MACRO QUE COMENTE? Y OTRA COSA QUE NO SE SI PUEDO PEDIRTE, PERO AÚN ASÍ LO VOY A HACER. dONDE PUEDO CONSEGUIR EL CIVILCAD Y ARCHICAD CON SUS RESPECTIVOS TUTORIALES DE A GRAPA, AUNQUE SEAN VERSIONES VIEJILLAS; NADA MAS QUIERO VER SI PUEDO HACER UNAS MODIFICACIONES A MI CASA, MEDIANTE UN PROYECTO. SI ME PUDIERAS AYUDAR.

JJCHG

GRACIAS

 

Un reto para Expertos en Excel
Enviado por Beimar el día 1 de noviembre de 2005

Hola me gustaria saber como genero una función que me llame una celda de de otro archivo.

='D:\Mis documentos\Borrar\[DS.xls]Hoja1'!$B$1

Este parámetro pero metido dentro de una función

Private Function hola()
a = Cells(2.1)
hola = a

E intentado varias cosas pero no me funciona, al colocarlo en una celda me genera como texto y no como formula?

Muchas gracias

 
Re: Un reto para Expertos en Excel
Enviado por invitado el día 15 de noviembre de 2005

No he probado esta opción, pero puede ayudarte.
Tienes que poner doble signo == para que pueda ser tomado el texto como formula.
Ejemplo: "== A1+b2"
suerte

 


Re: Re: Un reto para Expertos en Excel
Enviado por rob el día 29 de enero de 2008

hola, disculpe que le molesto con eso... me convierta numeros a letras pero no los decimales... pongo 45.5 y dice cuarenta y seis. es possible que lo dice bien?
en adelante muchas gracias

 

Re: Re: Un reto para Expertos en Excel
Enviado por un pasante el día 24 de marzo de 2008

sobre la conversion de numero a texto de cantidades numerica, Te encuentro genial. Una reverencia para tí

 


Re: Un reto para Expertos en Excel
Enviado por JOSE DE JESUS CHAVEZ GUERRERO el día 14 de junio de 2005

Yo tengo la macro que convierte los numeros a letra, pero, según lo que he visto, únicamente lo hace con número enteros y no agrega para la cuestión contable xx/100, m.n. Podrías decirme que no importa, pero, según yo, pone la parte decimal de una manera no convencional (por ejemplo: .25 lo transcribe como veinte mas cinco y no veinticinco. Me costó mucho trabajo encontrarla. La puedes encontrar en Mr. free. La sencillez con que está hecha es impresionante. ]Te diré que yo no le entiendo.

Si no la encuentras, contéstame y te mando yo la que tengo. Yo ando buscando una que me convierta el número a texto, pero contablemente hablando.

Que estés bien
Saludos

jjchg

 
Saludos
Enviado por vanrankin el día 3 de noviembre de 2005

Necesito la funcion de conversion de digitos en letras me la puedes enviar porfavor...gracias

 


Re: Un reto para Expertos en Excel
Enviado por JJCHG el día 16 de junio de 2005

Amigo, te lo vuelvo a comentar, yo tengo la macro para hacer la conversión; ahora ya puedo hacer la conversión en forma contable, con decimales, sin decimales; y te vas a que de a cuatro cuando te diga que en una sola linea como instrucción. Piensas que es una broma no?, pues lo único que te pido es que me contestes para saber si lo de ustedes es una broma o no. Yo no soy miembro de ese foro.
Por favor respóndeme.

 
Re: Re: Un reto para Expertos en Excel
Enviado por lmh el día 14 de julio de 2005

hola, yo si quiero saber como convertir numeros a letras, con la funcion de cantidad.decimal es decir, 2,1150.50 que me convierta a dosmil ciento ciencuenta 50/100

gracias

 

Re: Re: Un reto para Expertos en Excel
Enviado por rodrigo el día 14 de julio de 2005

por favor me puedes enviar la macro a pakidermo282@hotmail.com, por favor.

 

Re: Re: Un reto para Expertos en Excel
Enviado por DIEGO el día 15 de julio de 2005

Me parece impropio servirse del trabajo tuyo, en este caso. Te pido que me des la lógica de la funcion que tienes o, si quieres, derechamente, envíame la función. (que igualmente estudiaré en detalle) No sé mucho de excel pero este es un problema que no he logrado resolver en mi trabajo y me impaciento porque pierdo tiemppo "traduciendo" cifras a palabras.

Si no me respondes, te agradezco igualmente tu buena voluntad.

 
Necesito codigo num. a letras
Enviado por mpere el día 21 de julio de 2005

si no es mucha molestia desearia que me envies a mi mail el codigo para convertir numeros a letras. Desde ya nuchas gracias por tu ayuda. matiaspere@yahoo.com.ar

 


Re: Re: Un reto para Expertos en Excel
Enviado por osky el día 4 de septiembre de 2005

Te pediría que me envies la macro para numeros a letras.
Me sería muy util.
Gracias

 
Re: Re: Re: Un reto para Expertos en Excel
Enviado por WeNDY !!! el día 8 de septiembre de 2005

Hola a todos...yo solo quisiera saber q tengo q incluir en mi programa si quiero utilizar la funcion Mid$...la pongo en mi forma y me dice q no reconoce el proyecto o la biblioteca..
Espero puedan contestar..Gracias !!!!

 


Re: Re: Un reto para Expertos en Excel
Enviado por DEGNER el día 10 de septiembre de 2005

HERMANO YO NO SOY DEL FORO PERO ME INTERESARIA OBTENER ESA MACRO PORQUE LA ESTOY NECESITANDO EN MI TRABAJO Y SE ME LA PUEDES ENVIAR TE LO AGRADESCO.

GRACIAS....

 
Re: Re: Re: Un reto para Expertos en Excel
Enviado por Al Karajo el día 11 de septiembre de 2005

La funcion que buscais es muy facil de hacer, solo teneis que coger un manual básico de visual basic (solo se utilizan las funciones If..End If y select case, mirar que es un array y ya está, yo la hize para euros con decimales. Si alguien esta interesado responder.

 
ME INTERESA
Enviado por borja el día 5 de octubre de 2005

me interesa la función. gracias

 



Re: Re: Un reto para Expertos en Excel
Enviado por INSI el día 5 de octubre de 2005

hola, mira te agradeceria mucho si me eviaras esa macro, por que la necesito mucho, desde ya te agradezco mucho. si podes enviarmela al correo
fiorentino@argentina.com

 
Re: Re: Re: Un reto para Expertos en Excel
Enviado por Enojado el día 19 de octubre de 2005

que franela!, que alguien publique la puta funcion!

 


Re: Re: Un reto para Expertos en Excel
Enviado por Edwin el día 4 de noviembre de 2005

Puedes mandarme tu macro para convertir número a texto?

Muchas gracias,

Edwin

 


Re: Un reto para Expertos en Excel
Enviado por andres el día 13 de noviembre de 2005

Me podrias enviar la macro que convierte númesros en texto?

Gracias

 
Re: Re: Un reto para Expertos en Excel
Enviado por kmi el día 3 de julio de 2006

Mi duda es la siguiente: Cuando hago una macro en Excel en una pc ...y tengo despues que mudarme a otra pc, donde busco la macro ya hecha para llevarla a la otra maquina y no tener que repetirla, o sea con que extension se guardan y donde.
Saludos y Gracias

 



Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network