› Excel e gli applicativi Microsoft Office › Numerazione progressiva di un documento word
-
AutoreArticoli
-
Salve a tutti, avrei bisogno di un consiglio su come implementare una numerazione automatica progressiva su un documemento word. Uso un modello per un buono acquisto di medicinali elaborato con word e avrei la neccessità che a ogni apertura del documento la numerazione si incrementasse di una unità. Allego un file del modello. Un grazie anticipato a chi volesse darmi una mano
Allegati:
You must be logged in to view attached files.Il file è un modello ma non nel senso di "modello di Word", quindi ogni volta devi ricordarti di salvare con un nome diverso.
Per raggiungere l'obiettivo ti consiglierei di trasformare il file in un documento con macro (.docm) e di inserire nell'evento New di ThisDocument un paio di righe di codice che leggano i campi numero (e anche anno, probabilmente) e lo aggiornino aumentandolo di un'unità, leggendo l'ultimo valore inserito da un piccolo file di database memorizzato nello stesso percorso del file "modello". Questo ovviamente se ci lavori solo tu e se non hai quindi problemi di condivisione di file (mi chiedo però perchè il file sia protetto, in questo caso).
Guardando qua e la in rete ho trovato questa Sub che potrebbe fare al caso mio. Ho provato ad eseguirla ma mi mette la numerazione nella prima riga (... è scritta proprio per fare ciò), mentre invece io vorrei posizionare il numeratore in una posizione diversa ma mon ci riesco. (Da tutto questa avrai capito che di vba ne capisco poco e nulla)
La sub è questa:
Sub AutoOpen()
'Visualizzo testo nascosto e posiziono il corsore per selezionare il testo
'della prima riga, numero ultim ordine fatto
ActiveWindow.View.ShowHiddenText = True
Selection.TypeText Text:="Inserimento"
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend'Aggiorno il numero dell'ordine
Num = Val(Selection.Text): Num = Num + 1: Selection.Text = Num
'Salvo il modello di documento con il numero aggiornato
ActiveDocument.Save
'dopo il segnalibro <inserimento> scrivo il numero del nuovo ordine
ActiveDocument.Bookmarks("Inserimento").Range.InsertAfter Num
'rendo non visibile il testo nascosto
ActiveWindow.View.ShowHiddenText = False
End SubMi sembra di capire che questa sub presupponga l'inserimento di un segnalibro nascosto che si chiama appunto "segnalibro"
Secondo te si può modificare inserendo il segnalibro al posto giusto nel mio documento?
Grazie e mi scuso in anticipo se ho un po di confusione....
E se, invece di complicarsi la vita, facessi il tuo bel modellino in Excel?
Per rispondere alla tua domanda, il segnalibro "Inserimento" (perchè è così che viene chiamato nel codice) è sicuramente già preimpostato nel documento, quindi lo puoi mettere a piacimento dove vuoi nel tuo documento (chiamandolo così). E di passaggio ti informo anche che la sub AutoOpen, mantenuta per compatibilità col passato, da diversi anni è sostituita dall'evento Open di ThisDocument (funziona ancora, comunque).
Sulla confusione nessun problema, siamo qui per dipanarla 🙂
Un'alternativa ai segnalibri, per certi versi più facile da gestire, se proprio vuoi continuare su questa strada, è inserire nel modello di documento una scritta che poi sostituirai a piacere.
Esempio: Fattura numero @NUMFATT di data @DATAFATT
Poi sostituisci con Replace @NUMFATT con il testo desiderato.
-
AutoreArticoli