Macro pour copier une feuille et renommer

Fermé
nemotri Messages postés 175 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 8 décembre 2017 - 12 août 2009 à 23:52
nemotri Messages postés 175 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 8 décembre 2017 - 15 oct. 2009 à 17:23
Bonjour à tous,

J'ai à nouveau besoin de votre aide.
Voilà j'ai un fichier excel où j'ai créé 3 feuilles nommées "S 1", "N 1" et "C 1".

Je souhaiterai réaliser une macro qui me copie 51 fois la feuille "S 1" tout en me renommant au fur et à mesure les copies en "S 2", "S 3"...jusqu'à "S 52" donc.

Si vous pouviez me donner la solution ce serait super car je galère vraiment avec VBA...

nb : ensuite je compte réexécuter cette même macro (en changeant les termes des pages bien sûr) pour copier 51 fois la feuille "N 1" et 51 fois la feuille "C 1".

merci d'avance.
A voir également:

8 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
13 août 2009 à 11:41
Salut,
Comme ceci :

Sub dupliquer_feuilles()
Dim i As Integer
Dim ongl As String
ongl = InputBox("Saisir ici la lettre figurant dans le nom de la feuille à dupliquer. Exemple S ou N ...", "Nom de l'onglet à dupliquer")
For i = 1 To 51
Sheets(ongl & " " & i).Select
Sheets(ongl & " " & i).Copy After:=Sheets(i + 2)
ActiveSheet.Name = ongl & " " & i + 1
Next i
End Sub
0
nemotri Messages postés 175 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 8 décembre 2017 35
13 août 2009 à 14:58
Merci pijaku pour ta réponse,

Cependant j'ai quelques soucis avec ta procédure.

Voici donc la procédure que j'ai écrit dans VBA en remplaçant avec mes termes pour copier ma feuille "S1" en 51 exemplaires :

Sub dupliquer_feuilles()
Dim i As Integer
Dim ongl As String
ongl = InputBox("S", "S1")
For i = 1 To 51
Sheets(ongl & " " & i).Select
Sheets(ongl & " " & i).Copy After:=Sheets(i + 2)
ActiveSheet.Name = ongl & " " & i + 1
Next i
End Sub


Quand j'éxécute la macro, j'ai une première fenêtre qui s'ouvre sur ma page. Cette fenêtre s'appelle "S1" et dedans il y a écrit "S", il y a un espace vide où je peux écrire quelqueschose et il y a deux boutons "OK" et "annuler".

Si je fais "Ok" j'ai alors une autre fenêtre qui s'ouvre avec le message d'erreur
"Erreur déxécution'9':
L'indice n'appartient pas à la sélection"


Et si je fais "débogage", j'ai la ligne "Sheets(ongl & " " & i).Select" qui est souligné en jaune dans VBA.

Voilà, est-je donc fait une erreur dans les termes que j'avais à remplacer dans la procédure que tu m'a donné où est-ce un souci dans la procédure en elle-même.

nb : j'espère avoir été le plus clair possible pour expliquer le souci, désolé sinon je débute vraiment.
0