Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

vba excel copiare tabelle e grafici su word

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

vba excel copiare tabelle e grafici su word

Postdi macio66 » 30/01/17 19:16

Buonasera
Immaginefree image upload

Giornalmente devo creare dei report usando tabelle e grafici, che prelevo da un file excel (immagine salvata).
per le tabelle uso questo codice:

Sub Copia_tabella_in_Word()
Dim tabella As Range
Dim percorso As String
Dim Rng As Object

'percorso e nome del file Word
percorso = "F:\REPORT FDGS\Modello.doc"

'dati da copiare
Set tabella = [a1].CurrentRegion
tabella.Copy

Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Open(percorso)

'imposto il riferimento al segnalibro
Set Rng = wrdDoc.Bookmarks("TabellaA").Range

tabella.Copy
Rng.PasteSpecial Link:=False, DataType:=wdPasteText, _
Placement:=wdInLine, DisplayAsIcon:=False

'salvo e chiudo il file Word
wrdApp.ActiveDocument.Save
wrdApp.Quit
End Sub

Ovviamente ho ripetuto questo codice sia per la TabellaA1, TabellaB e TabellaB1.
Invece per i grafici uso questo codice:
Sub Copia_grafico_in_Word()
ActiveSheet.ChartObjects("Grafico A").Activate
ActiveChart.PlotArea.Select
ActiveChart.ChartArea.Copy
Set WordApp = CreateObject("Word.Application")
sFILENAME = "F:\REPORT FDGS\Modello.doc"
WordApp.Visible = True
If sFILENAME = "False" Then Exit Sub
With WordApp.Documents.Open(sFILENAME)
.Bookmarks("GraficoA").Range.Paste
End With
Set WordApp = Nothing

End Sub

Anche questo ripetuto per il GraficoB.
I segnalibri che ho creato sul file word sono:
1 "TabellaA"
2 "TabellaA1"
3 "TabellaB"
4 "TabellaB1"
5 "GraficoA"
6 "GraficoB"

Come sempre il risultato c'è, ma la forma lascia parecchio a desiderare.
E' possibile avere l'inserimento in un unico codice?
Grazie
macio66
Utente Senior
 
Post: 145
Iscritto il: 13/06/13 14:59

Sponsor
 

Re: vba excel copiare tabelle e grafici su word

Postdi patel » 30/01/17 21:15

se la tabella A si trova in A1 dove stanno le altre tabelle ?
per riunire le sub sopra citate puoi fare così
Codice: Seleziona tutto
Sub Copia_tabella_grafico_in_Word()
percorso = ThisWorkbook.Path & "\TabellaGrafico.docx"
Set tabella = [a1].CurrentRegion
tabella.Copy
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Open(percorso)
Set Rng = wrdDoc.Bookmarks("Tabella1").Range
Rng.PasteSpecial Link:=False, DataType:=wdPasteText, _
Placement:=wdInLine, DisplayAsIcon:=False
ActiveSheet.ChartObjects("Grafico 2").Activate
ActiveChart.PlotArea.Select
ActiveChart.ChartArea.Copy
wrdDoc.Bookmarks("Grafico1").Range.Paste
Set WordApp = Nothing
End Sub
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: vba excel copiare tabelle e grafici su word

Postdi patel » 30/01/17 21:32

ovviamente
percorso = "F:\REPORT FDGS\Modello.doc"
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: vba excel copiare tabelle e grafici su word

Postdi macio66 » 30/01/17 21:54

Ciao patel
Innanzitutto grazie per il tuo interessamento, domani provo il codice da te postato.
Le tabelle sono posizionate proprio come le vedi nell'immagine:
TabellaA - A1
TabellaA1 - P3
TabellaB - D1
TabellaB1 - P22
Ti chiedo ancora una cosa. In H1 c'è il nome con cui salvo il report dopo averlo riaperto. E' possibile usarlo direttamente nel codice, per salvare il file word in automatico, dopo aver inserito le tabelle e i grafici?
Grazie
macio66
Utente Senior
 
Post: 145
Iscritto il: 13/06/13 14:59

Re: vba excel copiare tabelle e grafici su word

Postdi patel » 31/01/17 10:59

Codice: Seleziona tutto
Sub Copia_tabella_grafico_in_Word()
percorso = "F:\REPORT FDGS\Modello.doc"
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Open(percorso)
Set Rng = wrdDoc.Bookmarks("TabellaA").Range
Set tabella = [a1].CurrentRegion
tabella.Copy
Rng.PasteSpecial Link:=False, DataType:=wdPasteText, _
Placement:=wdInLine, DisplayAsIcon:=False

Set Rng = wrdDoc.Bookmarks("TabellaA1").Range
Set tabella = [P3].CurrentRegion
tabella.Copy
Rng.PasteSpecial Link:=False, DataType:=wdPasteText, _
Placement:=wdInLine, DisplayAsIcon:=False

Set Rng = wrdDoc.Bookmarks("TabellaB").Range
Set tabella = [D1].CurrentRegion
tabella.Copy
Rng.PasteSpecial Link:=False, DataType:=wdPasteText, _
Placement:=wdInLine, DisplayAsIcon:=False

Set Rng = wrdDoc.Bookmarks("TabellaB1").Range
Set tabella = [P22].CurrentRegion
tabella.Copy
Rng.PasteSpecial Link:=False, DataType:=wdPasteText, _
Placement:=wdInLine, DisplayAsIcon:=False

ActiveSheet.ChartObjects("Grafico A").Activate
ActiveChart.PlotArea.Select
ActiveChart.ChartArea.Copy
wrdDoc.Bookmarks("GraficoA").Range.Paste

ActiveSheet.ChartObjects("Grafico B").Activate
ActiveChart.PlotArea.Select
ActiveChart.ChartArea.Copy
wrdDoc.Bookmarks("GraficoB").Range.Paste
Set WordApp = Nothing
End Sub

controlla i nomi perché potrebbero esserci errori
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: vba excel copiare tabelle e grafici su word

Postdi macio66 » 31/01/17 18:38

Ciao patel
Lo controllo, ma a prima vista mi sembra corretto.
Grazie e buona serata.
macio66
Utente Senior
 
Post: 145
Iscritto il: 13/06/13 14:59


Torna a Applicazioni Office Windows


Topic correlati a "vba excel copiare tabelle e grafici su word":


Chi c’è in linea

Visitano il forum: Nessuno e 37 ospiti