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-20T10:42:41+00:00

    ok.

    riprovo e ti faccio sapere.

    grazie

    0 commenti Nessun commento
  2. Anonimo
    2015-11-20T18:40:07+00:00

    Niente, non riesco a farla girare.

    BOH!

    0 commenti Nessun commento
  3. Anonimo
    2015-11-20T21:39:36+00:00

    Scrivi qui:

    maurogsc

    chiocciola

    alice.it

    Ti mando (lunedì) un esempio.

    0 commenti Nessun commento
  4. Anonimo
    2015-11-21T08:11:01+00:00

    Grazie mille Mauro!

    A lunedi

    0 commenti Nessun commento
  5. Anonimo
    2015-11-22T08:41:18+00:00

    caro mauro,

    in attesa di vedere il tuo esempio ho perso qualche ora e ho modificato leggermente la tua macro e adesso mi pare che giri.

    Secondo me comunque ho fatto un po' di casino alla fine della macro, tra i close e open (riga 18, 19 e 20: non sono un tecnico ma un autodidatta).

    In questa maniera comunque word resta aperto, anche se non in primo piano, per consentirmi le opportune modifiche prima di salvare con nome definitivamente.

    Mi piacerebbe avere comunque word in primo piano al termine della macro.

    Ti allego le modifiche.

    Cosa ne pensi?

    1 Dim objWord As Object

       2  Dim objDoc As Object

       3 Dim sPath As String

       4 Dim sNomeFile As String

       5 Dim sh As Worksheet

        6 Set sh = ThisWorkbook.Worksheets("stampa")

        7 sPath = "C:\Prova"

        8 sNomeFile = "dati.docx"

        9 With sh

         10 Set objWord = CreateObject("Word.Application")

    11    If Dir(sPath) <> "" Then

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

       13      .Range("c1:f20").Copy

       14     objDoc.Bookmarks("Pippo").Range.Paste

       15    .Range("e40:i60).Copy

       16   objDoc.Bookmarks("Pluto").Range.Paste

    17  Application.CutCopyMode = False

    18 'objDoc.Close

       19  'Set objDoc = Nothing

       20 objWord.Documents.Open (sPath & sNomeFile)

             End If

    End With

        End Sub

    0 commenti Nessun commento