Cominciamo dal foglio Excel; suggerisco che la tabella sia dichiarata "Tabella" gia' in fase di progettazione; questo semplifica il suo indirizzamento, visto che si potra indirizzarla come ListObjects sapendo le coordinate di una sua cella (es A1, che contiene una intestazione). In XL2010 si crea una tabella con Menu /tab Inserisci /Tabella (in gruppo Tabelle).
Andiamo sul foglio Word: crealo, mettici i preamboli; dove vuoi mettere poi la tabella excel inserisci un segnalibro che io ho chiamato "pippo". Salta una riga e mettici i postamboli e i saluti di rito. Salva il file.
Poi nel foglio Excel ho usato questa macro:
- Codice: Seleziona tutto
Sub dylanexp()
Dim myWD As Object, myWFile As String, myTab As Range
'
myWFile = "forDYLAN_B40504.docm" '<<< Il nome del file Doc
'
Set myWD = CreateObject("Word.Application")
myWD.Visible = True
myWD.documents.Open (ThisWorkbook.Path & "\" & myWFile)
'Warning:
'CANCELLA TUTTE LE TABELLE nel DOC !!!
With myWD
For I = 1 To .activedocument.Tables.Count
.activedocument.Tables(I).Delete
Next I
End With
'
With myWD
.Selection.GoTo What:=(-1), Name:="pippo"
.Selection.Find.ClearFormatting
With .Selection.Find 'Non so se serve, e' stata prodotta dal Registratore
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
End With
'
Sheets("Foglio3").Select '<<< Il tuo Foglio nel file Excel
'
Range("A2").ListObject.Range.AutoFilter Field:=2, Criteria1:= _
">0", Operator:=xlOr, Criteria2:="<0"
Range("A2").ListObject.Range.SpecialCells(xlCellTypeVisible).Copy
'
'Copia in word
myWD.Selection.PasteExcelTable False, True, False
Application.CutCopyMode = False
'
'ORA CHE BISOGNA FARE DEL DOCUMENTO? Salva? SalvaConNome?
'
End Sub
Ci sono due istruzioni marcate <<< che vanno personalizzate; poi puoi provare a lanciare la macro, che esegue le seguenti cose:
-crea una nuova sessione Word
-la usa per aprire il documento di partenza
-CANCELLA TUTTE LE TABELLE presenti nel documento
-prende la tabella a cui appariene la cella A2 e la filtra per colonna B <> 0
-copia la tabella filtrata e la incolla all' interno del documento di partenza
La macro lascia il documento cosi' compilato, aperto nella sessione di Word; altre istruzioni potrebbero essere aggiunte sapendo cosa andrebbe fatto a questo punto; ad esempio salvando il file con un nome prelevato da una cella Excel...
Confesso che non mi e' chiaro il processo completo, "spero" che quanto prodotto, comunque a livello prototipale, sia di qualche utilita'.
Ciao