IALweb Homepage
Forum Home Forum Home > MS Office > Microsoft Office > Microsoft Word
  New Posts New Posts RSS Feed - SPLIT di un documento in N documenti
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

REGISTRATEVI su IALWeb forum! E' facile e veloce! Potrete consultare tutte le sezioni del forum senza restrizioni e scrivere per dare o richiedere aiuto.
Votaci in Net-Parade

Topic ClosedSPLIT di un documento in N documenti

 Post Reply Post Reply
Author
Message
patrini View Drop Down
Utente Base
Utente Base


Joined: 31/Mar/2007
Status: Offline
Points: 61
Direct Link To This Post Topic: SPLIT di un documento in N documenti
    Posted: 20/Mar/2008 at 19:03

Ciao da Patrini
un doc. word ha un  contenuto simile a quello qui esemplificato 

--------------------inizio---------------------------------- ---
domanda 1
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxx

domanda 2
yyyyyyyyyyyyyyyyyyyyy

domanda 3
zzzzzzzzzzzzzzzzzzzz
ZZZZZZZZZZZZZZZZZZZZ
ZZZZZZZZZZZZZZZZZZZZZZZZZ
------------------------fine-------------------------------- ---------------

 vorrei spezzare (in modo automatico e non manuale) il documento di partenza in  N documenti word, la prima riga di ogni documento conterrà la parola "domanda"  ; pertanto ogni documento  sarà composto dal titolo e dal testo di ogni singola domanda; 
I documenti prodotti si potranno chiamare
1.doc, 2.doc, 3.doc,ecc

il documento 1.doc conterra"
domanda 1
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxx

il documento 2.doc conterra"
domanda 2
yyyyyyyyyyyyyyyyyyyyy

il documento 3.doc conterra"
domanda 3
zzzzzzzzzzzzzzzzzzzz
ZZZZZZZZZZZZZZZZZZZZ
ZZZZZZZZZZZZZZZZZZZZZZZZZ

ho provato a costruire una macro con la registrazione,
ma senza successo....

ogni suggerimento sara" ben gradito

grazie e ciao da patrini



Edited by patrini
ciao e grazie da patrini
Back to Top
Ricky53 View Drop Down
Amministratore
Amministratore
Avatar
Esperto di Excel e PowerPoint

Joined: 05/Ott/2006
Location: Italy
Status: Offline
Points: 16485
Direct Link To This Post Posted: 20/Mar/2008 at 23:46
Ciao,

invia quello che hai prodotto e ci ragioniamo sopra.

Ciao da Ricky53
AMMINISTRATORE

Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione
Back to Top
patrini View Drop Down
Utente Base
Utente Base


Joined: 31/Mar/2007
Status: Offline
Points: 61
Direct Link To This Post Posted: 21/Mar/2008 at 18:42

  Ciao  Ricky53,grazie per l'interessamento;
 purtroppoo non ho prodotto nulla.....
 sono ancora al palo  e non so  come iniziare.

ciao da patrini

  

 

ciao e grazie da patrini
Back to Top
patrini View Drop Down
Utente Base
Utente Base


Joined: 31/Mar/2007
Status: Offline
Points: 61
Direct Link To This Post Posted: 23/Mar/2008 at 21:59

Ciao da Patrini
riporto la soluzione che Claudio (della IBM) che mi ha inviato via email

La soluzione richiede che il file di partenza contenga una stringa (variabile DELIM) che funga da delimitatore
Ho  scelto la stringa "
\\\ " 

Il documento di partenza pertanto sarà cosi" composto

------- INIZIO-------------------

\\\
domanda 1
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxx

\\\
domanda 2
yyyyyyyyyyyyyyyyyyyyy

\\\
domanda 3
zzzzzzzzzzzzzzzzzzzz
ZZZZZZZZZZZZZZZZZZZZ
ZZZZZZZZZZZZZZZZZZZZZZZZZ

------------------------------------FINE ---------


Questo è il testo della MACRO scritta da Claudio.


Sub test_split ()
'
' test_split1 Macro
' Macro created 23/03/2008 by IBM_20635

  Dim delim, nn, I, J, docc, vett
  Dim doc  As Document
 
  delim = "
\\\"
  vett = Split(ActiveDocument.Range, delim)
  nn = UBound(vett)
  Set doc = Documents.Add
  ChangeFileOpenDirectory "C:\prova"
 
  For I = 1 To nn
     Set doc = Documents.Add
     doc.Range = vett(I)
     J = I + 500
     docc = CStr(J) + ".doc"
     doc.SaveAs FileName:=docc, FileFormat:=wdFormatDoc ument
     doc.Close True
      
 Next I

 

  VETT è un vettore che contiene il risultato della funzione SPLIT

  VETT(1) conterrà  
   domanda 1
   xxxxxxxxxxxxxxx
   xxxxxxxxxxxxxxxxxxx

  VETT(2) conterrà  
  domanda 2
  yyyyyyyyyyyyyyyyyyyyy

  VETT(2) conterrà  
  domanda 3
  zzzzzzzzzzzzzzzzzzzz
  ZZZZZZZZZZZZZZZZZZZZ
  ZZZZZZZZZZZZZZZZZZZZZZZZZ

  NN , risultato di UBOUND(vett) contiene il numero degli elementi di VETT,    nel nostro esempio 3

  DOC è il documento di lavoro

  DOCC è il nome con cui il documento viene salvato

  la macro costruirà 3 documenti :
     501.doc , 502.doc e 503.doc 

   501.doc conterrà  
   domanda 1
   xxxxxxxxxxxxxxx
   xxxxxxxxxxxxxxxxxxx

   502.doc conterrà  
   domanda 2
    yyyyyyyyyyyyyyyyyyyyy

    503.doc  conterrà  
    domanda 3
    zzzzzzzzzzzzzzzzzzzz
    ZZZZZZZZZZZZZZZZZZZZ
    ZZZZZZZZZZZZZZZZZZZZZZZZZ

 

  la soluzione proposta da Claudio risolve 
 
 perfettamenmte il mio problema 
  Bravo Claudio...... grazie.


  ciao da patrini
   

ciao e grazie da patrini
Back to Top
hyperion View Drop Down
Amministratore
Amministratore
Avatar
Responsabile del Forum

Joined: 19/Giu/2006
Location: Italy
Status: Offline
Points: 3180
Direct Link To This Post Posted: 27/Mar/2008 at 13:24
Ok ragazzi, la soluzione è stata scritta ed è stata utile.
Metto in rilievo la discussione, perchè potrà essere utile a molti in futuro.

P.S: grazie a patrini che ha condiviso le informazioni sul forum



Edited by hyperion
Per gravi problemi tecnici della board, contattatemi tramite MP

Back to Top
borgodiavalon View Drop Down
Nuovo Utente
Nuovo Utente


Joined: 21/Nov/2008
Location: Italy
Status: Offline
Points: 16
Direct Link To This Post Posted: 10/Mar/2009 at 11:23

è possibile usare come delimitazione l'interruzione di pagina?

io dovrei fare circa la stessa cosa sopra descritta, però su una file contenente una lettera tipo creata con stampa unione.

 

Back to Top
borgodiavalon View Drop Down
Nuovo Utente
Nuovo Utente


Joined: 21/Nov/2008
Location: Italy
Status: Offline
Points: 16
Direct Link To This Post Posted: 12/Mar/2009 at 16:29

posto il codice realizzato da giovanni zezza e da me modificato (per questo motivo probabilmente non sarà formalmente corretto) che mi ha permesso di risolvere il problema. probabilmente può essere visto come integrazione al post.

Public Sub separa_sezioni()
   Dim sezioni As Sections
   Dim sezione As Section
   Dim doc_da As Document
   Dim doc_a As Document
   Dim numero As Integer
    Dim brano As Range
    Dim codice As String
   

   Set doc_da = ActiveDocument
   Set sezioni = doc_da.Sections
   'numero = 1
   For Each sezione In sezioni
    Set brano = sezione.Range
        brano.Copy
        sezione.Range.Copy
       
        Set doc_a = Documents.Add
       doc_a.Range.Paste
     
        With Selection.Find
           .Wrap = wdFindStop
        .Execute FindText:="Cod.: "'cerca il termine che precede la sequenza numerica
      End With
        Selection.MoveStart Unit:=wdCharacter, Count:=6
       Selection.MoveRight Unit:=wdCharacter, Count:=12, Extend:=wdExtend

 codice = Selection.Text:
         'MsgBox codice
   
       doc_a.SaveAs ("c:\" & codice & ".doc")
       doc_a.Close
      
       'numero = numero + 1
   Next
   End Sub

Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 10.17
Copyright ©2001-2013 Web Wiz Ltd.

This page was generated in 0,063 seconds.