Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Creazione Modulo in Word Basato su Excel

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

Creazione Modulo in Word Basato su Excel

Postdi Dylan666 » 02/05/14 14:07

Buongiorno a tutti,
dovrei creare un modulo Word con un tabella che si popoli di tante righe quante sono quelle compilate in un file Excel.
Ho provato a farlo con la stampa e unione seguendo questo:
http://knowledge.congasphere.com/congak ... conga-word

Non ho capito perché ma non mi funziona, la parte TableStart:NomeFoglio e TableEnd:NomeFoglio al momento dell'unione mi restituisce l'errore che quel campo non esiste (e infatti non è un campo ma il nome della base dati, cioè del foglio Excel).

Volevo sapere se è possibile fare la stessa cosa con una macro in Word che quindi dovrebbe prendere le colonne da A a F del foglio Excel e mettele nel DOCX in una tabella (in un certo punto dell'A4) con tante righe quante sono quelle con la colonna F compilata

Diciamo che il folgio Excel si chiamerà BaseDati.xls e sarà sempre nella stessa cartella del file Word.

Grazie in anticipo
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Sponsor
 

Re: Creazione Modulo in Word Basato su Excel

Postdi Anthony47 » 04/05/14 01:37

Come sai le conoscenze del vba di word sono abbastanza modeste, pero' qualcosa ogni tanto riusciamo a farla.
Pero' non ho afferrato bene l' obiettivo da raggiungere, potresti quindi riprovare a descriverlo? Mi interessa anche capire se debba esserci interazione tra l' evoluzione del foglio excel e il documento.
Inoltre, quale versione di Office usi?

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Creazione Modulo in Word Basato su Excel

Postdi Dylan666 » 04/05/14 21:08

Facciamo un esempio di un caso analogo (molto simile al caso reale):
in Word si deve fare una ricevuta. Sulla prima riga del foglio c'è il logo della azienda e la data.
Sulla sconda riga una formula di apertura standard (tipo "Eccovi sotto elencate i dettagli della merce venduta").
Subito sotto deve apparire una tabella con questa logica: il file Word è collegato ad un file excel (es. DatiDiBase.xlsx) che contiene un foglio chiamto Lista1.
In Lista1 ci sono un elenco di articoli, con nella colonna A (da A2 in poi) il nome dell'articolo e in B (da B2 in poi) le quantità:

Codice: Seleziona tutto
     A     B     
Banane     1
Mele     
Pere       1
Arance     
Susine     2
Fragole 


Il foglio di Word in questo caso avrà una tabella con 2 colonne e 3 righe (esclusa eventuale prima riga di intestazione) in cui verranno inseriti solo i frutti con la colonna B compilata (quini NON appariranno Mele, Arance e Fragole)

Sotto alla tabella infine metterei una formula di chiusura.
Uso office 2010 ma se potesse essere compatibile pure cl 2007 sarebbe meglio

Grazie
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Re: Creazione Modulo in Word Basato su Excel

Postdi Anthony47 » 05/05/14 01:40

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
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Creazione Modulo in Word Basato su Excel

Postdi elios66 » 06/05/14 09:55

Ciao,
scusate mi sono intromesso perchè ho una necessità simile, ma dal foglio excel devo inserire più tabelle in un documento word. Ho visto come hai fatto per cancellarne più di una ma per inserirle?
Win 8 - Office 2010

http://www.filedropper.com/
elios66
Utente Junior
 
Post: 48
Iscritto il: 04/02/14 18:32

Re: Creazione Modulo in Word Basato su Excel

Postdi Anthony47 » 06/05/14 14:28

La riga che inserisce in word e'
Codice: Seleziona tutto
myWD.Selection.PasteExcelTable False, True, False

Per la sintassi e il significato di quei False, True, False devi guardare l' help on line del vba word, alla voce "Metodo PasteExcelTable"

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Creazione Modulo in Word Basato su Excel":


Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti