Forse con l'array ti complichi la vita, perchè risulta piuttosto articolato gestire il cambio di anno.
Visto che i nomi dei fogli contengono i mesi, puoi ricavarli facilmente impostando mese e anno di inizio e mese e anno di fine, incrementando la data di partenza di un mese alla volta, fino a giungere alla data di fine.
Dalla data calcolata ad ogni iterazione puoi estrarre mese e anno componendo il nome del foglio da riepilogare.
Prova con la routine seguente:
codice:
Sub CicloMesi()
Dim MesePart As Integer
Dim AnnoPart As Integer
Dim MeseFine As Integer
Dim AnnoFine As Integer
Dim DataPart As String
Dim DataFine As String
MesePart = 1: AnnoPart = 2008
MeseFine = 3: AnnoFine = 2009
DataPart = CDate("01/" & MesePart & "/" & AnnoPart)
DataFine = DateAdd("m", 1, CDate("01/" & MeseFine & "/" & AnnoFine))
While Not DataPart = DataFine
NomeFoglio = StrConv(MonthName(Month(DataPart)) & "_" & Year(DataPart), vbProperCase)
'Operazioni di riepilogo
'da eseguire sul foglio
DataPart = DateAdd("m", 1, DataPart)
Wend
End Sub
Ovviamente per semplicità io ho inserito i valori relativi a data iniziale e finale come costanti direttamente nel codice, ma tu puoi tranquillamente prenderli dal foglio di lavoro ove sono specificati.
Boolean