Condividi:        

Macro per eliminare pagine vuote 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

Macro per eliminare pagine vuote word

Postdi johnatan69 » 21/02/18 15:39

Salve. Mi servirebbe una macro per eliminare tutte le pagine vuote in un file word senza dover scorrere l'intero file. In ufficio utilizziamo sia office 2007 che 2010. Grazie in anticipo.
johnatan69
Utente Junior
 
Post: 30
Iscritto il: 21/02/18 15:32

Sponsor
 

Re: Macro per eliminare pagine vuote word

Postdi Marius44 » 21/02/18 15:43

Ciao
premetto che non sono esperto di Word ma, mi chiedevo,cosa intendi per "pagine vuote".
Ci sono forse delle interruzioni di pagina? Se il problema fosse questo, elimina le interruzioni di pagina e il testo dovrebbe ritornare senza pagine vuote.

Ciao,
Mario
Marius44
Utente Senior
 
Post: 655
Iscritto il: 07/09/15 22:00

Re: Macro per eliminare pagine vuote word

Postdi Anthony47 » 22/02/18 00:50

Ciao Mario; in effetti se ha pagine vuote, o ci sono delle "iterruzioni di pagina" oppure delle "interruzioni di sezione".
Puo' fare un Trova /Sostituisci e dovrebbe risolvere.

Per le interruzioni di pagina
Trova = ^m
Sostituisci = ^p

Per le interruzioni di sezione
Trova = ^b
Sostituisci = ^p

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

Re: Macro per eliminare pagine vuote word

Postdi johnatan69 » 22/02/18 08:23

Il problema è che viene generato un file txt da un emulatore di stampa Ibm, che per comodità apriamo con word. Purtroppo genera dei "fogli bianchi", superflui. Cancellare manualmente tutte le interruzioni di pagina porta via troppo tempo ( file con 250 pagine in media). Ho provato:
Per le interruzioni di pagina
Trova = ^m
Sostituisci = ^p

Ma salta la corretta impaginazione.
johnatan69
Utente Junior
 
Post: 30
Iscritto il: 21/02/18 15:32

Re: Macro per eliminare pagine vuote word

Postdi johnatan69 » 22/02/18 08:27

Ho trovato questa, ma anche correggendo gli errori di traduzione delle istruzioni non funziona:

Mostra più istruzioni
1
Premere " Alt " e " F11 " insieme nel documento di Word che si desidera rimuovere gli spazi da aprire Visual Basic Editor ( VBE ) .
2

Fare clic su " Inserisci" e poi cliccare su " modulo " per inserire una finestra vuota del modulo .
3

Cut e incollare il codice seguente nella finestra del modulo vuoto :
Codice: Seleziona tutto
pubblico DeleteBlankPage Sub ( ) per

Selection.GoTo Cosa: = wdGoToBookmark , Name : = " \\ pagina"
isBlankSelection poi
Selection.Delete
End If End Sub


Codice: Seleziona tutto
Public Function BlankPageSelection ( ) per

For Each c In Selection.Characters
Se ( c < > vbCr E c < > vbTab E c < > vbFormFeed E c < > " ") Then
BlankPageSelection
= False

Exit Function End If

Avanti
BlankPageSelection = True
End Function

4

Premere " F5 "per eseguire la routine ed eliminare le pagine bianche dal documento .
johnatan69
Utente Junior
 
Post: 30
Iscritto il: 21/02/18 15:32

Re: Macro per eliminare pagine vuote word

Postdi Anthony47 » 22/02/18 13:28

Ma il linguaggio macro mica va tradotto...

Con il Trova e Sostituisci i simboli da cercare sono:
^b = interruzione di sezione
^m = interruzione di pagina

Le sostituzioni ragionevoli sono:
^l = Interruzione di riga
^p = "segno di paragrafo"
^v = "carattere di paragrafo"

Intanto io farei manualmente una ricerca di "interruzioni di sezione" (perche' penso non ne troveremo, quindi capiremo che basta limitarsi alle "interruzioni di pagina"; o se invece bisogna lavorare anche sulle "interruzioni di sezione).

Poi per prova determini quale delle sostituzioni e' quella giusta per te: esegui un Trova e Sostituisci (dovrebbe avviarsi tramite Contr-Maiusc-s) e prova a sostituire con ?l; fai subito Contr-z (cioe' Annulla) e riprovi con ^p e poi con ^v.

Infine, volendo ti registri una macro mentre avvii il comando Sostituisci, inserisci i caratteri da cercare e quello da eliminare, premi Sostituisci tutto. Cosi' all'occorrenza ti bastera' avviare la macro per eseguira l'intera sostituzione

Per il primi rudimenti su come registrare una macro, guarda qui: viewtopic.php?f=26&t=103893&p=622593#p622593
(i dettagli sono per Excel, ma i concetti e le modalita' sono comuni con Word)

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

Re: Macro per eliminare pagine vuote word

Postdi johnatan69 » 22/02/18 13:47

Anthony47, la traduzione è stata fatta automaticamente dal sito in inglese... Nella stringa dove doveva esserci what c'è scritto cosa, and è scritto e... Intendevo dire che anche correggendo gli errori vba, la macro non funziona lo stesso.
Come dicevo sopra con le sostituzioni mi modifica l'impaginazione e quindi non risolvo il problema purtroppo.
johnatan69
Utente Junior
 
Post: 30
Iscritto il: 21/02/18 15:32

Re: Macro per eliminare pagine vuote word

Postdi Anthony47 » 22/02/18 14:24

Ma hai già provato con tutte e tre le combinazioni segnalate?

Per altri suggerimenti dovresti allegare un file txt dimostrativo.

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

Re: Macro per eliminare pagine vuote word

Postdi johnatan69 » 22/02/18 15:02

Grazie Anthony. Si ho provato con tutte le combinazioni. Appena posso allego txt. Grazie ancora.
johnatan69
Utente Junior
 
Post: 30
Iscritto il: 21/02/18 15:32

Re: Macro per eliminare pagine vuote word

Postdi johnatan69 » 22/02/18 15:26

Purtroppo mi sono reso conto che i file generati hanno dati sensibili e non posso pubblicarli. Scusami.
johnatan69
Utente Junior
 
Post: 30
Iscritto il: 21/02/18 15:32

Re: Macro per eliminare pagine vuote word

Postdi wallace&gromit » 22/02/18 17:02

sarebbe utile sapere se le pagine vuote sono totalmente vuote oppure magari hanno una serie di segni di paragrafo che creano una pagina vuota. In questo caso conti quanti sono i segni e fai un sostituisci ^p^p^p^p... con un solo ^p
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Macro per eliminare pagine vuote word

Postdi johnatan69 » 22/02/18 17:41

Sono completamente vuote.
johnatan69
Utente Junior
 
Post: 30
Iscritto il: 21/02/18 15:32

Re: Macro per eliminare pagine vuote word

Postdi Anthony47 » 22/02/18 23:39

Capisco che sembrino "completamente vuote"; che lo siano davvero e' tutto da dimostrare.

Suggerimento:
-cerca un doppio salto pagina (equivalente a ^m^m) e sostituisci con 1 solo ^m

Se non funziona, senza file txt di prova non si va lontano.

Quindi,suggerimento2: Apri il txt con Notepad e creane una versione di una decina di pagine (spero che il testo contenga delle intestazioni che ti consentono di capire dove cominciano e dove finiscono 10 pagine).
Accertati che questo ritagli contenga delle pagine vuote (non so come farai, alla peggio lo apri con Word e lo ispezioni). Non modificare o salvare il file tramite Word, manipola il file solo in Notepad.
Poi con santa pazienza, sempre su Notepad, sostituisci tutte le a con Z, poi le b con Z, poi le c con Z e hai capito come farle tutte 21 oppure 26. In questo modo avremo un file illegibile (penso) ma di formato pari all'originale. Se anche i numeri ti danno fastidio, allora sostituisci tutti gli 1 con 9, i 2 ancora con 9, etc etc.

In questo modo probabilmente potresti modificare e pubblicare il file intero senza cercare di tagliarlo.
Per le istruzioni su come allegare un file:
viewtopic.php?f=26&t=103893&p=605487#p605487

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

Re: Macro per eliminare pagine vuote word

Postdi johnatan69 » 23/02/18 08:42

Ciao Anthny47. Prima di tutto grazie per la tua pazienza e disponibilità.
Ho provato con il doppio salto pagina ma non trova alcuna sostituzione.
Ho seguito il tuo consiglio per mascherare il file txt e quindi lo allego.
Quando lo apri con Word il layout di pagina va modificato con il margine stretto predefinito di word (office 2010) per la corretta impaginazione. Il font lo importa automaticamente ma in ogni caso è courier new 10,5.
Link

http://www.filedropper.com/filetesto-copia

Grazie
johnatan69
Utente Junior
 
Post: 30
Iscritto il: 21/02/18 15:32

Re: Macro per eliminare pagine vuote word

Postdi wallace&gromit » 23/02/18 09:08

dunque le pagine non sono vuote! ma contengono 24 volte la combinazione spazio /segno di paragrafo seguite da un'interruzione di pagina.
Sostituisci " ^p ^p ^p ^p ^p ^p ^p ^p ^p ^p ^p ^p ^p ^p ^p ^p ^p ^p ^p ^p ^p ^p ^p ^p"
con ^p ed il gioco è fatto

PS: non è del tutto vero! devi ancora lavorarci un po': i segni di paragrafo possono essere anche meno, allora inizi la prima volta con queste 24 sostituzioni, poi cancelli a mano a mano un segno di paragrafo passando a 23, 22, 21 ecc..più o meno a 5 puoi fermarti, perché non mi sembra ce ne siano così pochi

PS2: per vedere cosa c'è sulla tua pagina devi attivare il segno di paragrafo "Mostra tutto" Nel Menu Home/paragrafo
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Macro per eliminare pagine vuote word

Postdi johnatan69 » 23/02/18 11:13

Grazie Anthony47.

L'ho costruita così e sembra funzionare:
Codice: Seleziona tutto
Sub bianche()
'
' bianche Macro
'
'
    With Selection.PageSetup
        .LineNumbering.Active = False
        .Orientation = wdOrientPortrait
        .TopMargin = CentimetersToPoints(1.27)
        .BottomMargin = CentimetersToPoints(1.27)
        .LeftMargin = CentimetersToPoints(1.27)
        .RightMargin = CentimetersToPoints(1.27)
        .Gutter = CentimetersToPoints(0)
        .HeaderDistance = CentimetersToPoints(1.25)
        .FooterDistance = CentimetersToPoints(1.25)
        .PageWidth = CentimetersToPoints(21)
        .PageHeight = CentimetersToPoints(29.7)
        .FirstPageTray = wdPrinterDefaultBin
        .OtherPagesTray = wdPrinterDefaultBin
        .SectionStart = wdSectionNewPage
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .VerticalAlignment = wdAlignVerticalTop
        .SuppressEndnotes = False
        .MirrorMargins = False
        .TwoPagesOnOne = False
        .BookFoldPrinting = False
        .BookFoldRevPrinting = False
        .BookFoldPrintingSheets = 1
        .GutterPos = wdGutterPosLeft
    End With
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    Selection.Delete Unit:=wdCharacter, Count:=1
    Selection.WholeStory
    With ListGalleries(wdBulletGallery).ListTemplates(1).ListLevels(1)
        .NumberFormat = ChrW(61623)
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleBullet
        .NumberPosition = CentimetersToPoints(0.63)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = CentimetersToPoints(1.27)
        .TabPosition = wdUndefined
        .ResetOnHigher = 0
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = "Symbol"
        End With
        .LinkedStyle = ""
    End With
    ListGalleries(wdBulletGallery).ListTemplates(1).Name = ""
    Selection.Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:= _
        ListGalleries(wdBulletGallery).ListTemplates(1), ContinuePreviousList:= _
        False, ApplyTo:=wdListApplyToWholeList, DefaultListBehavior:= _
        wdWord10ListBehavior
    Selection.Range.ListFormat.RemoveNumbers NumberType:=wdNumberParagraph
    Selection.Paragraphs.Outdent
    Selection.Paragraphs.Outdent
    Selection.MoveDown Unit:=wdScreen, Count:=242
    ActiveWindow.ActivePane.VerticalPercentScrolled = 0
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^p^p^p^p^p^p^p^p^p^p^p^p^p^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^p^p^p^p^p^p^p^p^p^p^p^p^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^p^p^p^p^p^p^p^p^p^p^p^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^p^p^p^p^p^p^p^p^p^p^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^p^p^p^p^p^p^p^p^p^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^p^p^p^p^p^p^p^p^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^p^p^p^p^p^p^p^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^p^p^p^p^p^p^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^p^p^p^p^p^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "^p^p^p^p^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.MoveDown Unit:=wdScreen, Count:=37
    Selection.MoveUp Unit:=wdScreen, Count:=3
    Selection.MoveDown Unit:=wdLine, Count:=13
    Selection.MoveUp Unit:=wdLine, Count:=2
    Selection.MoveDown Unit:=wdLine, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=9
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    Selection.Delete Unit:=wdCharacter, Count:=1
    ActiveWindow.ActivePane.View.ShowAll = Not ActiveWindow.ActivePane.View. _
        ShowAll
End Sub



Eventualmente ho una buona base dalla quale partire.

Spero possa essere utile anche ad altri.

Grazie mille!
johnatan69
Utente Junior
 
Post: 30
Iscritto il: 21/02/18 15:32

Re: Macro per eliminare pagine vuote word

Postdi wallace&gromit » 23/02/18 15:05

Strano che funzioni anche senza lasciare lo spazio tra i segni di paragrafo... però se funziona, bene così!

P.F. quando inserisci un codice clicca prima sul pulsante "Code" e incolla lì il testo, in modo da rendere più leggibile il tuo messaggio
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Macro per eliminare pagine vuote word

Postdi Anthony47 » 23/02/18 15:31

Mamma mia, dopo tutto l'impegno di johnatan mi sento a disagio a pubblicare la mia proposta:
Codice: Seleziona tutto
Sub MassRepl()
    Dim fString As String, fRepl As String
    Dim fCount As Long
For i = 10 To 2 Step -1
    fString = ""
    For j = 1 To i
        fString = fString & " ^p"
    Next j
   
    fRepl = " ^p"
    If fString > "" Then
        Do
        fCount = 0
        With Selection
            .HomeKey Unit:=wdStory
            With .Find
                .ClearFormatting
                .Text = fString
'                .Replacement.Text = fString    'non funziona
                'Cerca:
                Do While .Execute
                    fCount = fCount + 1
                    Selection.Range.Text = " " & vbCrLf
                    Selection.MoveLeft
                Loop
            End With
            Debug.Print fString & " - "; fCount & " volte"
        End With
'    Stop
    If fCount = 0 Then Exit Do
    Loop
    End If
Next i
MsgBox ("Completato...")
End Sub

Se ometto lo "spazio" prima di ^p la macro non trova niente da sostituire.

Tuttavia nel txt ho notato che non tutti i "^p" sono preceduti da uno "spazio", qualcuno e' anche preceduto da un carattere chr(10) (corrisponde al comando "linefeed").
Ad esempio, se vai (dopo l'esecuzione della macro) a pag 55 e attivi la visualizzazione dei simboli (premi tasto Contr + tasto "parentesi aperta") noterai in fondo tre segni di "paragrafo" (il simbolo che somiglia al "pi-greco"); ma solo 2 sono trovati usando " ^p".
Mi pare che il documento ne contenga 4 in posizione che non danno fastidio e consentono la corretta impaginazione finale; non si puo' escludere che in caso di presenza piu' massiccia l'identificazione delle sequenze da rimuovere possa andare in crisi e lasciare qualche pagina vuota.

Ho aggiunto al tuo codice i tag "code", ricordati la prossima volta: selezioni il codice, premi il tasto Code che trovi in testa al box in cui scrivi il messaggio (se non lo vedi allora probabilmente sei in "Risposta veloce"; premi Editor completo e lo dovresti vedere)

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

Re: Macro per eliminare pagine vuote word

Postdi johnatan69 » 23/02/18 16:01

Anthony ho notato che alcuni paragrafi erano preceduti da elenchi puntati e/o spazi. Per quello ho formattato in maniera da avere una situazione più omogenea.
Lunedì in ufficio proverò la tua soluzione che sono sicuro sarà più efficace della mia! :-)
Scusate per la mancanza del tag... Errori di gioventù. ;-)
Grazie mille per i preziosi consigli!
johnatan69
Utente Junior
 
Post: 30
Iscritto il: 21/02/18 15:32

Re: Macro per eliminare pagine vuote word

Postdi johnatan69 » 26/02/18 12:14

Buongiorno.
Anthony chiaramente la tua macro funziona perfettamente.
Però c'è un ultimo problemino, sia con quella creata da me che con la tua.
Mi rimane ogni tanto una riga (e quindi una pagina vuota) che inizia con un carattere speciale ◄ (ascii 017) che vorrei eliminare, ma non riesco ad inserire il carattere speciale in VBA ne, chiaramente, in trova e sostituisci.
Nel file di prova si presenta, dopo l'attivazione della macro, solo nella prima pagina, in altri, più lunghi, si presenta alcune volte lungo tutto il file.
C'è una soluzione?
johnatan69
Utente Junior
 
Post: 30
Iscritto il: 21/02/18 15:32

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Macro per eliminare pagine vuote word":

consumo pagine web
Autore: nikita75
Forum: Software Windows
Risposte: 4

Chi c’è in linea

Visitano il forum: Nessuno e 104 ospiti