Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Fare lo split di un documento di Word

    Come da oggetto vorrei dividere un documento di Word in diversi altri documenti più piccoli.
    Il maxi documento ha, ogni tanto, delle righe "strane" come ad esempio "XYZKJ" che appunto dovrebbero indicare la fine di un (piccolo) documento e l'inizio dell'altro.
    Ovviamente dovrei utilizzare il modello ad oggetti di Word che sicuramente consente questa operazione.
    Grazie per l'attenzione.

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Ti basta fare una ricerca sul web.
    Ovviamente...

  3. #3
    Ricerca che ovviamente ho già fatto, senza risultato.
    Altrimenti non avrei scritto qui, ovviamente.

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Ma non l'hai detto.
    Allora mostraci come hai fatto questa ricerca...

  5. #5
    Non l'ho detto perchè pensavo (e penso) che sia implicito che ci si rivolge ad un forum DOPO aver tentato altre vie, in primis quella di cercare con Google (ed eventualmente altri motori di ricerca e siti specializzati). Almeno questo è il mio modo di procedere.
    Ho cercato per parole chiave WORD (e MSWORD) SPLIT DOCUMENT VBA VB6 DIVIDE SEPARATE in varie combinazioni; anche nella loro traduzione in italiano. Ovviamente non tutte le parole sopracitate contemporaneamente ma solo qualcuna di esse, in varie combinazioni.
    Ho trovato delle indicazioni su come dividere un documento di Word ma utilizzando la funzione Split che divide sì il documento ma non preserva la sua formattazione, cosa per me indispensabile.
    Ho anche trovato come dividere un documento di Word in pagine ma non è quello che mi serve.
    Queste mie ricerche sono state infruttuose.

    Terminate queste precisazioni, riguardo la mia originaria richiesta di aiuto cosa mi dite ?

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Quote Originariamente inviata da giustavalla Visualizza il messaggio
    Non l'ho detto perchè pensavo (e penso) che sia implicito che ci si rivolge ad un forum DOPO aver tentato altre vie, in primis quella di cercare con Google
    E pensi male. Mai dare nulla per scontato.
    Per esperienza diretta ho visto che il 90% delle volte che chiede aiuto non solo non fa una ricerca sul web, ma non consulta nemmeno la guida!

    Quote Originariamente inviata da giustavalla Visualizza il messaggio
    Ho trovato delle indicazioni su come dividere un documento di Word
    Quindi si trova, qualcosa...
    Quote Originariamente inviata da giustavalla Visualizza il messaggio
    ma utilizzando la funzione Split che divide sì il documento ma non preserva la sua formattazione, cosa per me indispensabile.
    Anche questo non l'hai detto...
    Quote Originariamente inviata da giustavalla Visualizza il messaggio
    Ho anche trovato come dividere un documento di Word in pagine ma non è quello che mi serve.
    ... e nemmeno questo...

    Quote Originariamente inviata da giustavalla Visualizza il messaggio
    Terminate queste precisazioni, riguardo la mia originaria richiesta di aiuto cosa mi dite ?
    Nel tentativo di darti un aiuto avevo fatto una ricerca anch'io:

    http://lmgtfy.com/?q=split+word+file+programmatically

    ed ho trovato molte fonti, ed è stato a quel punto che ti ho chiesto se avevi fatto una ricerca.
    Però se dici che nessuna di queste fa al caso tuo, allora dovrai inventarti un'altra strada.

    Personalmente non ho mai avuto necessità di farlo, ma se dovessi farlo io, tenterei aprendo il file di origine utilizzando l'automazione di Word, inserirei delle interruzioni di pagina dove mi servono, poi salverei uno ad uno le parti così suddivise ognuna in un nuovo file.

    Hai scritto di avere già dei riferimenti che ti indicano la fine e l'inizio delle varie parti del documento, quindi dovrebbe essere abbastanza facile, almeno in teoria.
    Non resta che provare.

  7. #7
    Non resta che provare
    E' quello che ho fatto, specialmente leggendo quando scritto al link
    http://stackoverflow.com/questions/2...word-documents
    Tuttavia ho apportato significative modifiche, non riuscendo a creare (nel documento da dividere) delle Sezioni. Ho quindi inserito delle righe con la scritta FINE DOCUMENTO di colore bianco su sfondo bianco.
    Questo il codice da me utilizzato, codice che soddisfa pienamente le mie esigenze.
    Grazie di tutto !
    Set ObjWord = CreateObject("Word.Application")
    ObjWord.Visible = False
    Set docMultiple = ObjWord.Documents.Open(LbNomeFile.Caption)
    On Error GoTo 0

    With ActiveDocument.Content.Find
    Do While .Execute(FindText:="FINE DOCUMENTO", Forward:=True, MatchCase:=True) = True
    NumAz = NumAz + 1
    Loop
    End With
    For i = 1 To NumAz
    Z = DoEvents()
    PartitaIVA = ""
    With Selection.Find
    .Text = "FINE DOCUMENTO"
    .Forward = False
    .Execute
    .Text = ""
    End With
    Selection.Extend
    With Selection.Find
    .Text = "FINE DOCUMENTO"
    .Forward = True
    .Wrap = wdFindStop
    .Execute
    .Text = ""
    End With
    Selection.Copy
    Documents.Add
    Selection.Paste
    Call Del_All_SB

    '--- elimino il FINE DOCUMENTO
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
    .Text = "FINE DOCUMENTO"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    '---
    FileTemp = CartellaRendicontiAziende & "\" & CStr(i) & ".doc"
    ActiveDocument.SaveAs FileName:=FileTemp
    '--- devo leggere la partita iva
    For sentenceCount = 1 To ActiveDocument.Sentences.Count
    Riga = ActiveDocument.Sentences(sentenceCount)
    Z = DoEvents()
    If InStr(Riga, "XYZKJ") > 0 Then
    ele = Split(Riga, "|")
    PartitaIVA = ele(3)
    Criterio = "SELECT RagioneSociale,PartitaIVA FROM TabAziende WHERE PartitaIVA='" & PartitaIVA & "'"
    Debug.Print Criterio
    With rs
    .CursorLocation = adUseClient
    .Source = Criterio
    .Open , cnn, adOpenDynamic, adLockOptimistic, Options:=adCmdText
    End With
    If Not rs.EOF Then
    ActiveDocument.Close
    RagioneSociale = rs(0)
    FileDefinitivo = CartellaRendicontiAziende & "\" & PartitaIVA & "_" & Format$(Now, "DD-MM-YYYY") & ".doc"
    If Dir$(FileDefinitivo) <> "" Then Kill FileDefinitivo
    FileCopy FileTemp, FileDefinitivo
    Kill FileTemp
    List1.AddItem RagioneSociale & " --> " & PartitaIVA & "_" & Format$(Now, "DD-MM-YYYY") & ".doc"
    Debug.Print RagioneSociale, PartitaIVA
    Else
    ActiveDocument.Close
    List1.AddItem PartitaIVA & " NON TROVATA"
    End If
    rs.Close
    Exit For
    End If
    Next

    Next i

  8. #8

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.