Pasar datos de un formulario a una hoja de Word

Pasar datos de un formulario de vba a un documento de word el formulario esta en word y el documento en la misma hoja.

Es parte de un documento los de color rojo es los que quiero cambiar constante mente con este código los cambio pero me borra los campos:

los campo los doy  de alta con marcador:

Cada ves que los cambio se borran los campos.

1 respuesta

Respuesta
1

Después de "rellenar" el marcador, vuelva a crearlo.

Algo así como:

Dim oMarcador As Object
Dim oRange As Object
Set oMarcador = ThisDocument.Bookmarks("ElMarcador")
oRange = oMarcador.Range
oRange.Text = "El valor"
ORange. Bookmarks. Add("ElMarcador")

Por supuesto, pueden encapsularlo en un procedimiento al que le pasa el nombre del marcador y el valor que quiere escribir en él, de manera que no tenga que repetir el proceso para cada dato.

Gracias por su respuesta pero no le hayo como adaptarlo  al código.

Cree un procedimiento como:

Private Sub Rellenar(ByVal strMarcador As String, ByVal strValor As String)
    Dim oMarcador As Bookmark
    Dim oRange As Range
    Set oMarcador = ThisDocument.Bookmarks(strMarcador)
    oRange = oMarcador.Range
    oRange.Text = strValor
    oRange.Bookmarks.Add (strMarcador)
End Sub

Y después lo usa:

Private Sub CommandButton1_Click()
    Rellenar "ciudad", UserForm1. TextBox1
    Rellenar "hora", UserForm1. TextBox2
    Rellenar "dia", UserForm1. TextBox3
    Rellenar "nombre", UserForm1. TextBox4
    Rellenar "categoria", UserForm1. TextBox5
End Sub

¡Gracias! Muchas gracias: funciona al cien.

GRACIAS POR SU TIEMPO PARA PODER AYUDAR A LOS DE MÁS CON NUESTRAS DUDAS.

EN ESTA PARTE ME MARCABA ERROR:  oRange = oMarcador.Range.

pero lo soluciones con un:  set  oRange = omarcador.Range.

Por si alguien le llega a usar el este código.

Gracias.


                    

"EN ESTA PARTE ME MARCABA ERROR:  oRange = oMarcador.Range."

Correcto. Hace ya muchos años que trabajo más con VB.Net que con VB o VBA. Y el código lo escribí de memoria, sin compilar y desde luego sin probar.
Pero lo importante era la idea ☺️

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas