00 23/04/2021 15:38
Ciao a tutti.
Premetto che è solo una curiosità accademica.
In pratica in questo script:
 Sub numera() 
Dim prev() 
Dim sh As Worksheet 
ReDim Preserve prev(Worksheets.Count) 
Max = 0 
For i = 1 To Worksheets.Count     
           prev(i) = Split(Worksheets(i).Name, "21-10") 'fino a 100 usare ->21-0 dopo 21-10     
           On Error Resume Next     
           If prev(i)(1) > Max Then Max = prev(i)(1)     
           On Error GoTo 0 
Next i 
Max = Max + 1 Worksheets("master (2)").Name = "21-10" & Max 'fino a 100 usare ->21-0 dopo 21-10 
Call EstraiNomeFoglio 
End Sub


Da 21-001 a 21-099 -> uso:
 ...............   
           prev(i) = Split(Worksheets(i).Name, "21-0")     
           ............
           Max = Max + 1 Worksheets("master (2)").Name = "21-0" & Max 
           .............


Successivamente per avere il foglio numerato da 21-100 fino a 21-999 effettuo una correzione manuale dello script:
 ...............   
           prev(i) = Split(Worksheets(i).Name, "21-10")     
           ............
           Max = Max + 1 Worksheets("master (2)").Name = "21-10" & Max 
           .............


Ma se volessi evitarla?
PS i primi due numeri indicano l'anno in corso.

Grazie per l'aiuto.
[Modificato da BG66 23/04/2021 15:41]
BG66
Excel 2010