Excel e gli applicativi Microsoft Office Copiare immagini da Excel a Word con VBA

Login Registrati
Stai vedendo 2 articoli - dal 1 a 2 (di 2 totali)
  • Autore
    Articoli
  • #19751 Score: 0 | Risposta

    Stefania

      Buongiorno. Sto scrivendo una macro per copiare le immagini da un foglio Excel a un word di mia scelta ("Pippo2"). Il problema che ho attualmente con il codice è che, invece di copiare le immagini una sotto l'altra, le sovrascrive e quindi alla fine mi rimane una sola immagine nel word. Metto il codice che ho scritto. Qualcuno può aiutarmi? Grazie mille 🙂

      Dim xPic As Picture
      Dim WordApp As Object
      Sub sposta()
      'Questa macro prende i grafici/immagini su un certo foglio e lo incolla in un foglio word specifico

      For Each xPic In ActiveSheet.Pictures
          xPic.Select
          Selection.Copy
         
         
          On Error Resume Next
          Set WordApp = GetObject(, "Word.application")    'gives error 429 if Word is not open
          If Err = 429 Then
              Set WordApp = CreateObject("Word.application")    'creates a Word application
              Err.Clear
          End If
             
          fileword = "C:\Users\szuttion\Desktop\Pippo2.docx"
          WordApp.Visible = True
          If fileword = "False" Then Exit Sub
          With WordApp.Documents.Open(fileword)
                .Content.InsertAfter vbCr
                .Range.Paste
               
             
          End With
         
         
          Set WordApp = Nothing
         
      Next
      End Sub

      #19767 Score: 0 | Risposta

      vecchio frac
      Senior Moderator
        246 pts

        E' la struttura della macro che è fondamentalmente sbagliata, per esempio (ne dico una)  nel ciclo For Each non dovresti creare l'oggetto Word e successivamente distruggerlo. E' molto inefficiente e dispendioso.

        Succede quello che lamenti perchè la selezione rimane sempre fissa anche se ti sembra di aver impostato un ritorno a capo (col documento Word aperto, nel suo .Range, fai un .Paste).

        La logia della macro deve essere:

        - creo l'oggetto Word

        - apro il documento Word

        - avvio un ciclo che scandisce le immagini del foglio e:

        - incollo immagine in Word

        - sposto la selezione di Word in basso

        - chiudo il ciclo.

      Login Registrati
      Stai vedendo 2 articoli - dal 1 a 2 (di 2 totali)
      Rispondi a: Copiare immagini da Excel a Word con VBA
      Gli allegati sono permessi solo ad utenti REGISTRATI
      Le tue informazioni: