Condividi:        

aggiunta in word di elenco variabile da excel per cliente

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

aggiunta in word di elenco variabile da excel per cliente

Postdi valeciao » 23/01/15 11:51

Buongiorno a tutti.
ho guardato nel forum se trovavo qualche aiuto, ma non essendo molto ferrata in ambito macro e VBA :oops: non sono riuscita a individuare una soluzione che risolva appieno il mio problema. :(

Lo descrivo di seguito sperando che qualcuno sappia darmi qualche indicazione o un aiuto!

Ho due tabelle in excel:
1. Tabella DATI in cui ho un elenco di informazioni di riepilogo per cliente. Ciascun cliente compare una sola volta in questa tabella.
2. Tabella DETTAGLIO FATTURE in cui ho N righe variabili per ciascun cliente presente nella precedente tabella.

Nelle due tabelle il numero di clienti e di fatture sono variabili, come anche il numero di fatture abbinate a ciascun cliente.

Con una stampa unione sono riuscita facilmente a creare in word la lettera di riepilogo per ciascun cliente. ( i dati sono quelli presenti in tabella Dati).
Quello che non riesco a fare è associare a ciascuno di questi documenti un altra pagina word in cui si riporta il dettaglio delle fatture per il cliente della pagina precedete di riepilogo.

Spero di essere stata abbastanza chiara e precisa. ;)
grazie a tutti!
valeciao
Newbie
 
Post: 7
Iscritto il: 22/01/15 14:39

Sponsor
 

Re: aggiunta in word di elenco variabile da excel per client

Postdi Anthony47 » 23/01/15 14:00

Ciao valeciao, benvenuta nel forum.
Non credo che Stampa unione possa fare quel che chiedi lavorando su due tabelle diverse.
Ti suggerisco di riportare i dati di DETTAGLIO FATTURE in DATI, usando N ulteriori colonne, e poi usare queste colonna come ulteriori campi da usare in Stampa unione per preparare il dettaglio fatture.
Per automatizzare questo processo e' pero' necessario che ci dai un esempio realistico di tabelle; per allegare un file guarda qui: viewtopic.php?f=26&t=80395 Il sito piu' semplice da utilizzare e' filedropper.com

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

Re: aggiunta in word di elenco variabile da excel per client

Postdi alfrimpa » 23/01/15 14:29

Ciao Valeciao (che bel gioco di parole :))

Ferma restando l'ottima proposta di Anthoni47 (che saluto) io valuterei anche l'ipotesi (sempre che sia possibile farlo) di evitare l'uso di Word.

In sostanza "costruirei" in Excel (magari in DETTAGLIO FATTURE) il fac-simile della lettera da inviare al cliente nella quale inserirei una convalida dati sui nominativi cliente in maniera tale che, sceltone uno, la lettera si autocompili con il dati anagrafici (magari con dei cerca.vert) e dell'elenco delle fatture pertinenti al cliente selezionato effettuando un filtro dati su DETTAGLIO FATTURE lanciato da una macro.

Questa cosa (ossia la stampa della lettera) la si può anche fare per tutti i clienti contemporaneamente evitando la scelta singola.

In ogni caso avere dei file di esempio sarebbe d'aiuto.

Alfredo
Alfredo

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

Re: aggiunta in word di elenco variabile da excel per client

Postdi valeciao » 23/01/15 16:21

grazie mille per le risposte!
Al momento non riesco a caricare un file di esempio, cerco di farlo appena possibile!

Purtroppo il file da produrre serve al mio capo in formato word. :(

mmm...però, magari cambiando e semplificando il problema riesco ad avvicinarmi alla soluzione ;)
Lasciando perdere la tabella dati, dalla quale ricavo la lettera con il riepilogo, che può andar bene così, se si considera solo la tabella DETTAGLIO FATTURE, dove ho l'elenco delle fatture, con una struttura del tipo (intestazione colonne):
- cliente (ID univoco che identifica il cliente)
- referente
- articolo
- nome esteso del cliente
- valore fattura
- quantità articolo

è possibile avere in output, un file di N pagine word, una per cliente, contenete ciascuna l'elenco delle fatture per lo specifico cliente.
Poi per l'unione dei documenti cercherò un altra soluzione, già risolvere questo passaggio sarebbe un bel passo avanti. :)

Rimane però il problema del numero variabile di fatture per ciascun cliente, e del numero variabile di clienti ogni mese.

Ho provato a cambiare la struttura del file excel usando diversi tipi di tabelle, incluso pivot e power pivot...è che non riesco inserire dei cicli , salti pagina... :cry:

Grazie comunque dell'aiuto!! ;)
valeciao
Newbie
 
Post: 7
Iscritto il: 22/01/15 14:39

Re: aggiunta in word di elenco variabile da excel per client

