Discussione:
Salvare ogni sezione in un singolo file
(troppo vecchio per rispondere)
Alcatraz
2006-01-18 00:25:42 UTC
Permalink
Salve a tutti.
Ho l'esigenza di modificare un documento di Word abbastanza esteso e con una
particolare formattazione.
Oltre alle classiche formattazioni di paragrafo, intestazione e piè di
pagina, ho una suddivisione in sezioni, dove ogni inizio di sezione è
impostato su nuova pagina.
Avrei l'esigenza di salvare tutte le sezioni presenti sul documento come
singoli files.
Esiste un sistema "automatizzato" che mi permetta di fare ciò senza dover
creare un nuovo file e utilizzare copia/incolla? Possibilmente riuscendo a
mantenere lo stile di formattazione originale.
Grazie per le eventuali risposte!
--
Ciao, A.
Giovanni Zezza
2006-01-18 12:06:27 UTC
Permalink
Post by Alcatraz
Esiste un sistema "automatizzato" che mi permetta di fare ciò senza dover
creare un nuovo file e utilizzare copia/incolla? Possibilmente riuscendo a
mantenere lo stile di formattazione originale.
Puoi provare a scorrere la collezione Sections di Document. La proprietà
Range di Section ti consente di accedere al contenuto, per esempio per
copiarlo negli appunti e incollarlo in un nuovo documento:

Public Sub copia_sezioni()
Dim sezioni As Sections
Dim sezione As Section
Dim doc_da As Document
Dim doc_a As Document
Dim numero As Integer
Set doc_da = ActiveDocument
numero = 1
For Each sezione In doc_da.Sections
sezione.Range.Copy
Set doc_a = Documents.Add
doc_a.Range.Paste
doc_a.SaveAs (Str(numero) & ".doc")
doc_a.Close
numero = numero + 1
Next
End Sub


Ciao.
Alcatraz
2006-01-18 13:13:08 UTC
Permalink
Post by Giovanni Zezza
Puoi provare a scorrere la collezione Sections di Document. La proprietà
Range di Section ti consente di accedere al contenuto, per esempio per
..cut...

Grazie della risposta, mi sembra interessante!
Ora però, siccome non sono un utente avanzato di Microsoft Office, ti
pregherei di spiegarmi come devo agire con il codice VB da te scritto.
Immagino dovrò creare una macro, giusto? Come si crea? Dove si inserisce il
codice? Come devo fare per mandarlo in esecuzione?
Al massimo conferma solo che si tratta di macro e provo a googlare il resto
:)
Scusa la mia incompetenza ma non ho mai provato niente del genere prima!
--
Ciao, A.
Giovanni Zezza
2006-01-18 14:42:36 UTC
Permalink
Post by Alcatraz
Ora però, siccome non sono un utente avanzato di Microsoft Office, ti
pregherei di spiegarmi come devo agire con il codice VB da te scritto.
Immagino dovrò creare una macro, giusto? Come si crea? Dove si inserisce il
codice? Come devo fare per mandarlo in esecuzione?
E' una macro, sì, puoi copiarla tal quale nell'editor di VBA (Strumenti ->
Macro -> Editor Visual Basic).

Presume che il documento da dividere sia il documento attivo, e salva ogni
sezione nei documenti 1.doc, 2.doc, 3.doc e così via.
La esegui, dopo aver aperto il documento da dividere, con Strumenti ->
Macro -> Macro; Nome macro: copia_sezioni; Esegui.

Public Sub copia_sezioni()
Dim sezioni As Sections
Dim sezione As Section
Dim doc_da As Document
Dim doc_a As Document
Dim numero As Integer
Set doc_da = ActiveDocument
Set sezioni = doc_da.Sections
numero = 1
For Each sezione In sezioni
sezione.Range.Copy
Set doc_a = Documents.Add
doc_a.Range.Paste
doc_a.SaveAs (Str(numero) & ".doc")

'qui può darsi che tu debba specificare il percorso in cui salvare
'i file; qualcosa come:
'doc_a.SaveAs ("C:\Documenti\" & Str(numero) & ".doc")

'oppure li salvi nella stessa directory del documento di origine:
'doc_a.SaveAs (doc_da.Path & "\" & Str(numero) & ".doc")

doc_a.Close
numero = numero + 1
Next
End Sub
Post by Alcatraz
Al massimo conferma solo che si tratta di macro e provo a googlare il resto
Diciamo che sì, prima di eseguire una macro (anche di provenienza al di
sopra di ogni sospetto, come nel caso della mia rispettabilissima persona),
una qualche idea di che cosa stai facendo conviene che tu te la faccia.
Anche perché quella sopra è appena un'idea, non è detto che ti vada bene
così com'è, non è certamente robusta, mancando di ogni controllo di errore,
ecc.

Più che in google, ti consiglieri di cominciare a leggere l'help di Visual
Basic per Word.

Ciao.
Giovanni Zezza
2006-01-18 15:16:24 UTC
Permalink
Post by Giovanni Zezza
sezione.Range.Copy
Set doc_a = Documents.Add
doc_a.Range.Paste
Già che ci siamo, questo è l'unico modo di copiare un brano di testo
formattato da un punto all'altro? si può fare senza passare da clipboard?

Non è possibile, per esempio, semplicemente aggiungere la sezione (con
tutto il suo contenuto) alla collezione delle sezioni nel nuovo documento,
o assegnare al Range del nuovo documento il Range della sezione?

Concettualmente mi sembra che potrebbe avere un senso, ma le prove che ho
fatto non hanno dato il risultato sperato (al meglio, viene assegnato Text,
che è probabilmente la proprietà di default di Range, senza formattazioni).

Ciao.
Alcatraz
2006-01-18 21:31:39 UTC
Permalink
Post by Giovanni Zezza
E' una macro, sì, puoi copiarla tal quale nell'editor di VBA (Strumenti ->
Macro -> Editor Visual Basic).
WOW! Genius! Il codice da te scritto sembra che sia proprio quello che
cercavo!

Testato al volo su una 30ina di sezioni ed è perfetto! Unica pecca, non crea
documenti da 1 pagina ma da 2 pagine, dove la seconda è vuota.

Però non perde alcunchè della formattazione originale.
Post by Giovanni Zezza
Diciamo che sì, prima di eseguire una macro (anche di provenienza al di
sopra di ogni sospetto, come nel caso della mia rispettabilissima persona),
una qualche idea di che cosa stai facendo conviene che tu te la faccia.
Anche perché quella sopra è appena un'idea, non è detto che ti vada bene
così com'è, non è certamente robusta, mancando di ogni controllo di errore,
ecc.
Mi sono fidato della tua rispettabilissima persona in questo caso, purtroppo
il tempo scarseggia! Ad ogni modo un po' di VB lo conosco, usavo del VBA per
lavorare su Access, ma sono passati diversi anni e non sono più così
pratico. Ma non mi sembrava che ci fossero dei tranelli in questo caso! ;)
Post by Giovanni Zezza
Più che in google, ti consiglieri di cominciare a leggere l'help di Visual
Basic per Word.
Ciao.
Grazie mille! A presto. A.
Giovanni Zezza
2006-01-19 09:45:21 UTC
Permalink
Post by Alcatraz
Testato al volo su una 30ina di sezioni ed è perfetto! Unica pecca, non crea
documenti da 1 pagina ma da 2 pagine, dove la seconda è vuota.
Però non perde alcunchè della formattazione originale.
E' l'interruzione di sezione finale, che giustamente Word interpreta come
se seguisse un'ulteriore sezione, e quindi una nuova pagina (che è
l'impostazione di layout di default).

Purtroppo, se lo cancelli perdi anche le formattazioni di sezione (margini
di pagina e altro). Non credo ci sia un modo semplice per risolvere.

Ciao.

Mauro Gamberini
2006-01-18 14:54:31 UTC
Permalink
Post by Alcatraz
Ho l'esigenza di modificare un documento di Word abbastanza esteso e con una
particolare formattazione.
Oltre alle classiche formattazioni di paragrafo, intestazione e piè di
pagina, ho una suddivisione in sezioni, dove ogni inizio di sezione è
impostato su nuova pagina.
Avrei l'esigenza di salvare tutte le sezioni presenti sul documento come
singoli files.
Esiste un sistema "automatizzato" che mi permetta di fare ciò senza dover
creare un nuovo file e utilizzare copia/incolla? Possibilmente riuscendo a
mantenere lo stile di formattazione originale.
Se(se) la particolare formattazione lo consente
puoi utizzare una procedura tipo
questa:

Visualizza-->Struttura
Visualizza-->Barre degli strumenti-->Struttura
Seleziona tutte le sezioni
Nella barra: Struttura
Fai click su: Crea documento secondario
Salva in una cartella di tua scelta
--
----------------------------
Mauro Gamberini
Alcatraz
2006-01-18 21:17:26 UTC
Permalink
Post by Mauro Gamberini
Se(se) la particolare formattazione lo consente
puoi utizzare una procedura tipo
Visualizza-->Struttura
Visualizza-->Barre degli strumenti-->Struttura
Seleziona tutte le sezioni
Riesco ad eseguire i passi fino a qua, anche se già così mi perdo i disegni
sul bordo sinistro e quelli all'interno del documento. Ma una volta arrivato
a questo punto non posso andare avanti.
Post by Mauro Gamberini
Nella barra: Struttura
Fai click su: Crea documento secondario
Il bottone rimane sbiadito e non è selezionabile.

Grazie dell'interessamento!
--
Ciao, A.
Continua a leggere su narkive:
Loading...