** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Imagen en Word
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoImagen en Word

 Responder Responder
Autor
Mensaje
MayerMayer1 Ver desplegable
Asiduo
Asiduo


Unido: 14/Diciembre/2010
Localización: España
Estado: Sin conexión
Puntos: 254
Enlace directo a este mensaje Tema: Imagen en Word
    Enviado: 21/Abril/2017 a las 11:19
Hola a todos.
Quisiera saber como se puede insertar/vincular, desde Access, una imagen a un Text Box de un Word.
El Word lo creo con combinación de correspondencia, y al abrirlo deseo mostrar una imagen concreta en el recuadro de un Text Box
He intentado hacerlo de la siguiente manera, pero me da error en la primera linea:

AppWord.ActiveDocument.Shapes("Text Box 5").Select
AppWord.Selection.InlineShapes.AddPicture filename:=strImagen, LinkToFile:=False, SaveWithDocument:=True

Me interesa hacerlo en ese Text Box porque está posicionado en un lado de la plantilla, para no trastocar todo el diseño.
Hasta ahora, todos los documentos que he creado me han funcionado bien, hasta que me he topado con esto de las imagenes.

Gracias.
Arriba
OmniPresente Ver desplegable
Colaborador
Colaborador


Unido: 10/Febrero/2009
Localización: España
Estado: Sin conexión
Puntos: 1714
Enlace directo a este mensaje Enviado: 21/Abril/2017 a las 12:03
¿Y el error que te da es...?
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 2744
Enlace directo a este mensaje Enviado: 21/Abril/2017 a las 12:24
Hola.
Pueba de la siguiente manera:

appword.ActiveDocument.Shapes("Cuadro de texto 5").Select
appword.Selection.Range.Select  ''''''nos metemos dentro del cuadro
appword.Selection.InlineShapes.AddPicture FileName:=strImagen, LinkToFile:=False, SaveWithDocument:=True
Suponiendo que Text Box 5 es el nombre del cuadro de texto y que strimagen es una ruta válida de una imagen.
Con las pruebas que he hecho, la cosa ha funcionado ( office 2013)
Espero que ayude a resolver la duda.
Ya comentas.
Un saludo a todos
Arriba
MayerMayer1 Ver desplegable
Asiduo
Asiduo


Unido: 14/Diciembre/2010
Localización: España
Estado: Sin conexión
Puntos: 254
Enlace directo a este mensaje Enviado: 21/Abril/2017 a las 12:27
La expresión al hacer click que ha especificado como valor de la propiedad del evento produjo un error....

A ver, el codigo lo he cogido de una macro de Word, seguramente deba adaptarlo a Access, pero no doy con ello, he probado muchas opciones ya.


Editado por MayerMayer1 - 21/Abril/2017 a las 12:27
Arriba
fcoval Ver desplegable
Habitual
Habitual


Unido: 19/Enero/2013
Estado: Sin conexión
Puntos: 64
Enlace directo a este mensaje Enviado: 21/Abril/2017 a las 12:51
Con toda seguridad que el problema es que estas utilizando un nombre para tu Cuadro de Texto que no es el correcto, me refiero a ese "Cuadro de texto 5".

Averigua primero como se llama tu Cuadro de Texto, para ello puedes abrir el documento Word, te vas a Diseño de página y en panel de selección y miras el nombre REAL.
Arriba
MayerMayer1 Ver desplegable
Asiduo
Asiduo


Unido: 14/Diciembre/2010
Localización: España
Estado: Sin conexión
Puntos: 254
Enlace directo a este mensaje Enviado: 21/Abril/2017 a las 13:25
Gracias prga.
Pongo esas lineas y me da el error que os he puesto, no me deja pasar de la primera linea:

AppWord.ActiveDocument.Shapes("Text Box 5").Select
AppWord.Selection.Range.Select  'nos metemos dentro del cuadro
AppWord.Selection.InlineShapes.AddPicture filename:=strImagen, LinkToFile:=False, SaveWithDocument:=True
Arriba
MayerMayer1 Ver desplegable
Asiduo
Asiduo


Unido: 14/Diciembre/2010
Localización: España
Estado: Sin conexión
Puntos: 254
Enlace directo a este mensaje Enviado: 21/Abril/2017 a las 13:32
fcoval, no logro ver donde está el panel de seleccion dentro de diseño de pagina.

De todas formas, al hace run macro en word y pincha dentro del cuadro de texto, en la macro me dice que es "Text Box 5"


