English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Todas las categorías

2006-10-05 04:44:28 · 9 respuestas · pregunta de mariosalvadors 2 en Ordenadores e Internet Programación y Diseño

9 respuestas

si lo que quieres es escribir 100 como "cien"
Puedes usar esta funcion
=SpellNumber(100)

1.- Dentro del menu Herramientas - Macro deberemos escoger la opci\'f3n: Editor de Visual Basic.


Una vez seleccionada se abrire una nueva ventana con dos ventanas acopladas a la izquierda. La superior es la ventana que llamamos: de Proyecto y la inferior la de Propiedades. En la primera apareceren los elementos que forman parte de cada Proyecto (grupo de macros y hojas de Excel) y la segunda son las propiedades de los objetos que se pueden incorporar a nuestras macros. Mas adelante veremos como se utilizan estas dos ventanas y todas sus caracteristicas.


Vamos a prepararnos para poder escribir nuestra primera macro


2.- Escoge la opcion Modulo del menu Insertar.


Observa como en la ventana superior aparece nos aparece una nueva carpeta llamada Modulos y en su interior un nuevo elemento llamado Modulo1. Dentro de este modulo sere donde guardemos las macros que creemos.


Tambien podras ver como la parte derecha de la ventana ahora es completamente blanca. Aqui es donde podemos escribir las instrucciones que formaran parte de nuestra Macro.


Vamos a crear una Macro y esta nos servire de ejemplo para ver como se deben escribir.


Crearemos una Macro muy sencilla la cual nos servire para que la pagina activa pase a ser la segunda.


3.- En la pagina en blanco de la derecha inserta este codigo

Option Explicit

'****************
' Main Function *
'****************

Function SpellNumber(ByVal MyNumber)
Dim Dollars, Cents, Temp
Dim DecimalPlace, Count

ReDim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Million "
Place(4) = " Billion "
Place(5) = " Trillion "

' String representation of amount.
MyNumber = Trim(Str(MyNumber))

' Position of decimal place 0 if none.
DecimalPlace = InStr(MyNumber, ".")
' Convert cents and set MyNumber to dollar amount.
If DecimalPlace > 0 Then
Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _
"00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If

Count = 1
Do While MyNumber <> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop

Select Case Dollars
Case ""
Dollars = "No Dollars"
Case "One"
Dollars = "One Dollar"
Case Else
Dollars = Dollars & " Dollars"
End Select

Select Case Cents
Case ""
Cents = " and No Cents"
Case "One"
Cents = " and One Cent"
Case Else
Cents = " and " & Cents & " Cents"
End Select

SpellNumber = Dollars & Cents
End Function



'*****************************...
' Converts a number from 100-999 into text *
'*****************************...

Function GetHundreds(ByVal MyNumber)
Dim Result As String

If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3)

' Convert the hundreds place.
If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
End If

' Convert the tens and ones place.
If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If

GetHundreds = Result
End Function



'*****************************...
' Converts a number from 10 to 99 into text. *
'*****************************...

Function GetTens(TensText)
Dim Result As String

Result = "" ' Null out the temporary function value.
If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19...
Select Case Val(TensText)
Case 10: Result = "Ten"
Case 11: Result = "Eleven"
Case 12: Result = "Twelve"
Case 13: Result = "Thirteen"
Case 14: Result = "Fourteen"
Case 15: Result = "Fifteen"
Case 16: Result = "Sixteen"
Case 17: Result = "Seventeen"
Case 18: Result = "Eighteen"
Case 19: Result = "Nineteen"
Case Else
End Select
Else ' If value between 20-99...
Select Case Val(Left(TensText, 1))
Case 2: Result = "Twenty "
Case 3: Result = "Thirty "
Case 4: Result = "Forty "
Case 5: Result = "Fifty "
Case 6: Result = "Sixty "
Case 7: Result = "Seventy "
Case 8: Result = "Eighty "
Case 9: Result = "Ninety "
Case Else
End Select
Result = Result & GetDigit _
(Right(TensText, 1)) ' Retrieve ones place.
End If
GetTens = Result
End Function

