|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2006
Città: Patti (ME)
Messaggi: 433
|
[WORD 2003] File Word variabile
Buongiorno,
vorrei chiedere a voi che siete esperti in materia, qual'è la via più breve per realizzare ciò che è in oggetto. Vorrei realizzare un'applicazione molto semplice composta da due o tre finestre da compilare. I dati immessi in queste finestre devono andare a sostituire variabili presenti all'interno di un file word di riferimento ed alla fine devo dare, nell'ultima finestra dell'applicazione, l'opportunità di stampare o salvare con un altro nome il file word modificato. Vorrei un consiglio su come fare, premettendo che non sono un programmatore, ma avrei voglia di iniziare a vedere qualcosa o in Visual Basic o in C#. Se c'è una via più breve e comoda per realizzare questa cosa tanto meglio. Grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
Io faccio qualcosa di simile attraverso i Report del framework.Net, ma occorre la versione professionale di Visual Studio.
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2006
Città: Patti (ME)
Messaggi: 433
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
Credo si possa fare anche con un IDE free per i linguaggi VB e C# .net che si chiama SharpDevelop ma non ho mai utilizzato in tal senso!Inoltre dovrebbe utilizzare per i report un formato diverso da quello microsoft.
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jan 2006
Città: Patti (ME)
Messaggi: 433
|
Quote:
PS Mi consigli di "iniziare" con C# o VB? Diciamo che ho un bel po' di materiale sul C# su cui studiare, ma accetto consigli in senso contrario da quelli che li conoscono entrambi. Comunque sia spero che qualche conoscenza rispolverata di C++ possa aiutarmi ad imparare in fretta. Ciao |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
Personalmente preferisco il VB, ma non ci sono differenze cosi enormi tra i 2!Concettualmente la conoscenza,seppur minima del C++ puo aiutarti.
|
|
|
|
|
|
#7 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
vedi se riesci a cavare qualcosa qua in mezzo...
![]() http://msdn2.microsoft.com/en-us/library/bb244515.aspx |
|
|
|
|
|
#8 | ||
|
Senior Member
Iscritto dal: Jan 2006
Città: Patti (ME)
Messaggi: 433
|
Quote:
Quote:
|
||
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Quello che vuoi tu è un modello di documento Word "Preformattato", con alcuni spazi in cui inserire, attraverso una o più form ( una specie di "procedura guidata" ), i valori desiderati... Beh, la via più breve c'è eccome e tutto questo si può fare direttamente in Word-VBA... Tutto ciò che serve è predisporre per bene il documento modello, e usare i "famosi" bookmarks di Word. Se ti interessa questo tipo di soluzione, fammi sapere... P.S.: Meglio rinominare questo thread, magari specificando anche la versione di Word che vuoi utilizzare, ad esempio >> [WORD 2003] File Word variabile . |
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
C'e' ancora un metodo da valutare... gia' pronto.
Si chiama "Stampa Unione", integrato direttamente dentro Word. Praticamente crei un opportuno template (non un vero template di word, un normalssimo documento), poi crei il documento con i dati, clicchi su "stampa unione" e ottieni gia' quanto ti serve. Tipico esempio e' la "lettera" da spedire customizzata con nome, cognome e indirizzo, a tutti i tuoi clienti. Oppure per stampare le etichette, con analoghi requisiti... Penso sia la stessa cosa scritta da MarcoGG, ma non devi neppure scomodare VBA.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
io ho adottato quel tipo di soluzione descritto perchè il file word doveva rappresentare l' output delle eleborazioni fatte da un programma.
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Jan 2006
Città: Patti (ME)
Messaggi: 433
|
Quote:
Grazie |
|
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Allora, più che un "trenino" di UserForms, meglio usare una Form unica, magari navigabile con un sistema multipagina ( controllo VBA "Multipage" ). Crei una tabella sul modello Word, con alcuni campi vuoti in cui inserisci i segnalibri ( bookmarks ). Quando tutti i campi della Form sono compilati, sulla Form stessa è possibile cliccare su un pulsante apposito che procede all'inserimento dati nel doc. Esempio. : - su doc. ho uno spazio con un segnalibro chiamato "bmk_nome". - su Form ho una TextBox chiamata "txt_nome". >> Il codice essenziale per trasferire il nome da Form a doc. premendo il pulsante sulla Form è : Codice:
Selection.GoTo What:=wdGoToBookmark, Name:="bmk_nome"
Selection.TypeText Text:=txt_nome.Text
|
|
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Jan 2006
Città: Patti (ME)
Messaggi: 433
|
Quote:
![]() EDIT Non ho resistito...hihi, funziona!!! Il problema è poter fare una form carina e poter salvare con un altro nome il documento modificato, per non intaccare il modello word. Quando modifico il segnalibro infatti questo scompare e non poso più ripetere l'operazione (run time 5101, il segnalibro non esiste) PS Sei un grande!!! Ultima modifica di niofar : 08-04-2008 alle 12:49. |
|
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Beh, ma io infatti non ti ho detto di modificare alcun bookmark. Il fatto che tu scriva dove c'è un bookmark non dovrebbe cancellarlo... In ogni caso, per salvare con nome desiderato il doc compilato, ad esempio puoi aggiungere una TextBox alla Form, che chiamerai "txt_nomedoc", e che dovrà contenere il nome desiderato del file ( nome secco, senza il ".doc" ). Il codice essenziale per far questo va messo per ultimo, in coda a tutto il blocco che esegue gli inserimenti... : Codice:
Dim percorso As String
percorso = ThisDocument.Path & "\"
ThisDocument.SaveAs percorso & txt_nomedoc.Text & ".doc"
Prova... |
|
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Jan 2006
Città: Patti (ME)
Messaggi: 433
|
Ciao MarcoGG
mi ero dimenticato di avvisarti che funzionava tutto alla perfezione. Ho creato una userform che si avvia in automatico al'apertura del file In Thisdocument ho inserito Private Sub Document_Open() Application.WindowState = wdWindowStateMinimize 'minimizzo il word UserForm1.Show (0) 'carico la user End Sub e poi, come dicevi tu inserendo un comando nella userform Dim percorso As String percorso = ThisDocument.Path & "\" ThisDocument.SaveAs percorso & txt_salva.Text & ".doc" riesco a salvare il file. Il problema è che ogni volta che apro il nuovo file salvato mi parte la userform del file originale...non voglio che accada questo, come faccio? E se volessi stampare il file, o salvarlo in pdf? Grazie |
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Jan 2006
Città: Patti (ME)
Messaggi: 433
|
UPPP PLEASE
|
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Jan 2006
Città: Patti (ME)
Messaggi: 433
|
Ciao, scusate, ripropongo la domanda per tutti, in modo generico. Vorrei creare un comando che salva con nome senza le macro, cioè salva solamente il testo.
Come posso fare? Grazie |
|
|
|
|
|
#19 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Es.: il nome dei files generati può avere un suffisso particolare, come una carattere "_". All'avvio del file il codice che mostra la Form, esegue un controllo sul nome... |
|
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Jan 2006
Città: Patti (ME)
Messaggi: 433
|
Grazie MarcoGG, ma cambiando il nome del file tornerebbe il "problema", o no?
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:58.






















