Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    141

    [VBA-Word] Aggiornare Campi in Intestazione

    Se inserisco nelle intestazioni di una sezione un campo per scrivere il "NomeAutore" preso dalle proprietà del file come posso aggiornare tali campi con una macro. L'inconveniente è dato dal fatto che se seleziono il documento e schiaccio F9 si aggiornano solo quelli nel testo principale. Se nelle opzioni metto la linguetta ad aggiornamento campi prima della stampa è sufficiente fare anteprima di stampa per aggiornare i campi nelle intestazioni.
    Ho provato a fare una macro For-Each estesa a tutti i campi dell'insieme Fields e fare UpDate ma ciò mi funziona solo nel testo principale.
    Credo che la soluzione sia di rendere attive le intestazioni e poi ciclare su esse in modo da aggiornare tutti i campi che esse contengono.
    Non riesco però a farlo
    La vita è come la scaletta di un pollaio: in salita, corta e piena di m***a!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    141
    Provate questa routine:

    Public Sub AggiornaCampo()
    Dim Flag As Boolean
    Dim Campo As Field
    Dim Sommario As TableOfContents
    For Each Campo In Application.ActiveDocument.Fields 'CICLA SUI CAMPI DEL DOCUMENTO, PER AGGIORNARE (FORSE INUTILE, BASTEREBBE SOTTO)
    Campo.Update
    Next
    Flag = Application.Options.UpdateFieldsAtPrint
    Application.Options.UpdateFieldsAtPrint = True 'IMPOSTA AGGIORNAMENTO TUTTI I CAMPI CON STAMPA UNICO MODO TROVATO PER AGGIORNARE I CAMPI NELLE INTESTAZIONI E FONDO PAGINA
    Application.ActiveDocument.PrintPreview 'ANTEPRIMA STAMPA, PER AGGIORNARE I CAMPI
    Application.ActiveDocument.ClosePrintPreview 'CHIUDE ANTEPRIMA DI STAMPA
    Application.Options.UpdateFieldsAtPrint = Flag 'REIMPOSTA OPZIONI DI PRECEDENTI PER AGGIORNAMENTO CAMPI CON STAMPA
    For Each Sommario In Application.ActiveDocument.TablesOfContents
    Sommario.Update 'AGGIORNAMENTO DEL SOMMARIO
    Next
    Application.ActiveDocument.Save
    End Sub

    sono riuscito ad aggiornare i campi solo con anteprima di stampa, non in altro modo...strano è però che i campi nel cocumento non me li aggiorna e quindi devo fare il primo ciclo (uso versione Office 2000, sarà forse un suo baco!?!?!)

    in ogni caso ho visto che se si prova tutto ciò su di un documento di grandi dimensioni il pc tende a piantarsi e non so il perchè, dov'è che sbagio
    La vita è come la scaletta di un pollaio: in salita, corta e piena di m***a!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    141
    ho modificato e funziona tutto bene:

    Public Sub AggiornaCampo()
    Selection.WholeStory 'MOLTO MEGLIO
    Application.ActiveDocument.Fields.Update 'MOLTO MEGLIO
    'Application.ActiveDocument.Sections '.Document

    'Dim Flag As Boolean
    'Dim Campo As Field
    'Dim Sommario As TableOfContents
    'For Each Campo In Application.ActiveDocument.Fields 'CICLA SUI CAMPI DEL DOCUMENTO, PER AGGIORNARE (FORSE INUTILE, BASTEREBBE SOTTO)
    ' Campo.Update
    'Next
    Flag = Application.Options.UpdateFieldsAtPrint
    Application.Options.UpdateFieldsAtPrint = True 'IMPOSTA AGGIORNAMENTO TUTTI I CAMPI CON STAMPA UNICO MODO TROVATO PER AGGIORNARE I CAMPI NELLE INTESTAZIONI E FONDO PAGINA
    Application.ActiveDocument.PrintPreview 'ANTEPRIMA STAMPA, PER AGGIORNARE I CAMPI
    Application.ActiveDocument.ClosePrintPreview 'CHIUDE ANTEPRIMA DI STAMPA
    Application.Options.UpdateFieldsAtPrint = Flag 'REIMPOSTA OPZIONI DI PRECEDENTI PER AGGIORNAMENTO CAMPI CON STAMPA
    For Each Sommario In Application.ActiveDocument.TablesOfContents
    Sommario.Update 'AGGIORNAMENTO DEL SOMMARIO
    Next
    Application.ActiveDocument.Save
    End Sub

    cos' facendo al posto di ciclare sui campi da aggiornare seleziono tutto il documento ed aggiorno i campi che vi sono nella selezione (cioè tutti quelli nel documento principale che è stato selezionato)
    tuttavia oscuro ancora il motivo per cui non si possano aggiornare i vari campi nelle intestazioni e piè di pagina senza il trucco dell'anteprima di stampa e la modifica dell'opzione di aggiornamento campi prima della stampa
    La vita è come la scaletta di un pollaio: in salita, corta e piena di m***a!!

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.