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

#1 Monica May
06/09/2008 - 01:10 | Informe spam
hola,

...varios documentos de Word de muchas paginas ..
con ... donde la persona tiene que poner su nombre, direccion..
.queria cambiarlos por un formulario de Word ..
sea mas facil de rellenar ya que bloqueo el texto y la persona via
tabulador - raton puede ir saltando de un campo a otro
..hay alguna manera de automatizar el proceso .
..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.



Si lo unico que quieres es cambiar los puntos con espacios haz lo siguiente
por ejemplo [sin] macros ... >>

le das a buscar y reemplazar >>

En buscar poner [ los 4, 5, u 6 puntos que tengas ..] y en reemplazar pones
los mismos [ espacios ] anades cinco o seis espacios para que situes ahi
los campos de formulario ...

Pero si por ejemplo quieres insertar en todos los [.] los mismos campos
de formulario de los de [FormText] en todo el documento >>

'[]

Sub my_macro()

With Selection.Find
.Text = "."
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
Do While .Execute
Selection.FormFields.Add Range:=Selection.Range, _
Type:=wdFieldFormTextInput
Loop
End With
Selection.HomeKey
End Sub

'[]


Comentanos...!!


Saludos
Monica




www.fermu.com
www.teladearana.es
Respuesta Responder a este mensaje
#2 speichre
06/09/2008 - 20:12 | Informe spam
Hola Mónica

Muchas gracias por la info... te comento:

Lo que quiero es lo que dices en el segundo punto: sustituir
automáticamente todos los grupos de puntos que hay por campos de
texto de Formulario. El problema es que no sé a priori cuántos hay:
puede que haya algunos de 4, 5, 6, 7... 80... he probado con máscaras
pero me coge también espacios y palabras y no quiero. Además algo
como .{2,}. no me funciona (me da error). Lo que he hecho ha sido:

1 .Primero sustituir los puntos suspensivos de word por ... (de
verdad, ya que no son lo mismo)
2. Creo un bucle y una cadena de 100 puntos lo susituyo usando tu
método por un campo de texto, decremento y busco 99 puntos y así hasta
que sean 3 puntos, que es cuando paro. Funciona bastante bien si
tenemos en cuenta la "chapucilla" que supone el bucle, pero no se me
ocurre otra cosa... en algún caso también quedan dos campos de texto
de formulario juntos ¿hay alguna manera de buscar dos o más campos de
texto juntos y sustituirlos por uno solo?

Gracias por tu ayuda!


On 6 sep, 00:10, "Monica May" wrote:
hola,

>...varios documentos de Word de muchas paginas ..
>con ... donde la persona tiene que poner su nombre, direccion..
> .queria cambiarlos por un formulario de Word ..
>sea mas facil de rellenar ya que bloqueo el texto y la persona via
>tabulador - raton puede ir saltando de un campo a otro
>..hay alguna manera de automatizar el proceso .
>..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.

Si lo unico que quieres es cambiar los puntos con espacios haz lo siguiente
por ejemplo [sin] macros ... >>

le das a buscar y reemplazar >>

En buscar poner [ los 4, 5, u 6 puntos que tengas ..] y en reemplazar pones
los mismos [ espacios ] anades cinco o seis espacios para que situes ahi
los campos de formulario ...

Pero si por ejemplo quieres insertar en todos los [.] los mismos campos
de formulario de los de [FormText] en todo el documento >>

'[]

Sub my_macro()

With Selection.Find
  .Text = "."
  .Replacement.Text = ""
  .Forward = True
  .Wrap = wdFindContinue
  .Format = False
  Do While .Execute
  Selection.FormFields.Add Range:=Selection.Range, _
  Type:=wdFieldFormTextInput
  Loop
  End With
  Selection.HomeKey
End Sub

'[]

Comentanos...!!

Saludos
Monica

Respuesta Responder a este mensaje
#3 Monica May
10/09/2008 - 00:01 | Informe spam
hola,

Primero sustituir los puntos suspensivos de word por ...
Creo un bucle y una cadena de 100 puntos lo susituyo usando tu
metodo por un campo de texto, decremento y busco 99 puntos y así hasta
que sean 3 puntos, que es cuando paro. Funciona bastante bien si
tenemos en cuenta la "chapucilla" que supone el bucle, pero no se me
ocurre otra cosa... en algún caso también quedan dos campos de texto
de formulario juntos manera de buscar dos o mas campos de
texto juntos y sustituirlos por uno solo?



si buscas [ cuatro puntos ] y lo sustituyes [ por 100 puntos ] y luego esos
[100 puntos] los sutitiyes por los [ campos de formulario ] en teoria no
deberian de quedarte dos campos de texto de formulario juntos -?-

puedes ponernos el codigo que ha creado y asi lo miramos - ? -

Y gracias a ti :) !!

Comentanos!!



Saludos
Monica


www.fermu.com
www.teladearana.es
Respuesta Responder a este mensaje
#4 Monica May
10/09/2008 - 00:26 | Informe spam
Ozu que me lio con los puntos :D !!

prueba lo siguiente >>

Sub my_macro()

With Selection.Find
.Text = ".{4,}"
.MatchCase = False
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
Do While .Execute
Selection.FormFields.Add Range:=Selection.Range, _
Type:=wdFieldFormTextInput
Loop
End With
Selection.HomeKey
End Sub

donde esta linea sustituira todo aquello que tenga cuatro o mas de cuatro
puntos >>


.Text = ".{4,}"

ahora sip :)) !!

Saludos
Monica
Respuesta Responder a este mensaje
#5 Monica May
10/09/2008 - 00:41 | Informe spam
y .

esta linea ponla en True >>


.MatchWildcards = True


:) !!

Saludos
Monica
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida