Cambiar grupos de puntos por un campo de formulario

05/09/2008 - 02:49 por speichre | Informe spam
Hola a todos

Tengo varios documentos de Word de muchas páginas con zonas (son algo
parecido a contratos pero de una ONG con la que colaboro)
con ... donde la persona tiene que poner su nombre, dirección,
etc. el caso es que quería cambiarlos por un formulario de Word donde
sea más fácil de rellenar ya que bloqueo el texto y la persona vía
tabulador y ratón puede ir saltando de un campo a otro. La pregunta es
si hay alguna manera de automatizar el proceso y quizá vía macros o
VBA de tal manera que busque los puntos (a veces hay 4, 5, 6...) y los
sustituya por un espacio de campo de formulario de Word.
Gracias por cualquier pista, llevo más de un mes dándole vueltas!!!

Preguntas similare

Leer las respuestas

#11 Monica May
11/09/2008 - 01:37 | Informe spam
El codigo lo he supuesto en el caso que el texto a seleccionar este a la
izquierda del campo a insertar ...

Luego si no es asi que necesitas seleccionar un texto determinado del
documento y el campo de formulario texto esta en otra parte del documento
... entonces habria que variarla un pelin :-P !!

Comentanos...!!

Saludos
Monica
Respuesta Responder a este mensaje
#12 Monica May
11/09/2008 - 12:03 | Informe spam
Upss anoche estaria cansada :-S !!

si se puede recoger en un variable prueba lo siguiente >>

Sub DibujarForm2_3()

Dim cmpTexto As FormField
Dim y As String

y = Selection.Text
Selection.MoveRight wdCharacter, 2

Set cmpTexto = Selection.FormFields.Add _
(Selection.Range, wdFieldFormTextInput)

With cmpTexto
.EntryMacro = ""
.ExitMacro = ""
.TextInput.EditType Type:=wdRegularText, _
Default:=y, Format:=""
End With

End Sub

Saludos
Monica
Respuesta Responder a este mensaje
#13 speichre
11/09/2008 - 17:32 | Informe spam
Hola de nuevo!

He probado los dos y el último no me va ya que me coge sólo una letra,
de todas maneras el primero es perfecto salvo por el hecho de que
preferiría colocar el cursor al principio de la palabra e insertar ahí
el campo de formulario y que lo ideal sería que la palabra se
eliminase completamente, ya que será sustituida por el campo de
formulario con el texto introducido como valor por defecto.

Respecto a lo de proteger formulario, si sabes cómo hacerlo no te
preocupes por el parámetro de los estilos... a fin de cuentas con que
el documento se bloquee por lo que respecta a cualquier texto que no
sea del formulario, permita la edición de los campos de formulario
(insertar, borrar, etc.) y te pida una contraseña de protección, ya
sería ideal!!!

Gracias!
Respuesta Responder a este mensaje
#14 Monica May
15/09/2008 - 15:24 | Informe spam
holas!!

Si quieres que se incluya en la seleccion del ultimo codigo que te pase >>

Elimina la linea 5 siguiente >>

Selection.MoveRight wdCharacter, 2

quedando asi >>

'[]


Sub DibujarForm2_3()

Dim cmpTexto As FormField
Dim y As String

y = Selection.Text
Selection.MoveRight wdCharacter, 2

Set cmpTexto = Selection.FormFields.Add _
(Selection.Range, wdFieldFormTextInput)

With cmpTexto
.EntryMacro = ""
.ExitMacro = ""
.TextInput.EditType Type:=wdRegularText, _
Default:=y, Format:=""
End With

End Sub

'[]



Para la proteccion de formulario mirate el siguiente articulo sin macros >>

http://office.microsoft.com/es-es/w...63082.aspx

Si quieres proteger el formulario mediante codigo aplicado a un boton >>

'[]

Sub demo()


On Error Resume Next


ActiveDocument.Unprotect ("111")

'resto de codigo ...

ActiveDocument.Protect Type:=wdAllowOnlyFormFields, _
NoReset:=True, Password:="111"


End Sub

'[]

donde ["111"] es la contrasena a aplicar y cambiar por la que gustes

Los campos de formulario tienen que estar protegidos para su proteccion ...
mirate el articulo de Microsoft que te he pasado lo de proteger
mediante codigo que te indico luego es por necesidad de utilizar alguna
funcion de las que no estan disponibles cuando proteges formulario desde la
interfaz de Word ...


y Comentanos!!


Saludos
Monica



-resto consulta

que lo ideal sería que la palabra se
eliminase completamente, ya que sera sustituida por el campo de
formulario con el texto introducido como valor por defecto.

permita la edicion de los campos de formulario
(insertar, borrar, etc.) y te pida una contraseña de protección, ya
sería ideal!!!
Respuesta Responder a este mensaje
#15 speichre
17/09/2008 - 02:18 | Informe spam
Hola Mónica

Respecto a lo de cambiar texto por un campo de formulario lo he hecho
de otra manera y es que he pensado que puede que el texto a cambiar
por un campo de formulario con un texto predeterminado puede ser más
de una palabra y lo he hecho así (a ver qué te parece). Yo marco el
texto que quiero que pase a un campo de formulario y listo:

Sub CambiarTextoPorCampoDeFormulario() ' !!!!!!!!!!!!!!

Dim cmpTexto As FormField
Dim y As String


y = Selection.Text

Set cmpTexto = Selection.FormFields.Add _
(Selection.Range, wdFieldFormTextInput)

With cmpTexto
.EntryMacro = ""
.ExitMacro = ""
.TextInput.EditType Type:=wdRegularText, _
Default:=y, Format:=""
End With


End Sub

respecto a lo de proteger, usando un inputbox pido la clave y su
confirmación y si son lo mismo, protejo el documento, si no digo que
error y paro. PAra desproteger uso un inputbox de la forma:
ActiveDocument.Unprotect (inputBox("introduce la clave",
"contraseña")

¿Qué te parecen las soluciones? te las pongo por si pueden resultar
útiles a alguien más... y para que las veas, claro. Entre esta semana
montaré la aplicación entera para ponerla en funcionamiento. Gracias
por tu apoyo!
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida