• Domingo 22 de Diciembre de 2024, 13:09

Autor Tema:  Propiedad Overtype  (Leído 1069 veces)

javirues

  • Miembro activo
  • **
  • Mensajes: 46
    • Ver Perfil
Propiedad Overtype
« en: Jueves 5 de Febrero de 2004, 10:47 »
0
Buenos dias  amigos:
    Estoy intentando escribir unos textos en un documento word y para ello necesito que este activo el modo SOB(sobreescribir), para que no se me desplacen las posiciones prefijadas en una plantilla, el problema parte de que estoy comprobando que no funciona ese modo y no se si es por en mal funcionamiento del API o por un error mio de codigo que no controlo.

   El ejemplo seria rellenar las siguientes posiciones.
   Nombre:                           Descripcion:                                  

Para ello ejecuto lo siguiente:
With Application      
       If .Options.Overtype = False Then
            .Options.Overtype = True
       End If
       .Selection.GoTo What:=wdGoToBookmark, Name:="Nombre"
       .Selection.TypeText Text:="Valor del Nombre"
       .Selection.GoTo What:=wdGoToBookmark, Name:="Descripcion"
       .Selection.TypeText Text:="Valor de la Descripcion"
end with
Al debugar compruebo que el valor de Overtype es False y parece cambiarlo bien a True, pero cuando salvo el documento las posiciones del literal Descripcion se han desplazado a la derecha, es decir no ha sobrescrito.
El tema es que las posiciones por el formato del informe no pueden variar(manias de clientes) y no veo deonde esta el error.

Muchas gracias por adelantado.

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Propiedad Overtype
« Respuesta #1 en: Jueves 5 de Febrero de 2004, 15:11 »
0
Hola javirues.

Probando, probando con las macros y el editor de vba del Word, de la única forma en que conseguí por código activar y desactivar la opción de sobreescribir, fue estableciendo la propiedad OverType del objeto Options miembro del objeto Application, miembro del objeto Document activo... es decir, el código queda en word tal que así:

ThisDocument.Application.Options.Overtype = True

, o sea, yo probaría poniendo esto:

With Application
   If Not .ActiveDocument.Application.Options.Overtype Then
       .ActiveDocument.Application.Options.Overtype = True
   End If
.
.
.

Pues eso, ya contarás como te fue.

Suerte.