A volte potresti aver bisogno di Excel per generare un numero univoco per i tuoi fogli di lavoro. Ad esempio, potresti utilizzare Excel per creare moduli come http://www.formville.com/C2_free-invoice-forms.html[invoice”s, rendiconti o fogli di monitoraggio e avrai bisogno di numeri univoci per ogni modulo ( Lo chiamerò un numero di biglietto). Questo, ovviamente, implica che Excel deve ricordare il numero da una sessione all’altra.

Ci sono un paio di modi per affrontare questo problema. Se i numeri non devono essere sequenziali, puoi creare un numero di biglietto basato sull’ora del giorno corrente, in secondi. La seguente macro può essere aggiunta all’oggetto ThisWorksheet:

Private Sub Workbook_NewSheet(ByVal Sh As Object)

Dim lTicket As Long     lTicket = CLng(Time  24  60 * 60)

Sh.Range("A1") = lTicket End Sub

La macro viene attivata ogni volta che un nuovo foglio di lavoro viene aggiunto alla cartella di lavoro. Prende l’ora corrente, la converte in un numero intero di secondi e quindi inserisce quel valore nella cella A1. La probabilità di duplicare i numeri dei biglietti in un dato giorno è remota, ma potrebbe accadere nel tempo. (Ad esempio, se oggi crei un ticket esattamente alla stessa ora di ieri o della scorsa settimana.)

Per aggirare questo problema, potresti creare un numero di ticket nel modo seguente:

Private Sub Workbook_NewSheet(ByVal Sh As Object)

Dim sTemp As String     sTemp = Format(Date, "yymmdd") & Format(Time, "hhmmss")

Sh.Range("A1") = sTemp End Sub

Questa versione del gestore eventi costruisce un numero di ticket in base sia alla data che all’ora. A meno che non si creino ticket molto rapidamente, questo approccio dovrebbe ridurre la possibilità di duplicare i numeri generati dalla macro.

Se i numeri devono essere sequenziali all’interno della cartella di lavoro corrente, è possibile definire un nome che contenga il valore elevato corrente del numero di ticket e quindi una macro che inserisca quel numero in una cella su un nuovo foglio di lavoro e incrementa il valore del valore memorizzato numero. Segui questi passaggi per iniziare:

  1. Visualizza la scheda Formule della barra multifunzione.

  2. Fare clic sullo strumento Definisci nome nel gruppo Nomi definiti. Excel visualizza la finestra di dialogo Nuovo nome. (Vedi figura 1.)

  3. Nella casella Nome immettere un nome come MaxNum.

  4. Nell’area Si riferisce a nella parte inferiore della finestra di dialogo, immettere un segno di uguale seguito dal valore che si desidera utilizzare per il numero di ticket successivo.

  5. Fare clic su OK. Il nuovo nome viene archiviato nella cartella di lavoro.

Ora aggiungi la seguente macro all’oggetto ThisWorksheet nell’editor VBA:

Private Sub Workbook_NewSheet(ByVal Sh As Object)

Dim iMax As Integer     iMax = Mid(ThisWorkbook.Names("MaxNum"), 2)

Sh.Range("A1") = iMax     iMax = iMax + 1     ThisWorkbook.Names("MaxNum").RefersTo = "=" & iMax End Sub

Questa macro viene eseguita ogni volta che si inserisce un nuovo foglio di lavoro nella cartella di lavoro. Recupera il valore memorizzato in MaxNum, inserisce tale valore nella cella A1 del nuovo foglio di lavoro e quindi incrementa ciò che è archiviato in MaxNum.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (11192) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 ed Excel in Office 365. Puoi trovare una versione di questo suggerimento per l’interfaccia di menu precedente di Excel qui: