devo aggiungere e rinominare un centinaio di fogli;
il codice in uso, commentando o scommentando alcune linee, è il seguente:
- Codice: Seleziona tutto
sub aggiungi
Dim ws2 As Worksheet
Dim i As Integer
Set ws2 = Worksheets("Foglio2")
RigaIni = 3
RigaFine = ws2.Range("A" & Rows.Count).End(xlUp).Row
indice=4 'linea1 <<<
For i = RigaIni To RigaFine
NomeF = ws2.Range("A" & i)
ws2.Copy After:=Worksheets(Worksheets.Count) 'linea2 <<<
Sheets.Add After:=Sheets(Sheets.Count) 'linea3 <<<
ActiveSheet.Name = NomeF
ActiveSheet.Index = indice 'linea 4 <<<
indice=indice + 1 'linea5 <<<
Next i
end sub
il codice funziona, ma con la linea 2 impiega molto tempo;
tenendo conto anche dei tempi di esecuzione delle altre macro che devo inserire nel progetto,
devo prevedere una ridotta velocità di esecuzione;
con la linea 3 si riduce il tempo di esecuzione, ma dovendo eliminare i fogli e successivamente ricrearli,
ho notato che al primo ciclo, gli indici sono in successione ai 3 fogli di default,
ma poi ad ogni successivo ciclo di creazione gli indici dei fogli generati continua ad aumentare;
se quindi dovessi ripetere 100 volte lo stesso ciclo di creazione fogli, mi ritroverei a degli indici del tipo
10000,10001...
ho pensato di introdurre allora,insieme alla linea 3, le linee 1,4 e 5, in modo che ad ogni ciclo l'indice parte da 4,
ma non funziona ricevendo errore alla linea 4.
dalle ricerche sul web pare che sia una operazione non realizzabile oppure non è capitato ad altri un simile
problema visto che non vi è un argomento simile alla mia richiesta.
esiste la possibilità di modificare gli indici, se si come ?
ciao e grazie