Plantilla de Word

Estoy utilizando una plantilla de Word con campos "BOTÓNMACRO NoMacro" para introducir el texto deseado. Me gustaría plantearte dos preguntas:
1.- ¿Cómo puedo hacer para que una vez cubierto un campo con texto, me repita ese texto en otro campo que está más adelante en la plantilla, sin tener que volver a teclearlo?.
2.- ¿Cómo puedo hacer para que me cuente las palabras de una parte del texto y actualice el valor automáticamente con los cambios?

2 respuestas

Respuesta
1
Se resuelven con macros, que te paso para casa caso.
1.- ¿Cómo puedo hacer para que una vez cubierto un campo con texto, me repita ese texto en otro campo que está más adelante en la plantilla, sin tener que volver a teclearlo?.
Sub Copiar()
ActiveDocument.FormFields("Texto2").Result = ActiveDocument.FormFields("Texto1").Result
End Sub
**********************
Por supuesto que el documento tiene que estar protegido, y en el campo con texto en el que el usuario ingresa el texto, le asignas en las propiedades, en la opción "al salir" la macro Copiar.
2.- ¿Cómo puedo hacer para que me cuente las palabras de una parte del texto y actualice el valor automáticamente con los cambios?
Al párrafo del que necesitas contar las palabras le tienes que colocar un marcador en nuestro ejemplo "TextoParaContar", colocas otro campo con texto en el documento donde quieras mostrar el valor y en las propiedades en la opción "al entrar" que ejecute la macro CuentaPalabras
Sub CuentaPalabras()
ActiveDocument.FormFields("Texto3").Result = ActiveDocument.Bookmarks("TextoParaContar").Range.Words.Count
End Sub
Si esto no te queda muy claro, me pasas una dirección y te mando el archivo de ejemplo.
Hola Nilda:
Ante todo muchas gracias por tu pronta respuesta.
Si puedes enviarme ese ejemplo que me comentas me vendrá muy bien porque estoy bastante pez con las macros y no me entero mucho del tema de las propiedades de "al salir", etc.
Mi email es [email protected]
Un saludo,
José Luis
Salio a tu correo.
Respuesta
1
Disculpa el retraso, pero he estado bastante liado por asuntos de trabajo y no he podido responderte antes.
1º Para repetir un texto en varios puntos puedes hacer lo siguiente:
Pones un marcador (tantos como tú quieras) en cada punto de la plantilla donde vas a repetir el texto dado por el usuario. Por ejemplo, el siguiente documento:
Esto es un * de prueba para ver como repetir * en varias partes de un *.
Suponiendo que los asteriscos representan marcadores (que quedarán ocultos), y que se llaman Marca1, Marca2 y Marca3.
Creas una nueva macro con el siguiente código:
Sub Marcas()
'
' Macro creada el 08/07/02 por Simón Hernández Dalmau
'
Texto = InputBox("Introduzca el texto:")
Selection.GoTo What:=wdGoToBookmark, Name:="Marca1"
Selection.TypeText Text:=Texto
Selection.GoTo What:=wdGoToBookmark, Name:="Marca2"
Selection.TypeText Text:=Texto
Selection.GoTo What:=wdGoToBookmark, Name:="Marca3"
Selection.TypeText Text:=Texto
End Sub
Cuando la ejecutes te sale una ventana pidiendo el texto a repetir. Si tecleas 'texto', el documento quedaría así:
Esto es un texto de prueba para ver como repetir texto en varias partes de un texto.
2º Creas una macro con el siguiente código:
Sub Cuenta()
'
' Macro creada el 08/07/02 por Simón Hernández Dalmau
'
Dim Contador As Long, I As Integer, Inicio As String
Contador = 0
Inicio = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz0123456789"
For Each aWord In ActiveDocument.Words
For I = 1 To Len(Inicio)
If Left(aWord, 1) = Mid(Inicio, I, 1) Then
Contador = Contador + 1
I = Len(Inicio)
End If
Next I
Next aWord
If Contador > 1 Then ActiveDocument.Words(1) = Contador
End Sub
Cada vez que ejecutes la macros sustituirá la 1ª palabra del documento actual por el númeo de palabras que componen el texto.
Creo que con esto resuelvo tus dudas, pero si no he dejado algo claro, aquí estoy.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas