Abrir un documento de Word desde un código VBA

Arnaud T -  
 Arnaud T -
Hola,

Me gustaría hacer un programa VBA que abra un archivo de Word presente en la carpeta del archivo de Excel en curso. (os ahorro el resto del código aún en desarrollo)

Mi código es el siguiente:
Dim objWord As New Word.Application
CheminFichier = ThisWorkbook.Path
strFichier = CheminFichier & "\" & "MÉMOIRE TECHNIQUE - Vierge.docx"
objWord.Documents.Open strFichier

El problema es que al ejecutar la macro, no pasa nada, aparte de que aparece un proceso WINWORD.EXE en el administrador de tareas...

Si vuelvo a ejecutar la macro, aparece una aplicación "Archivo en uso" en el administrador de tareas; al hacer clic sobre ella me dice que el archivo está bloqueado para modificación.

¿Alguna idea?

Gracias de antemano a todos.

Configuración: Windows 7 / Chrome 47.0.2526.111

6 respuestas

  1. cs_Le Pivert Mensajes publicados 8437 Estado Colaborador 730
     
    Hola a ustedes dos,

    vean esto:

    http://www.info-3000.com/vbvba/automation.php

    --
    @+ Le Pivert
    0
    1. Arnaud T
       
      Hola El Gueco,

      ¡Funciona perfectamente, muchas gracias!
      0
    2. Arnaud T
       
      Pregunta extra:

      Con InlineShapes.AddPicture, añado una imagen en mi Word. Mi código funciona, pero para ir más allá me gustaría añadir un archivo Excel o PDF como imagen en mi Word.

      ¿Alguna idea?

      ¡Gracias de antemano!
      0
  2. cs_Le Pivert Mensajes publicados 8437 Estado Colaborador 730
     
    ¿Quieres hablar del icono de Excel o PDF para poner en Word?

    --
    @+ El Pivert
    0
    1. Arnaud T
       
      No, directamente el Excel o el PDF en forma de imagen (para poder imprimirlo en formato papel, este documento servirá como memoria técnica para enviar en nuestras respuestas a licitaciones).

      De hecho, mi programa, en general, hace lo siguiente:

      Al abrir Excel, todos los nombres de mis subcarpetas aparecen en la columna B (por ejemplo, el nombre del material que utilizamos, las fichas de puestos utilizadas, etc.) lo que representa unas cien subcarpetas aproximadamente.

      Luego, basta marcar las casillas de la columna A para las subcarpetas que desea incorporar a su memoria técnica. Cuando hace clic en un botón, la macro se ejecuta y permite:
      - Abrir la memoria técnica en blanco (con el diseño).
      - Insertar las imágenes/archivos Excel/PDF presentes en las subcarpetas marcadas en el Word (creé marcadores para indicar dónde insertar mis imágenes).

      Sólo queda imprimir el dossier para enviarlo por correo.

      Así que por el momento todo funciona, logro incorporar las imágenes, pero me gustaría insertar, por ejemplo, un PDF o un archivo Excel en forma de imagen.

      ¡Gracias!
      0
  3. cs_Le Pivert Mensajes publicados 8437 Estado Colaborador 730
     
    Para los PDFs la imagen se coloca en el portapapeles, solo tienes que pegarla en tu documento de Word:

    http://www.infocom21.net/spip.php?article44

    Para Excel puedes hacer una captura de pantalla de tu hoja

    --
    @+ El Pivert
    0
    1. Arnaud T
       
      ¿No existe ningún comando como:
      InlineShapes.AddPicture(FichierImage, False, True)
      ?
      0
  4. cs_Le Pivert Mensajes publicados 8437 Estado Colaborador 730
     
    Si guardas la imagen obtenida así puedes usarla.

    --
    @+ El Pivert
    0
    1. Arnaud T
       
      Entonces en mi carpeta solo deben haber imágenes, ¿no?
      Pensé en algo como InlineShapes.AddPDF (mis compañeros no son expertos en informática y quiero crear una carpeta evolutiva, donde solo tengan que poner sus documentos sin tener que guardar solo JPG)
      0
  5. cs_Le Pivert Mensajes publicados 8437 Estado Colaborador 730
     
    Después de haber puesto la imagen en el portapapeles, puedes pegarla; así evitas guardarla:

    http://www.faqword.com/index.php/word/tutos/toutes-versions/136-le-presse-papiers-office

    --
    @+ El Pivert
    0
    1. Arnaud T
       
      ¡Maldita sea, acabo de entender!
      En realidad, la manipulación a hacer sería:
      En el caso de PDF: poner la imagen en el portapapeles y pegarla en mi Word
      En el caso de Excel: hacer una captura de pantalla de Excel y insertarla en mi Word.

      Muchas gracias de todos modos, voy a intentar todo eso :)
      0