Editado por MayerMayer1 - 21/Abril/2017 a las 13:32
Arriba
fcoval Ver desplegable
Habitual
Habitual


Unido: 19/Enero/2013
Estado: Sin conexión
Puntos: 64
Enlace directo a este mensaje Enviado: 21/Abril/2017 a las 13:32
Function MeterImagenDentroDeWord()


Dim strSourceFile As String
strSourceFile = "D:\temp\Prueba.docx"


'---Necesaria la referencia a Microsoft Word 14.0 Object Library
Dim objWord As Word.Application
Dim objWordDoc As Word.Document


     Set objWord = CreateObject("Word.Application")
     objWord.Visible = True
     
     Set objWordDoc = objWord.Documents.Open(strSourceFile)
    
    '-- Para introducir una Imagen dentro de un Cuadro de Texto en concreto (Para saber su nombre, en Word - Diseño de página - Panel de Selección)
    ActiveDocument.Shapes("Cuadro de texto 1").Select
    Selection.Range.Select
    Selection.InlineShapes.AddPicture FileName:="D:\logo.jpg", LinkToFile:=False, SaveWithDocument:=True

     
objWordDoc.Save
       
objWordDoc.Close True
objWord.Quit wdDoNotSaveChanges

Set objWordDoc = Nothing
Set objWord = Nothing


End Function
Arriba
fcoval Ver desplegable
Habitual
Habitual


Unido: 19/Enero/2013
Estado: Sin conexión
Puntos: 64
Enlace directo a este mensaje Enviado: 21/Abril/2017 a las 13:35
Adapta el código que te he puesto que tiene que funcionar
Arriba
fcoval Ver desplegable
Habitual
Habitual


Unido: 19/Enero/2013
Estado: Sin conexión
Puntos: 64
Enlace directo a este mensaje Enviado: 21/Abril/2017 a las 13:52
Bueno, y por si se asoma Xavi y que no me eche la bronca, te pongo el código SIN necesidad de tener una referencia a la librería de Word 14.0 object.
Cambia y pon las rutas correctas a tu fichero Word e imagen a insertar
______________________________________________________

Function MeterImagenDentroDeWord()


Dim strSourceFile As String
strSourceFile = "D:\temp\Prueba.docx"


'---SIN Referencia a Microsoft Word 14.0 Object Library
Dim objWord As Object
Dim objWordDoc As Variant


     Set objWord = CreateObject("Word.Application")
     objWord.Visible = True
     
     Set objWordDoc = objWord.Documents.Open(strSourceFile)
    
   
    objWordDoc.Shapes("Text Box 5").Select
    objWord.Selection.Range.Select
    objWord.Selection.InlineShapes.AddPicture FileName:="D:\logo.jpg", LinkToFile:=False, SaveWithDocument:=True
    
      
objWordDoc.Save
       
objWordDoc.Close True
objWord.Quit wdDoNotSaveChanges

Set objWordDoc = Nothing
Set objWord = Nothing


End Function

Arriba
MayerMayer1 Ver desplegable
Asiduo
Asiduo


Unido: 14/Diciembre/2010
Localización: España
Estado: Sin conexión
Puntos: 254
Enlace directo a este mensaje Enviado: 21/Abril/2017 a las 13:58
Ya está.
Os cuento lo que pasaba.
Yo lo que hago es abrir la plantilla con la combinación con correspondencia y hago una copia de dicha plantilla, cierro la plantilla padre y trabajo sobre la copia. ¿Qué pasaba?, que el cuadro de texto en la plantilla padre se llama "Text Box 5", y en la copia se crea como "Text Box 3". Se cambia el numero al hacer copia de la plantilla.

Bueno, mientras funcione con Text Box 3, me vale.

Graciassss Clap


Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 2744
Enlace directo a este mensaje Enviado: 21/Abril/2017 a las 14:02
Hola.
Otra forma, mas chapucera pero efectiva, de saber el nombre de un cuadro de texto pasa por:
1º.- Nos vamos al documento word y seleccionamos el cuadro de texto.
2º.-Abrimos el VBA del word y en un procedimiento cualquiera ponemos el siguiente código:
MsgBox (Selection.ShapeRange(1).Name)
Al ejecutarlo nos dará el nombre del cuadro seleccionado
Otra cosa, tienen tratamiento diferente sí el cuadro de texto está en el cuerpo del documento o en el encabezado o en el pié.
Espero que ayude.
Un saludo atodos
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable