Condividi tramite

macro excel per copiare 2 tabelle in word

Anonimo
2015-11-19T17:47:35+00:00

Ho un problema:

ho 2 tabelle excel da copiare in word con una macro.

Il documento WORD ha un foglio con orientamento verticale in cui devo copiare la prima tabella che può anche occupare più pagine, il successivo diviso dal primo con interruzione di sezione-pagina successiva ha orientamento orizzontale e in questo devo copiare la seconda tabella.

Quindi devo far partire una macro di word per formattare le 2 tabelle.

Questo è il codice che ho scritto:

Sheets("stampa").Select

    Range("c3:e338").Activate

    Selection.Copy

    Set wd = CreateObject("Word.Application")

    wd.Visible = True

    wd.Documents.Open Filename:="c:\casistica.docx"

    wd.Selection.Paste

Sheets("stampa").Select

    Range("c371:j601").Activate

    Selection.Copy

    wd.Visible = True

wd.Selection.Paste

    Sheets("stampa").Select

    Range("a1").Select

   'per annullare la selezione della copia

  wd.Visible = True

End Sub

Nonostante porti in word il cursore ad una riga oltre la prima tabella mi incolla le 2 tabelle.

Cosa mi manca?

La macro word invece è questa:

Sub casistica()

'

' casistica Macro

'

   Selection.Tables(1).Select

    Selection.Rows.HeightRule = wdRowHeightAtLeast

    Selection.Rows.Height = CentimetersToPoints(0.04)

Selection.Tables(2).Select

    Selection.Rows.HeightRule = wdRowHeightAtLeast

    Selection.Rows.Height = CentimetersToPoints(0.04)

End Sub

Ovviamente mi formatta solo la prima tabella e solo se il cursore è al suo interno, altrimenti mi segnala errore

Grazie in anticipo per l'aiuto. Mauro

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
{count} voti

10 risposte

Ordina per: Più utili
  1. Anonimo
    2015-11-19T18:18:46+00:00

    Capito poco.

    Io per fare una cosa del genere metterei due segnalibri in word e quindi *mirerei* ai due segnalibri direttamente da Excel. Questo codice, ad esempio, apre un file di Word e copia/incolla le due tabelle nei relativi segnalibri:

    Public Sub m()

    On Error GoTo RigaErrore

        Dim objWord As Object

        Dim objDoc As Object

        Dim sPath As String

        Dim sNomeFile As String

        Dim sh As Worksheet

        Set sh = ThisWorkbook.Worksheets("Foglio1")

        sPath = "C:\Prova"

        sNomeFile = "mioFile.docx"

        With sh

        Set objWord = CreateObject("Word.Application")

            If Dir(sPath) <> "" Then

                Set objDoc = objWord.Documents.Open(sPath & sNomeFile)

                .Range("A1:B10").Copy

                objDoc.Bookmarks("Pippo").Range.PasteSpecial

                .Range("D5:E10").Copy

                objDoc.Bookmarks("Pluto").Range.PasteSpecial

                 Application.CutCopyMode = False

                objDoc.Close

                Set objDoc = Nothing

            End If

        End With

    RigaChiusura:

        If Not objWord Is Nothing Then

            objWord.Quit

            Set objWord = Nothing

        End If

        Exit Sub

    RigaErrore:

        MsgBox Err.Number & vbNewLine & Err.Description

        Resume RigaChiusura

    End Sub

    In grassetto i riferimenti utilizzati nelle mie prove.

    L'eventuale formattazione delle tabelle in Word, la fare sempre dalla stessa macro prima di chiudere il documento di Word.

    0 commenti Nessun commento
  2. Anonimo
    2015-11-19T22:18:52+00:00

    Caro Mauro,

    ho utilizzato i tuoi dati. Ho creato un nuovo documento word dal nome miofile nella directory c:\prova, ma mi fornisce un errore:

    5941 il membro richiesto dell'insieme non esiste

    in cosa sbaglio?

    0 commenti Nessun commento
  3. Anonimo
    2015-11-20T07:54:16+00:00

    Tu, hai creato i due segnalibri in Word nella posizione dove vuoi vengano incollate le tabelle?

    0 commenti Nessun commento
  4. Anonimo
    2015-11-20T10:12:26+00:00

    Si. Dal menu inserisci ho inserito segnalibro Pippo nella prima pagina e Pluto nella seconda.

    Ti dirò che ho riprovato più volte. Una volta ha funzionato, l'altra invece si è bloccato, altre volte mi ha dato lo stesso codice di errore.

    La volta che ho aperto il file mi dice che è protetto da scrittura e che è in sola lettura.

    Non riesco a capire il motivo.

    Cosa ne pensi?

    Grazie ancora

    0 commenti Nessun commento
  5. Anonimo
    2015-11-20T10:36:46+00:00

    Senza essere li da te, difficile rispondere.

    Qui il codice copia le due tabelle nella posizione segnata dai segnalibri di Word. Ovviamente va eseguito una volta sola o ricopia ogni volta le tabelle.

    Controlla che non ci siano processi di Word rimasti aperti. Il codice postato chiude il processo aperto con la RigaChiusura ed il codice che segue.

    0 commenti Nessun commento