** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Aplicar formato en una hoja de word activa
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoAplicar formato en una hoja de word activa

 Responder Responder
Autor
Mensaje
valejos Ver desplegable
Habitual
Habitual


Unido: 02/Agosto/2014
Localización: Nicaragua
Estado: Sin conexión
Puntos: 106
Enlace directo a este mensaje Tema: Aplicar formato en una hoja de word activa
    Enviado: 27/Septiembre/2017 a las 23:01
Buenas tardes, tengo una pequeña aplicación en acces y quisiera desde un formulario aplicar un formato en una hoja activa de word, podría colaborarme en indicarme como se hace.
Esto es lo que quiero ejecutar en word desde access, saludos

'
' Párrafo Macro

    With Selection.ParagraphFormat
        .LeftIndent = CentimetersToPoints(0)
        .RightIndent = CentimetersToPoints(0)
        .SpaceBefore = 0
        .SpaceBeforeAuto = False
        .SpaceAfter = 8
        .SpaceAfterAuto = False
        .LineSpacingRule = wdLineSpaceExactly
        .LineSpacing = 28.2
        .Alignment = wdAlignParagraphJustify
        .WidowControl = True
        .KeepWithNext = False
        .KeepTogether = False
        .PageBreakBefore = False
        .NoLineNumber = False
        .Hyphenation = True
        .FirstLineIndent = CentimetersToPoints(0)
        .OutlineLevel = wdOutlineLevelBodyText
        .CharacterUnitLeftIndent = 0
        .CharacterUnitRightIndent = 0
        .CharacterUnitFirstLineIndent = 0
        .LineUnitBefore = 0
        .LineUnitAfter = 0
        .MirrorIndents = False
        .TextboxTightWrap = wdTightNone
'        .CollapsedByDefault = False
    End With
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3135
Enlace directo a este mensaje Enviado: 28/Septiembre/2017 a las 12:23
Hola.
Algunas dudas:
1ª.-En un principio esa macro solo cambia el formato del párrafo/s seleccionado/s .¿es así o se quiere cambiar el formato del documento entero?
2ª.- ¿Es un documento nuevo en blanco o es un documento ya existente?
3ª.-Se dice 'en una hoja activa de word', lo que presupone que el documento está abierto. ¿Es correcto?
4ª.-¿Qué versión de office se usa?
Ya comentas.
Un saludo a todos
Arriba
valejos Ver desplegable
Habitual
Habitual


Unido: 02/Agosto/2014
Localización: Nicaragua
Estado: Sin conexión
Puntos: 106
Enlace directo a este mensaje Enviado: 28/Septiembre/2017 a las 14:02
Hola colaborador prga:
1ª.- Quiero cambiar el formato del documento entero, realmente pretendo cambiar varias cosas, tales como, tipo de página, texto, párrafo, margen y poner una forma rectangular en una posición especifica, todo lo tengo en córdigo mediante el ayudante para macro de word
2ª.- El formato será aplicado tanto para documento nuevo como ya existente
3ª.-Es correcto el documento estará abierto
4ª.-Tengo Office 2016
Saludos
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3135
Enlace directo a este mensaje Enviado: 28/Septiembre/2017 a las 18:33
Hola.
Primero que nada, no puedo hacer pruebas con el 2016( uso el 2013), pero una forma de resolver el problema, al menos en el 2013, pasa por:
1º.-Tener guardadas las macros en los documentos o plantillas word
2º.-Tener abierto en el word, como se dice, el documento y sólo ese documento y habilitadas las macros
3º.-En el código del formulario colocar algo parecido a:

Dim mword As Object
Set mword = GetObject(, "word.application")
mword.Application.Run "macro1"
doevents
mword.Application.Run "macro2"
doevents
........
........
Set mword = Nothing

Otra forma de resolver el problema pasa por tener el código (algo modificado) de las macros word en el procedimiento del formulario y los words sin macros.
Sí se tienen varios docs abiertos simultáneamente, habrá que recorrer la colección de documentos y activar/seleccionar el adecuado en cada caso.
De todas formas, en el foro hay abundante documentación al respecto ( buscar por el término ---word.application--- para cualquier fecha)
Espero que ayude a resolver las dudas
Ya comentas.
Un saludo a todos


Editado por prga - 28/Septiembre/2017 a las 18:34
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 11824
Enlace directo a este mensaje Enviado: 28/Septiembre/2017 a las 20:15
Yo creo que la opción es automatización:

Saber el documento a abrir
Instanciar Word
Abrir el documento y aplicar el formateo.
Salvar el documentto

' Requiere marcar la referencia a Microsoft Word

Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document

Set wrdApp = CreateObject("Word.Application")
Set wrdDoc = wrdApp.Documents.Open(strPathOutput)

' Aqui el código "automatizado"
' algo así:
With wrdApp.Selection.ParagraphFormat
  .LeftIndent = CentimetersToPoints(0)
  .RightIndent = CentimetersToPoints(0)
' etc
End With

wrdDoc.Close True
Set wrdDoc = Nothing
wrdApp.Quit 0
Set wrdApp = Nothing

Escrito del tiron
Xavi, un minyó de Terrassa

Mi web
Arriba
valejos Ver desplegable
Habitual
Habitual


Unido: 02/Agosto/2014
Localización: Nicaragua
Estado: Sin conexión
Puntos: 106
Enlace directo a este mensaje Enviado: 28/Septiembre/2017 a las 20:27
Estoy tratando de aplicar, por consiguiente estoy probando ambas respuestas de prga y xavi, se que ambos son de mucha experiencia, y verdaderamente hasta aquí me ha ayudado.
xavi en tu código me da el "error de compilación no se ha definido el tipo definido por el usuario"

Estoy haciendo mi esfuerzo en estudiar la lógica para interpretarla
Les daré noticia...
Arriba
valejos Ver desplegable
Habitual
Habitual


Unido: 02/Agosto/2014
Localización: Nicaragua
Estado: Sin conexión
Puntos: 106
Enlace directo a este mensaje Enviado: 30/Septiembre/2017 a las 05:48
Prga me ha servido tu respuesta, cree todas las macros en word y con tu código pude ejecutarla.
Pueden cerrar el hilo
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable