Condividi:        

Problema MACRO per associare un foglio EXCEL a 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

Problema MACRO per associare un foglio EXCEL a WORD

Postdi pliz89 » 02/12/14 22:47

Salve a tutti..
sono nuova e disperata :cry:
Ho realizzato un foglio excel con colonne dalla A alla U e con righe da 1 a 151 (immaginate quindi quanti dati :cry: )
Ho la necessità di collegare questo file excel a word in modo tale che ogni riga della colonna excel venga richiamata in un foglio word (questo per tutte le 151 righe del file excel).
Ho letto (e giuro che ci ho provato e riprovato) che si può fare attraverso la realizzazione delle macro (ne ho anche viste di vostre sul forum ma nn riesco :cry: ).
C'è qualcuno che può aiutarmi??? devo riuscirci entro breve...farlo an mano sarebbe un processo lunghissimo :cry:
Confido in voi... io sono negata (oltre che disperata!!!! :cry: e a breve licenziata se nn riesco :cry: )
Ciao a tutti e grazie!
pliz89
Newbie
 
Post: 7
Iscritto il: 02/12/14 22:36

Sponsor
 

Re: Problema MACRO per associare un foglio EXCEL a WORD

Postdi pliz89 » 02/12/14 22:49

Se qualcuno è disposto gentilmente a crearmi una macro che mi aiuti gli invio il file per mail se mi lasciate un recapito
pliz89
Newbie
 
Post: 7
Iscritto il: 02/12/14 22:36

Re: Problema MACRO per associare un foglio EXCEL a WORD

Postdi Anthony47 » 03/12/14 00:30

