Una familia de software de hoja de cálculo de Microsoft con herramientas para analizar, trazar y comunicar datos.
... se trata de seleccionar un texto de varias líneas en un documento hecho en Word, y buscar y reemplazar las cifras escritas en números por las misma cifras expresadas con palabras. En el ejemplo que puse en mi primer post, el texto:
" En el año 1997 se escribió un libro de 781 páginas que se vendía en 39 dólares"
debería quedar así:
" En el año mil novecientos noventa y siete se escribió un libro de setecientos ochenta y un páginas que se vendía en treinta y nueve dólares" ...
hola, Fran !
aunque vba es vba, excel y word tienen "sus diferencias" (objetos, metodos, propiedades, etc.), entonces, solventado el tema de la funcion para convertir numeros a letras (que ya tienes en uso), prueba con la siguiente macro (copiada o escrita) =>en un modulo de codigo estandar en tu documento de ms-word<=
OJO: la funcion que estoy usando para convertir numeros a letras se llama: "EnLetras" (marcada en negritas y subrrayado en el ejemplo), misma que deberas cambiar por el nombre de tu funcion
=== inicia codigo ===
Sub Reemplaza_Num_x_Letras()
Dim Pfo As Paragraph, Texto As String, Serie As Object, n As Byte, x As Byte
Application.ScreenUpdating = False
For Each Pfo In ActiveDocument.Paragraphs
Texto = Pfo.Range.Text
With CreateObject("vbscript.regexp")
.Global = True
.Pattern = "\d+"
Set Serie = .Execute(Texto)
x = Serie.Count
If x Then
Pfo.Range.Select
For n = 0 To x - 1
With Selection.Find
.Text = CStr(Serie(n))
.Replacement.Text = CStr(EnLetras(Serie(n)))
.Execute Replace:=wdReplaceAll
End With
Next
End If
End With
Next
Set Serie = Nothing
Selection.HomeKey Unit:=wdStory
End Sub
=== fin de codigo ===
si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.