Condividi:        

vba word 2007: inserire numerazione di pagina

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

vba word 2007: inserire numerazione di pagina

Postdi karug64 » 06/03/16 19:53

Salve a tutti.
Volendo formattare la pagina tramite cosice vba, ho registrato una macro che inserisce nel piè di pagina la numerazione.
Codice: Seleziona tutto
Application.Templates( _
        "C:\Users\KR\AppData\Roaming\Microsoft\Document Building Blocks\1040\14\Built-In Building Blocks.dotx" _
        ).BuildingBlockEntries("Numeri in grassetto 3").Insert Where:=Selection. _
        Range, RichText:=True
    Selection.Delete Unit:=wdCharacter, Count:=1
    Selection.Delete Unit:=wdCharacter, Count:=1
    Selection.Delete Unit:=wdCharacter, Count:=1
    Selection.Delete Unit:=wdCharacter, Count:=1
    Selection.TypeText Text:="Pagina "
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.TypeText Text:="di"
    Selection.Delete Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveLeft Unit:=wdCharacter, Count:=14, Extend:=wdExtend
    Selection.Font.Bold = wdToggle
    Selection.Font.Bold = wdToggle
    Selection.Font.Size = 9


Non mi è chiaro, però, come devo fare per rendere il codice "universale". Infatti sul mio computer il template è su
Codice: Seleziona tutto
C:\Users\KR\
ma sul computer dove utilizzerò il file non sarà questo.

C'e' un modo per farlo ?
Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Sponsor
 

Re: vba word 2007: inserire numerazione di pagina

Postdi Anthony47 » 07/03/16 10:05

Hai registrato la macro posizionandola nel modello Normal, e questo credo che sia non voluto.
Cancella la macro e registrala nuovamente, avendo l'accortezza di scegliere (si fa nella stessa finestra in cui imposti il nome della macro) "Memorizza macro in..." "TuoDocumento".

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

Re: vba word 2007: inserire numerazione di pagina

Postdi karug64 » 03/04/16 21:19

Salve. Riprendo questo trend, in quanto solo ora ho potuto continuare il lavoro (interrotto per vari motivi...).
Ho provato a registrare la macro sul mio documento e non su "normal". Ma quello che viene generato continua ad avere riferimenti al mio utente ...

Codice: Seleziona tutto
Application.Templates( _
        "C:\Users\KR\AppData\Roaming\Microsoft\Document Building Blocks\1040\14\Built-In Building Blocks.dotx" _
        ).BuildingBlockEntries("Numeri in grassetto 3").Insert Where:=Selection. _
        Range, RichText:=True


Mi chiedo, ma non c'e' in word 2007 la possibilità di inserire la numerazione di pagina senza utilizzare i template ? Un bel &[pagina] di &[pagine] stile excel ?

Come bypasso questo inconveniente ?

Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Re: vba word 2007: inserire numerazione di pagina

Postdi Anthony47 » 04/04/16 01:29

Probabilmente siamo andati fuori strada, perche' non vedo dove il codice registrato imposta il pie'-di-pagina come target dell'inserimento pagina; eseguito a mano sul tuo pc funziona??

Nel mio help-on-line (Word 2010) ho trovato questo suggerimento:
Codice: Seleziona tutto
With ActiveDocument.Sections(1)
 .Footers(wdHeaderFooterPrimary).PageNumbers.Add _
 PageNumberAlignment:=wdAlignPageNumberCenter,  FirstPage:=True
End With


Ma ha funzionato anche questa, che inserisce "Pagina x di y":
Codice: Seleziona tutto
Sub AddPNumber()
    ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Select
    With Selection
' With ActiveDocument.Sections(1) _
        .Footers(wdHeaderFooterPrimary).Range
        .Paragraphs(1).Alignment = wdAlignParagraphCenter
        .TypeText Text:="Pagina "
        .Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
            "PAGE ", PreserveFormatting:=True
        .TypeText Text:=" di "
        .Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
            "NUMPAGES ", PreserveFormatting:=True
    End With
    ActiveWindow.View.Type = wdPrintView
    Application.Browser.Next
    Selection.HomeKey Unit:=wdStory
End Sub

Non so se funzioneranno anche su WD2007...

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

Re: vba word 2007: inserire numerazione di pagina

Postdi karug64 » 04/04/16 07:14

Ok. Funzionano entrambe le soluzioni, ma ho un problema....

Io chiamo la sub all'inizio della composizione del testo, e tutto il testo mi viene scritto all'interno del piè di pagina. Come faccio ad impostare il piè di pagina e poi tornare a scrivere sul foglio normale ?
Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Re: vba word 2007: inserire numerazione di pagina

Postdi Anthony47 » 04/04/16 11:56

Con la Sub AddPNumber ho trovato per prove il modo di riportare il focus nella parte standard del documento (vedi ultime 3 istruzioni); non ho Wd2007 quindi non so fare le stesse prove nel tuo ambiente.

Il primo codice questo problema pero' non dovrebbe averlo, visto che la visualizzazione non cambia. Sul tuo pc il comportamento e' diverso?

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

Re: vba word 2007: inserire numerazione di pagina

Postdi karug64 » 04/04/16 19:22

Ok, Anthony. Funzionano entrambe le soluzioni. Per ovviare al problema ho inserito la chiamata alla sub alla fine della composizione del testo, prima dell'istruzione per il salvataggio.

Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22


Torna a Applicazioni Office Windows


Topic correlati a "vba word 2007: inserire numerazione di pagina":


Chi c’è in linea

Visitano il forum: Nessuno e 56 ospiti