Ciao,
il nome è Nuovo(2) perché viene assegnato in automatico da excel, se vuoi dargliene uno specifico devi impostare la proprietà Name.
Riguardo alla cella I20, il motivo per cui imposta sempre 1 è che ogni volta che la macro viene eseguita si ricomincia daccapo e i vecchi valori delle variabili vengono persi (e anche se non fossero persi la i verrebbe comunque reinizializzata dalla Dim e dalla successiva impostazione a zero).
Come hai correttamente osservato, per fare quello che ti serve occorre un ciclo, cioè un'istruzione (come la For ... Next) che permetta di eseguire per un certo numero di volte la copia del foglio, l'assegnazione del nome e l'impostazione della variabile (il tutto eseguendo una sola volta la macro).
Una cosa di questo genere:
L'istruzione For è uno dei modi per eseguire un ciclo (ce ne sono anche altri), in questo caso il ciclo viene eseguito 5 volte incrementando ogni volta l'indice i partendo da 1.codice:Sub Macro1() ' ' Macro1 Macro Dim i As Integer For i = 1 To 5 Sheets("Nuovo").Copy After:=Sheets(i) ActiveSheet.Name = "Nuovo(" & i & ")" ActiveSheet.[I20] = i Next End Sub
Per copiare il foglio non è necessario selezionarlo prima (a meno che tu non ne abbia bisogno per altri motivi), basta semplicmente indicarne il nome prima del metodo Copy.
Il nome di ogni foglio, come vedi, lo costruisco concatenando tre pezzi: una striga fissa "Nuovo(" poi il valore di i e poi un'altra stringa fissa ")" ma tu puoi utilizzare anche altre regole se preferisci.
Nota che la copia rende attivo il nuovo foglio quindi per attribuirgli il nome si può far far riferimento semplicemente ad ActiveSheet.
Infine, per assegnare il valore ad una cella bisogna utilizzare la proprietà "Value" (che è il default, quindi non occorre neanche indicarla), non la "FormulaR1C1" che serve per assegnare una formula in formato R1C1 e non occorre neanche la select preventiva, basta semplicemente assegnarle il valore.