Ciao pliz89, benvenuta nel forum.
Personalmente mi limito a dare qualche spunto, piu' o meno efficace a seconda del giorno e del caso.
Nel tuo caso credo che dovresti dirci quale e' l' obiettivo finale del tuo lavoro e poi possiamo provare a cercare una soluzione (e mi aspetto un obiettivo piu' largo/lungo che non dire che vuoi mettere in un documento word dei campi prelevandoli da un foglio excel); non scarto l'ipotesi che la via da procedere possa essere diversa da quella che hai immaginato.

Ciao, ti aspettiamo.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Problema MACRO per associare un foglio EXCEL a WORD

Postdi pliz89 » 03/12/14 07:54

Mi basterebbe fare quello che hai detto ovvero mettere i dati di excel in un word ma non sotto forma di tabella..proprio come un file word normale. Ti faccio un esempio x esemplificare.
ho la prima riga excel con il nome di un soggetto esempio "Maria". In excel a Maria sono associate colonne con relativi dati es "peso" "altezza" ecc.
ora voglio elaborare questo foglio word in modo tale che ad ogni foglio corrisponda un soggetto qndi:
Primo foglio word ---> Maria e a seguire (qndi a capo) peso, (a capo) altezza, (a capo) data di nascita ecc.
insomma una vera e propria schedatura.
come si fa? :( nn c ho dormito stanotte :(
pliz89
Newbie
 
Post: 7
Iscritto il: 02/12/14 22:36

Re: Problema MACRO per associare un foglio EXCEL a WORD

Postdi Anthony47 » 03/12/14 13:01

Mi sento a disagio a seguire una via che evidentemente non e' stata analizzata attentamente, visto il livello di panico che mostri.
Inoltre quello che chiedi si puo' fare con un semplice Copia (su Excel) e incolla (su Word), colonna per colonna; trattandosi di 20 colonne, a 15 secondi per colonna, si fa in 5 minuti, e non si va in crisi per un lavoro di 5 minuti… anche se sono 5 minuti da perdere ogni tanto…
Inoltre mi sembra strano che, se ogni colonna e' un nominativo, ci siano 150 parametri che descrivono questo nominativo.
Insomma ho la netta sensazione che il problema non stia come tu lo descrivi…

Ci vogliono 15 minuti per mettere a punto una macro che copi ogni colonna e la inserisca, come valori su ogni riga, in un nuovo file doc accodando in esso le N colonne.
Ma, da quello che ho detto, mi sembrerebbero 15 minuti spesi inutilmente; ti chiedo quindi un supplemento di descrizione del problema che va risolto. E ripeto: non dovresti trascurare l' ipotesi che la soluzione sia diversa da quella che hai immaginato. Ad esempio: cosa ci devi fare sul doc word dopo la sua scrittura con questi dati? perche' non puo' essere fatto sullo stesso file Excel, dopo una diversa sistemazione dei dati?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Problema MACRO per associare un foglio EXCEL a WORD

Postdi alfrimpa » 03/12/14 13:24

Ciao Pliz89

Premesso quanto detto da Anthony47 (che saluto) vorrei chiederti se hai provato a vedere la funzionalità "Stampa Unione" di Word.

Tale modalità consente il collegamento di una tabella (database) in Excel ad un file di Word ove potrai predeterminare un testo fisso ed inserire tanti campi variabili (presi dalla tabella in Excel).

Mi spiego: se hai una lettera in Word da inviare a 100 destinatari ed hai una tabella in Excel con gli indirizzi dei destinatari è possibile in Word inserire il campo Indirizzo (preso dalla tabella in Excel) che varierà di volta in volta.

Non so se è questo che vuoi.

Alfredo
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Problema MACRO per associare un foglio EXCEL a WORD

Postdi pliz89 » 03/12/14 14:45

No allora..io nn voglio su word una tabella excel (e rispettiva organizzazione). Io voglio creare delle schede in word in cui ad ogni foglio é associato un soggetto e sullo stesso foglio ci sono i suoi dati.
Nello specifico ho 151 soggetti e x ognuno di loro 30 dati.
Qndi il risultato saranno 151 schede che mi descrivono il soggetto.
Ho provato con stampa unione ma è comunque un modo molto manuale.
inoltre nessuno dei moduli di stampa unione (etichette, lettere ecc) fa al caso mio.
Vi spiego. Mi occupo di monitoraggio aree costiere. Quindi ho in excel dati di ogni comune della provincia. Da questa schedatura in excel ho necessità di ricavare schede word.
pliz89
Newbie
 
Post: 7
Iscritto il: 02/12/14 22:36

Re: Problema MACRO per associare un foglio EXCEL a WORD

Postdi Anthony47 » 03/12/14 15:04

Ok, direi che se pubblichi un file excel di esempio (con tanti soggetti e i loro dati) e l' equivalente word che vuoi ottenere (1 sola scheda, coerente col contenuto del file excel) possiamo fare qualcosa.
Per allegare un file segui le istruzioni che trovi qui: viewtopic.php?f=26&t=80395 (il servizio piu' semplice da usare e' filedropper).

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Problema MACRO per associare un foglio EXCEL a WORD

Postdi pliz89 » 03/12/14 20:58

k allora il file excel è a questo link

http://dfiles.eu/files/vhkjed1az

una volta cliccato andate su scaricamento regolare (cliccate) e vi si apre una pag. Sul lato dx sotto la scritta rossa "scarica gratis" c'è un codice da inserire e poi cliccate "continue" e vi scarichera il file.

Nel link sotto invece c'è un prototipo di file word che vorrei ottenere ove in rosso ci sono le intestazioni della casella excel e ove vi sn i trattini neri dovrebbero andarci i dati.
Voglio ottenere PER OGNI RIGA DEL FILE EXCEL UN FOGLIO WORD corrispondente.


http://dfiles.eu/files/c3sfx7ngc

Ovviamente vi ho allegato solo una parte della tab excel ma capendo l impostazioni della macro posso usarla x gli altri comuni.
spero di riuscire a risolvere
pliz89
Newbie
 
Post: 7
Iscritto il: 02/12/14 22:36

Re: Problema MACRO per associare un foglio EXCEL a WORD

Postdi Anthony47 » 03/12/14 23:33

Stasera sono riuscito a scaricare solo il file Excel, per quello word devo attendere che il sito si degni di autorizzarmi visto che il mio ip ha gia' scaricato (secondo la sua contabilita', non la mia) troppi file...
Ma e' cosi' difficile usare un servizio semplice e lineare come filedropper, con un tasto chiaro e senza trabocchetti?
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Problema MACRO per associare un foglio EXCEL a WORD

Postdi pliz89 » 04/12/14 00:30

Anthony47 non arrabbiarti...Scusami :(
Ti allego il word qui:

http://www.filedropper.com/word_1

E l'excel qui:

http://www.filedropper.com/excel
pliz89
Newbie
 
Post: 7
Iscritto il: 02/12/14 22:36

Re: Problema MACRO per associare un foglio EXCEL a WORD

Postdi Anthony47 » 04/12/14 13:14

Allora…
Nel tuo file Excel creati una mappa dei campi disponibili e della loro posizione nel documento Word.
Per prova io ho creato questa in Foglio2:
Immagine
upload
In colonna A le intestazioni, nello stesso ordine con cui compaiono nel tuo elenco
In colonna B inserisci il numero di sequenza di quel campo nel file Word; nell' esempio il primo campo sara' "Nome del Progetto", seguito da "Comune", etc
In colonna C il numero di interlinee che devono essere inserite dopo il contenuto di quel campo (quindi tra il valore di un campo e l' intestazione del campo successivo).
In colonna D metterai il testo che vuoi compaia nel doc; io ho usato le stesse scritte di colonna A

A questo punto inserisci questo codice nel tuo file:
Codice: Seleziona tutto
Sub plizz()
Dim myWd As Object, myDoc As Object, myMap As Worksheet, myHead As String
Dim myProgStart As Range, I As Long, J As Long, myMatch, myCampo As String

myHead = "SCHEDA DI RILEVAZIONE INIZIATIVE/PROGETTI/CANTIERI"   '<<< Titolo di pagina
Set myWd = CreateObject("Word.application")
Set myDoc = myWd.documents.Add
myWd.Visible = True

'    Documents.Add Template:="Normal", NewTemplate:=False, DocumentType:=0
Set myMap = ThisWorkbook.Sheets("Foglio2")        '<<< Il foglio con la "mappa" del Doc da creare
Set myProgStart = ThisWorkbook.Sheets("Foglio1").Range("A4")   '<<< L' inizio dell' elenco
'
I = 0
Do
   
    If myProgStart.Offset(I, 0) <> "" Then
        myWd.Selection.typetext myHead
        myWd.Selection.TypeParagraph: myWd.Selection.TypeParagraph
        For J = 1 To 1000
            myMatch = Application.Match(J, myMap.Range("B:B"), False)
            If Not IsError(myMatch) Then
                myCampo = myMap.Range("D1").Offset(myMatch - 1, 0).Value ' myProgStart.Offset(I, myMatch).Value
                myWd.Selection.typetext Text:=myCampo
                myWd.Selection.TypeParagraph
                Call formatCampo(myWd)

                myWd.Selection.typetext Text:=myProgStart.Offset(I, myMatch - 2).Value & " "
                myWd.Selection.TypeParagraph
                Call formatText(myWd)
                For k = 1 To myMap.Range("B1").Offset(myMatch, 1).Value - 1
                    myWd.Selection.TypeParagraph
                Next k
            Else
                myWd.Selection.InsertBreak Type:=7     'wdpagebreak
                'new page, new project
                Exit For
               
            End If
        Next J
    Else
        Exit Do
    End If
    I = I + 1
Loop

Set myWd = Nothing
myWd.Visible = True

End Sub

Sub formatText(ByRef ilDoc)
ilDoc.Selection.MoveUp Unit:=4, Count:=1, Extend:=1

    With ilDoc.Selection.Font
        .Name = "Times New Roman"
        .Size = 11
        .Bold = False
        .Italic = False
        .Underline = 0
        .UnderlineColor = -16777216
        .Strikethrough = False
        .DoubleStrikeThrough = False
        .Outline = False
        .Emboss = False
        .Shadow = False
        .Hidden = False
        .Smallcaps = False
        .Allcaps = False
        .Color = -16777216
        .Engrave = False
        .Superscript = False
        .Subscript = False
        .Spacing = 0
        .Scaling = 100
        .Position = 0
        .Kerning = 0
        .Animation = 0
    End With
ilDoc.Selection.MoveDown Unit:=4, Count:=1
End Sub

Sub formatCampo(ByRef ilDoc)
ilDoc.Selection.MoveUp Unit:=4, Count:=1, Extend:=1

    With ilDoc.Selection.Font
        .Name = "Times New Roman"
        .Size = 11
        .Bold = True
        .Italic = False
        .Underline = 1
        .UnderlineColor = -16777216
        .Strikethrough = False
        .DoubleStrikeThrough = False
        .Outline = False
        .Emboss = False
        .Shadow = False
        .Hidden = False
        .Smallcaps = True       'Maiuscoletto
        .Allcaps = False
        .Color = RGB(255, 0, 0) 'Rosso
        .Engrave = False
        .Superscript = False
        .Subscript = False
        .Spacing = 0
        .Scaling = 100
        .Position = 0
        .Kerning = 0
        .Animation = 0
    End With
ilDoc.Selection.MoveDown Unit:=4, Count:=1
End Sub
Le istruzioni marcate <<< sono da personalizzare

Inserisci tutto in un nuovo Modulo di codice del tuo "progetto vba":
-Da excel, Alt-F11 e ti si apre l' editor delle macro
-Menu /Inserisci /Modulo
-Copi il codice e lo incolli nel frame di dx

Poi torni sul foglio dei tuoi dati ed esegui la macro:
-Alt-F8, scegli "plizz" dall' elenco che ti propone, premi Esegui

Prova su un elenco con una decina di righe, cosi' calcoli anche il tempo che serve per elenchi piu' lunghi.

La macro si ferma sulla prima riga dell' elenco che in colonna A risulta vuoto. Poiche' tu hai usato celle unite, la cella A9 risultera' vuota e la creazione dell' elenco si interrompera'.
Personalmente ritengo deprecabile l' uso di celle unite in tabelle che debbano essere elaborate (e non solo visualizzate), quindi ti suggerisco di eliminare tutte le unioni celle prima di eseguire la macro.
La macro crea un nuovo documento Word, con tante pagine quante sono le righe della tabella excel.

Ho inserito due routine che formattano i titoli dei campi (format Campo) e il testo dei campi (format Text); modificando i vari parametri puoi modificare la formattazione come da tue preferenze.

Nota che ho ignorato il file ".dot" (la sua utilita' sarebbe stata maggiore se fossero gia' stati impostati i nomi dei campi).

Il file Word rimane aperto, cosi' lo puoi verificare e salvare come da tue preferenze.

Spero sia di qualche utilita'…

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Problema MACRO per associare un foglio EXCEL a WORD

Postdi pliz89 » 06/12/14 08:04

È perfetto!!! Grazie mille davvero!!!! ☺
pliz89
Newbie
 
Post: 7
Iscritto il: 02/12/14 22:36


Torna a Applicazioni Office Windows


Topic correlati a "Problema MACRO per associare un foglio EXCEL a WORD":


Chi c’è in linea

Visitano il forum: Nessuno e 138 ospiti