'*****************************...
' Converts a number from 1 to 9 into text. *
'*****************************...

Function GetDigit(Digit)
Select Case Val(Digit)
Case 1: GetDigit = "One"
Case 2: GetDigit = "Two"
Case 3: GetDigit = "Three"
Case 4: GetDigit = "Four"
Case 5: GetDigit = "Five"
Case 6: GetDigit = "Six"
Case 7: GetDigit = "Seven"
Case 8: GetDigit = "Eight"
Case 9: GetDigit = "Nine"
Case Else: GetDigit = ""
End Select
End Function
Guarda el macro
Claro vas a necesitar a cambiar los nombres desde ingles en espanol
Yo descubri esta funcion a esta pagina:
http://www.ozgrid.com/VBA/ValueToWords.htm
**********
Una sugerencia - cuando necesitaba a hacer cosas rapidas en excel (ahora lo uso muy raro) usaba una utilidad llamada ASAP utilicties. Puedes descargarlo de ahi:
http://www.asap-utilities.com/
Es una coleccionn de macros que se pueden mostrar utiles en muchas ocasiones y la ultima version tiene emplementada esta funcion
Fue recomendada por PC Magazine USA

si lo que quieras es de considerar un numero como text es decir no hacer calculaciones con el antes del numero inserta un apostrofe
ejemplo '3
y entonces 3 va ase r tratado como texto no como numero

2006-10-05 04:55:18 · answer #1 · answered by Ana 6 · 0 0

Tengo esa rutina para Excel en VB que te convierte por decir: 123 en "ciento veintitres".
Mándame tu mail si la quieres o alguien más que la necesite, igual.
carlosmtz1@yahoo.com

2006-10-05 17:29:34 · answer #2 · answered by Skorpivs 3 · 0 0

seleccionas todas las celdas en las que quieras cambiar le das clic derecho y le das formaro de celda y ahi te abre una ventana seleccionas la primera pestaña que dice numero ya tu seleccionas el formato que desees ojala te sirva chau salu2....

2006-10-05 11:59:58 · answer #3 · answered by ferdinando 2 · 0 0

tanto numeros como letras puedes usar, no veo cual es tu pregunta, o tu problema

2006-10-05 11:54:16 · answer #4 · answered by paty 4 · 0 0

Le haces click a la casilla del número, botón derecho, formato de celdas y en la lista seleccionas texto.

2006-10-05 11:53:26 · answer #5 · answered by Ingvera 7 · 0 0

Debes hacer un macro, que es algo parecido a un programa en visual basic, donde debes crear un ciclo que va recorriendo numero por numero de tu cantidad.... y va agregando a una cadena unidades, luego decenas, luego centenas, luego unidades de millar, hasta millones, o billones, segun lo que estimes necesitar....

tengo un codigo parecido hecho en ASP, si te sirve, te lo puedo proporcionar.

Saludos

2006-10-05 11:52:12 · answer #6 · answered by Integral_Systems_Co 3 · 0 0

Disculpame por la respuesta, pero para que puedas conseguir buena respuesta tienes que formular mejor la pregunta. Suerte!!

2006-10-05 11:49:23 · answer #7 · answered by eglose2000 2 · 0 0

con el teclado, no creo que queiras sumar letraS

2006-10-05 11:48:00 · answer #8 · answered by Aro 6 · 0 0

no c realmente a q te refieres pero si es al formato de celdas solamente selecciona la celda ( o las celdas q tengan otro formato) las clic derecho y selecciona formato de celdas, en la primera pestaña selecciona general, tal vez es eso lo q necesitas x q no eres muy especifico
saludos

2006-10-05 11:47:56 · answer #9 · answered by Ivetteh 3 · 0 0

fedest.com, questions and answers