Postdi valeciao » 23/01/15 17:05

ciao a tutti di nuovo!
forse ho trovato qualcosa che fa quello che vorrei io in questa discussione:
viewtopic.php?f=26&t=101543&p=587616&hilit=macro+c%3A%5CPROVA+macro+elenco+fatture+%27c%3A%5Cprova%27#p587616

Ho usato le macro inserite nel post di Anthony47 » 15/03/14 14:15
Vengono prodotti n file, uno per cliente con il rispettivo dettaglio al loro interno...e questo sarebbe quasi perfetto...
Domanda: è possibile invece di produrre file xml, generare file word?
(Magari è una banalità ma essendo alle prime armi con macro e vba già essere arrivata fin qua mi sembra di aver raggiunto un super successo!! )

la formattazione dell'elenco finale (che sia in formato di tabella o un elenco di campi concatenati per capirci -> è indifferente l'importante è che sia completo :) ) dipende dalla formattazione della tabella excel di origine o è da impostare qualcosa nel word?

grazie ancora!!! :)
valeciao
Newbie
 
Post: 7
Iscritto il: 22/01/15 14:39

Re: aggiunta in word di elenco variabile da excel per client

Postdi Anthony47 » 24/01/15 23:11

Per poter dire qualcosa ho bisogno di vedere il formato delle due tabelle, almeno a livello di immagine (per ora); per come fare guarda qui: viewtopic.php?f=26&t=80395#p466013

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

Re: aggiunta in word di elenco variabile da excel per client

Postdi valeciao » 26/01/15 15:26

valeciao
Newbie
 
Post: 7
Iscritto il: 22/01/15 14:39

Re: aggiunta in word di elenco variabile da excel per client

Postdi Flash30005 » 26/01/15 16:49

Ciao Valeciao e benvenuta nel Forum anche da parte mia

penso sia necessario indicare anche in quale colonna e riga del foglio di excel sono riportati quei dati
altrimenti si rischia di creare una macro che vada a leggere in celle che non corrispondono a quelle effettive (le tue)
con conseguente intervento di adattamento o da parte tua o nostra.

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: aggiunta in word di elenco variabile da excel per client

Postdi valeciao » 28/01/15 14:09

ciao a tutti.

allora, usando il codice sotto riportato ottengo qualcosa che si avvicina moooolto a quello che cerco, a meno:
1) del formato dei file prodotti che è in excel e non word (cambiando l'estensione nel codice, sostituendo xls con doc, i file word prodotti non sono apribili perchè risultano danneggiati :( )
2) e della cella di origine dei dati (e qui rispondo a Flash30005). Al momento la tabella inizia in cella A1 ma vorrei abbassarla di qualche riga (A3) per inserire nelle prime righe un'immagine per la formattazione dell'output...ma ahimè non ci sono riuscita completamente, perchè mi perdo la riga di intestazione della tabella nel nuovo file.

Ho ancora qualche dubbio sulla formattazione di output: nel caso in cui produrre un file word sia particolarmente complesso, posso trovare un compromesso con una stampa in excel che poi trasformo in pdf o direttamente in pdf. il dubbio è: il file excel prodotto con il codice sotto scrive partendo dalla cella A1, è possibile farla partire anche in questo caso dalla cella A3? (il resto del layout con immagini/colori etc è già perfetto! )
nel caso invece si produca un pdf (o anche un word), affinchè la tabella (in larghezza) sia contenuta in una stessa pagina, cioè tutte le colonne in una pagina, devo agire sull'area di stampa del foglio excel di origine, giusto?



Function RangePublish3(ByVal mySh As String, ByVal PRan As String, Optional ByVal FName As String = "myBDT.htm") As Variant
'Vedi viewtopic.php?f=26&t=101351
' aggiornamento: viewtopic.php?f=26&t=101543
'
Dim TmpFile As String, myBDT As String, PubFile
If Len(Replace(UCase(Right(FName, 5)), ".XLS", "")) = Len(UCase(Right(FName, 5))) Then FName = FName & ".xls"
TmpFile = "C:\PROVA\" & FName

'Crea file html:
Application.Intersect(Columns(PRan), ActiveSheet.UsedRange).Copy
Workbooks.Add
ActiveSheet.Paste
Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False '*** 1

Application.DisplayAlerts = False '*** 2
ActiveWorkbook.SaveAs Filename:=TmpFile
ActiveWorkbook.Close savechanges:=False
Application.DisplayAlerts = True
'
End Function

Sub mytest()
Dim ListC As String
'
ListC = "K" '<<<1 Una colonna LIBERA in cui sara' creato l' elenco dei nominativi
'
ActiveSheet.Range("$A:$A").AutoFilter Field:=1, Criteria1:="*"

