buscar y reemplazar en un rango

17/02/2014 - 18:41 por gustavnog | Informe spam
¡ Hola ! compañeros

Tengo un rango de datos de la siguiente manera
1
2
3
4
5
1
2
3
4
5
el rango de datos va de a1:a10 y quiero insertar un botón que al hacer clic reemplace los valores de 1 por la palabra "uno", el valor 2 por la palabra "dos" sucesivamente hasta el valor 5.

Preguntas similare

Leer las respuestas

#1 Juan Español
18/02/2014 - 18:07 | Informe spam
Hola gustavnog:
Adaptando alguna función de las que circulan por ahí, he ampliado tu
petición y así no queda circunscrita a valores del 1 al 5, sino que vale
para valores positivos y negativos de hasta 15 digitos.
Y en vez que el rango a tratar sea a1:a10, trata, "traduce" el rango
previamente seleccionado, de tal manera que si quieres cambiar el rango a
tratar no tienes que cambiar el código.

Todo el proceso consiste en poner en un módulo del Libro estas dos
funciones:
'=Function EnLetr(Valor) As String 'funcion Principal '
If Not IsNumeric(Valor) Then
EnLetr = "¡ La referencia no es valor o... 'excede' la precisión !!!":
Exit Function
End If: Dim Fracs As String, Cents As Integer
Cents = Application.Round(Abs(Valor) - Int(Abs(Valor)), 2) * 100
If Cents = 1 Then Fracs = " centésima" Else Fracs = " centésimas"
If Cents = 0 Then Fracs = "" Else Fracs = " con " & Letr(Cents) & Fracs
EnLetr = Letr(Int(Abs(Valor))) & Fracs
If Valor < 0 Then EnLetr = "menos " & EnLetr
End Function
'=Private Function Letr(Valor) As String ' Función Auxiliar [uso 'exclusivo'de
la funcion 'principal'] '
Select Case Int(Valor)
Case 0: Letr = "cero"
Case 1: Letr = "uno"
Case 2: Letr = "dos"
Case 3: Letr = "tres"
Case 4: Letr = "cuatro"
Case 5: Letr = "cinco"
Case 6: Letr = "seis"
Case 7: Letr = "siete"
Case 8: Letr = "ocho"
Case 9: Letr = "nueve"
Case 10: Letr = "diez"
Case 11: Letr = "once"
Case 12: Letr = "doce"
Case 13: Letr = "trece"
Case 14: Letr = "catorce"
Case 15: Letr = "quince"
Case Is < 20: Letr = "dieci" & Letr(Valor - 10)
Case 20: Letr = "veinte"
Case Is < 30: Letr = "veinti" & Letr(Valor - 20)
Case 30: Letr = "treinta"
Case 40: Letr = "cuarenta"
Case 50: Letr = "cincuenta"
Case 60: Letr = "sesenta"
Case 70: Letr = "setenta"
Case 80: Letr = "ochenta"
Case 90: Letr = "noventa"
Case Is < 100: Letr = Letr(Int(Valor \ 10) * 10) & " y " & Letr(Valor
Mod 10)
Case 100: Letr = "cien"
Case Is < 200: Letr = "ciento " & Letr(Valor - 100)
Case 200, 300, 400, 600, 800: Letr = Letr(Int(Valor \ 100)) & "cientos"
Case 500: Letr = "quinientos"
Case 700: Letr = "setecientos"
Case 900: Letr = "novecientos"
Case Is < 1000: Letr = Letr(Int(Valor \ 100) * 100) & " " & Letr(Valor
Mod 100)
Case 1000: Letr = "mil"
Case Is < 2000: Letr = "mil " & Letr(Valor Mod 1000)
Case Is < 1000000: Letr = Letr(Int(Valor \ 1000)) & " mil"
If Valor Mod 1000 Then Letr = Letr & " " & Letr(Valor Mod 1000)
Case 1000000: Letr = "un millón "
Case Is < 2000000: Letr = "un millón " & Letr(Valor Mod 1000000)
Case Is < 1000000000000#: Letr = Letr(Int(Valor / 1000000)) & " millones
"
If (Valor - Int(Valor / 1000000) * 1000000) _
Then Letr = Letr & Letr(Valor - Int(Valor / 1000000) * 1000000)
Case 1000000000000#: Letr = "un billón "
Case Is < 2000000000000#
Letr = "un billón " & Letr(Valor - Int(Valor / 1000000000000#) *
1000000000000#)
Case Else: Letr = Letr(Int(Valor / 1000000000000#)) & " billones "
If (Valor - Int(Valor / 1000000000000#) * 1000000000000#) _
Then Letr = Letr & " " & Letr(Valor - Int(Valor / 1000000000000#) *
1000000000000#)
End Select
End Function
'=Y en el código del botón esto:
'=Private Sub CommandButton1_Click()
Dim myRange As Range
Dim myCell As Range
Dim myNumberFormat As String
Set myRange = Selection
For Each myCell In myRange.Cells
myCell.Value = EnLetr(myCell.Value)
myCell.NumberFormat = myNumberFormat
Next myCell
End Sub
'==
Al hacer click sobre el botón hará lo que tú quieres en las celdas del rango
previamente seleccionado.

Saludos.-
Comunica si te valió.



"gustavnog" escribió en el mensaje de
noticias news:
¡ Hola ! compañeros

Tengo un rango de datos de la siguiente manera
1
2
3
4
5
1
2
3
4
5
el rango de datos va de a1:a10 y quiero insertar un botón que al hacer
clic reemplace los valores de 1 por la palabra "uno", el valor 2 por
la palabra "dos" sucesivamente hasta el valor 5.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida