Condividi:        

Rimuovere interruzioni di pagina e di sezione da word

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

Rimuovere interruzioni di pagina e di sezione da word

Postdi Gianca532011 » 15/12/16 21:52

Sarà capitato a tutti di recuperare un corposo file pdf, nel mio caso un testo di circa 500 pagine e volerlo tramutare in un file word.
E fin qui tutto bene, a questo punto vorrei però rimuovere la formattazione pdf, ovvero intestazione e pie pagina e tutte le interruzioni di pagina e/o di sezione.
Capirete che farlo a "manina" diventa un lavoraccio, ora ho trovato una macro che in parte funziona, nel senso che rimuove intestazione e pie pagina ma non le interruzioni di sezioni o di pagina .Ergo la rimozione è parziale perchè si interrompe sempre a ogni interruzione di sezione. in pratica sarebbe necessario operare al contrario : prima rimuovere tutte le interruzioni di sezione /e di pagina dal documento e solo dopo le intestazioni - pie pagina.
intanto che scrivevo questo msg, mi ha incuriosito il richiamo a "wordbasic" quindi ulteriore ricerca e ho trovato la macro per rimuovere le intersezioni (delesectionbreak). inserite le due macro nel mio file .doc e il risultato è stato accettabile, sparite le interruzioni di sezione e le intestazioni , non funzia sui piè pagina.

Codice: Seleziona tutto
Public Sub m()
    Dim objFSO As Object
    Dim objFolder As Object
    Dim objFile As Object
    Dim myDoc As Document
    Dim sPath As String
   
    sPath = " C:\percorso"    ‘inserire qui ove trovasi il file da manipolare
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(sPath)
   
call  DeleSectionBreaks
   
    For Each objFile In objFolder.Files
        Application.ScreenUpdating = False
        Set myDoc = Documents.Open(sPath & "\" & objFile.Name)
        WordBasic.RemoveHeader
        WordBasic.RemoveFooter
        myDoc.Save
        myDoc.Close
        Set myDoc = Nothing
    Next
   
    Application.ScreenUpdating = True
   
    Set objFile = Nothing
    Set objFolder = Nothing
    Set objFSO = Nothing
End Sub


in un modulo inserire :
Codice: Seleziona tutto
Sub DeleSectionBreaks()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^b"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 324
Iscritto il: 27/05/11 10:18

Sponsor
 

Re: Rimuovere interruzioni di pagina e di sezione da word

Postdi wallace&gromit » 15/12/16 22:48

senza usare le macro puoi anche scegliere sostituisci dal menu Home.
Trova: ^b
sostituisci con: ^p
clicca su sostituisci tutto
e ti toglie tutte le interruzioni di sezione

Trova: ^m
sostituisci con: ^p
clicca su sostituisci tutto
e ti toglie tutte le interruzioni di pagina
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Rimuovere interruzioni di pagina e di sezione da word

Postdi Gianca532011 » 16/12/16 20:51

Nota : le due macro sono da inserire nel foglio medesimo dal quale si vuole rimuovere intestazioni e/o interruzione di sezione; ho provato con foglio esterno ma non funziona il salvataggio del file convertito.
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 324
Iscritto il: 27/05/11 10:18

Re: Rimuovere interruzioni di pagina e di sezione da word

Postdi Anthony47 » 19/12/16 17:55

Non ho capito se adesso hai ancora il problema sulla rimozione dei footer (che a me funziona invece decorosamente) o se risolto quello non funziona il myDoc.Save; in questo secondo caso ti esce qualche messaggio (quale) o finge di salvare ma non l'ha fatto o che cosa.
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Rimuovere interruzioni di pagina e di sezione da word

Postdi Gianca532011 » 19/12/16 18:37

Ciao Anthony, le due macro funzionano "decorosamente" se lanciate dal medesimo foglio dal quale si vuole rimuovere le interr. di sezione / pagina nonchè le intestazioni . Non mi funzionava affatto con le due macro inserite in un foglio word che faccia riferimento ( percorso C:\...) al file testo. Sembra convertire qualcosa ma non salva una mazza.
Quest'ultima opzione mi sembrava solo più "pratica e funzionale" rispetto al muovere le macro sul foglio testo, ma va bene lo stesso .

Comunque, a parte capire dove sbaglio, tieni conto che ho rimosso tutto da un file con 500 pagine =1000 facciate passandole da pdf a word e quindi ripulite dalle intestazioni ecc.
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 324
Iscritto il: 27/05/11 10:18

Re: Rimuovere interruzioni di pagina e di sezione da word

Postdi Anthony47 » 20/12/16 15:09

Senza stravolgere la macro ho riposizionato l'istruzione Call DeleSectionBreak e secondo me funzionera':
Codice: Seleziona tutto
    Set objFolder = objFSO.GetFolder(sPath)
'Call DeleSectionBreaks                 'Tolta da qui
    For Each objFile In objFolder.Files
''        Application.ScreenUpdating = False
        Set myDoc = Documents.Open(sPath & "\" & objFile.Name)
        Call DeleSectionBreaks          'Spostata qui
        WordBasic.RemoveHeader
        WordBasic.RemoveFooter

Il codice (quello tuo, anche dopo questa modifica) prevede che nella directory indicata ci siano solo file word da "lavorare".

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

Re: Rimuovere interruzioni di pagina e di sezione da word

Postdi Gianca532011 » 20/12/16 18:38

Grazie Anthony, funziona perfettamente.

Una sola avvertenza, la trasposizione da pdf a word è utile farla in formato .docx, vale a dire che il file ottenuto è molto più piccolo rispetto al formato .doc .Nel mio caso: pdf di partenza = 10978 kb, doc =278113 kb, docx= 9201 kb.


Nb anche le pagine si sono ridotte considerevolmente : pdf 504, docx dopo rimozione interruzioni e intestazioni =450.
Ovvero = al 10 % ca di carta risparmiata :lol: :D
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 324
Iscritto il: 27/05/11 10:18

Re: Rimuovere interruzioni di pagina e di sezione da word

Postdi Gianca532011 » 08/01/17 12:06

Giusto per concludere, allego file word con macro, istruzioni e pulsante di attivazione.


ps x Anthony : l'insieme funziona, però - quando hai tempo - mi piacerebbe un tuo parere su errori e possibili semplificazioni. Giusto per imparare.

http://www.filedropper.com/vbamodellorimuovi3
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 324
Iscritto il: 27/05/11 10:18

Re: Rimuovere interruzioni di pagina e di sezione da word

Postdi Gianca532011 » 08/01/17 13:52

Ovviamente la macro non interviene sulla punteggiatura , rimuove solo ed esclusivamente tutta la formattazione che spesso "allunga" inutilmente le pagine da leggere/stampare.
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 324
Iscritto il: 27/05/11 10:18

Re: Rimuovere interruzioni di pagina e di sezione da word

Postdi Anthony47 » 10/01/17 00:15

Premetto che sul vba di word ho una infarinatura di massima con pochissima esperienza, comunque la macro non ha fronzoli da rimuovere.
L'unica semplificazione si potrebbe fare nella parte che apre il file, evitando l'uso degli script FileSystemObject e usando la funzione Dir del vba.
Codice: Seleziona tutto
Public Sub Canc_Interruzioni()
'    Dim objFSO As Object
'    Dim objFolder As Object
'    Dim objFile As Object
    Dim myDoc As Document
    Dim sPath As String, myFile As String
   
    sPath = "C:\Users\gianca\Desktop\pulizia"    'inserire qui ove trovasi il file da manipolare
    myFile = Dir(sPath & "\*.doc*")
    Do
        If myFile = "" Then Exit Do
        Set myDoc = Documents.Open(sPath & "\" & myFile)
        Call CancIntRigaMan
        Call CancSegnoParagr
        Call Delbreaks   ' rimuove interruzioni di pagina
        Call DeleSectionBreaks ' rimuove interruzione di sezione
        WordBasic.RemoveHeader
        WordBasic.RemoveFooter
        ActiveDocument.Range.Font.Name = "Calibri"  'cambia carattere
        ActiveDocument.Range.Font.Size = 14    'cambia dimensione carattere
        myDoc.Close True
        myFile = Dir
    Loop
    Application.ScreenUpdating = True
    Set myDoc = Nothing
    MsgBox ("Finito.")
End Sub

Questa processa tutti i file ".doc*" presenti nella directory dichiarata, come in parte previsto dalla tua macro (che non verifica che i file presenti siano di tipo .Doc); se come pare nella cartella ci sara' solo un file allora si potrebbero risparmiare ancora un paio di righe (quelle che gestiscono il loop).

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

Re: Rimuovere interruzioni di pagina e di sezione da word

Postdi Gianca532011 » 10/01/17 08:56

L'errore l'ho trovato io e me ne vergogno come un cane che l'ha fatta fuori dal vasino ... :oops:

interruzzione con due zeta , mi vedesse il mio prof di italiano ... :)
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 324
Iscritto il: 27/05/11 10:18

Re: Rimuovere interruzioni di pagina e di sezione da word

Postdi Anthony47 » 10/01/17 19:19

Ho corretto l'orrrrore e domani cancellero' anche queste confessioni catartiche....
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Rimuovere interruzioni di pagina e di sezione da word":


Chi c’è in linea

Visitano il forum: Nessuno e 54 ospiti