Range(ListC & ":" & ListC).ClearContents
Range("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range(ListC & "1") _
, Unique:=True
For I = 2 To Cells(Rows.Count, ListC).End(xlUp).Row
If Cells(I, ListC) <> "" Then
ActiveSheet.Range("$A:$A").AutoFilter Field:=1, Criteria1:=Cells(I, ListC).Value
Range("A1").Select
xxx = RangePublish3(ActiveSheet.Name, "B:H", Cells(I, ListC).Value) '<<<2
End If
Next I
ActiveSheet.Range("$A:$A").AutoFilter Field:=1, Criteria1:="*"
End Sub



grazie mille!!
valeciao
Newbie
 
Post: 7
Iscritto il: 22/01/15 14:39

Re: aggiunta in word di elenco variabile da excel per client

Postdi Anthony47 » 28/01/15 22:29

Le tabelle pubblicate 2 giorni fa non mi hanno illuminato in niente; anzi i campi contenuti nella tabella di output (DATI) non esistono nella tabella di partenza, per cui non capisco come si possano "inventare".

Le macro che hai sperimentato consentono di preparare o dei file xls (non word), o degli allegati per una mail standard, o un testo da inserire in una mail quindi personalizzata (se usi Outlook come client di mail).

Invece degli xls e' possibile preparare dei pdf, per questo pero' e' necessario specificare quale versione di Excel usi (vedi viewtopic.php?f=26&t=97449)

Portarli in word non e' probabilmente complesso, se i dati excel sono strutturati in modo decoroso, ma non mi candido per carenza di conoscenze e tempo.

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

Re: aggiunta in word di elenco variabile da excel per client

Postdi valeciao » 29/01/15 09:40

Scusami!! la tabella di output è uguale alla tabella di input per quanto riguarda il Dettaglio fatture (applico la macro solo a questa, per la tabella dati continuo ad usare la stampa unione)
L'output della macro che ho riportato può andare benissimo...se solo riuscissi ad abbassare la tabella (sia in input che in output) di qualche riga, come in figura.

Immagine
image hosting

Io parto da questa tabella e restituisco le colonne dalla B alla F, esattamente con lo stesso output :)
Non riesco a capire come far funzionare la macro se la tabella di input inizia dalla riga 3 e come farla stampare a partire dalla riga 3 (come in figura).

Grazie comunque a tutti per l'aiuto!!
Il risultato ottenuto è già un gran passo avanti sull'operatività attuale!
valeciao
Newbie
 
Post: 7
Iscritto il: 22/01/15 14:39

Re: aggiunta in word di elenco variabile da excel per client

Postdi Anthony47 » 30/01/15 03:14

Se nei file che generi vuoi scrivere a partire dalla terza riga, allora modifica, all' interno di Function RangePublish3, questa parte
Application.Intersect(Columns(PRan), ActiveSheet.UsedRange).Copy
Workbooks.Add
ActiveSheet.Paste
Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False '*** 1

in
Codice: Seleziona tutto
Application.Intersect(Columns(PRan), ActiveSheet.UsedRange).Copy  'ESISTENTE
Workbooks.Add       'ESISTENTE
'aggiunta:
Range("A3").Select
ActiveSheet.Paste   'ESISTENTE
'modificata:
Range("A3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False   '*** 1

Non sono invece certo di aver capito la richiesta di abbassare anche la tabella di input... Forse vuoi evitare di riportare in output il contenuto delle prime due-tre righe? Se e' cosi', allora
1) non richiamare RangePublish3 con RangePublish3(ActiveSheet.Name, "B:H", Cells(I, ListC).Value) '<<<2 ma usa
Codice: Seleziona tutto
xxx = RangePublish3(ActiveSheet.Name, "B3:H1000", Cells(I, ListC).Value) '<<<2

2) modifica la riga Application.Intersect(Columns(PRan), ActiveSheet.UsedRange).Copy in
Codice: Seleziona tutto
Application.Intersect(Range(PRan), ActiveSheet.UsedRange).Copy

Ti segnalo che RangePublish3 cosi' come e' puo' lavorare solo sul foglio attivo, anche se nei parametri c' e' la possibilita' di inserire un nome foglio; non ricordo come si era passati da una RangePublish alla RangePublish2 e poi alla RangePublish3, evidentemente qualcosa si e' perso per strada...

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

Re: aggiunta in word di elenco variabile da excel per client

Postdi valeciao » 03/02/15 11:12

Grazie mille!!!
il risultato è perfetto!!! ;)
valeciao
Newbie
 
Post: 7
Iscritto il: 22/01/15 14:39


Torna a Applicazioni Office Windows


Topic correlati a "aggiunta in word di elenco variabile da excel per cliente":


Chi c’è in linea

Visitano il forum: Nessuno e 29 ospiti