Dupliquer un onglet tout en changeant son nom
Résolu
Nonnoo
Messages postés
25
Date d'inscription
Statut
Membre
Dernière intervention
-
Nonnoo Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
Nonnoo Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un fichier excel contenant un onglet avec une liste (feuille 1) et un onglet avec des données et des boutons de macro (feuille 5, je ne sais pas pourquoi il est en feuille 5...).
Je souhaite dupliquer mon onglet de données, tout en renommant les onglets en fonction de la liste située en feuille 1.
Exemple :
Dans la feuille 1 j'ai une liste :
01
02
03
...
Je voudrai que mes onglets se nomment automatiquement 01 02 03 en copiant mon onglet de données.
Avez-vous une idée ? Merci d'avance
J'ai un fichier excel contenant un onglet avec une liste (feuille 1) et un onglet avec des données et des boutons de macro (feuille 5, je ne sais pas pourquoi il est en feuille 5...).
Je souhaite dupliquer mon onglet de données, tout en renommant les onglets en fonction de la liste située en feuille 1.
Exemple :
Dans la feuille 1 j'ai une liste :
01
02
03
...
Je voudrai que mes onglets se nomment automatiquement 01 02 03 en copiant mon onglet de données.
Avez-vous une idée ? Merci d'avance
A voir également:
- Dupliquer un onglet tout en changeant son nom
- Dupliquer ecran - Guide
- Changer son dns - Guide
- Dupliquer whatsapp - Guide
- Rouvrir un onglet fermé - Guide
- Changer le nom de son iphone - Guide
5 réponses
Re,
Dans le code je perle de l'onglet Feuil1 et toi tu parles de Feuille1. Quel sont les noms exact des deux onglets ?
Dans le code je perle de l'onglet Feuil1 et toi tu parles de Feuille1. Quel sont les noms exact des deux onglets ?
Bonjour Nono, bonjour le forum,
Si j'ai bien compris, le code ci-dessous devrait fonctionner :
Si j'ai bien compris, le code ci-dessous devrait fonctionner :
Sub Macro1() Dim CEL As Range 'declare la variable CEL (CELlule) 'boucle sur toutes les cellules CEL éditées de la colonne 1(=A) For Each CEL In Sheets("Feuil1").Range("A1:A" & Sheets("Feuil1").Cells(Application.Rows.Count, 1).End(xlUp).Row) Sheets("Feuil5").Copy after:=Sheets(Sheets.Count) 'copy l'onglet "Feuil5" en dernier ActiveSheet.Name = CEL.Value 'renomme l'onglet copié Next CEL 'prichaine cellule de la boucle End Sub
Re,
Il suffisait d'adapter les noms des onglets dans le code...
Il suffisait d'adapter les noms des onglets dans le code...
Sub Macro1() Dim CEL As Range 'declare la variable CEL (CELlule) 'boucle sur toutes les cellules CEL éditées de la colonne 1(=A) For Each CEL In Sheets("GLOBAL").Range("A1:A" & Sheets("GLOBAL").Cells(Application.Rows.Count, 1).End(xlUp).Row) Sheets("SX19").Copy after:=Sheets(Sheets.Count) 'copie l'onglet "SX19" en dernier ActiveSheet.Name = CEL.Value 'renomme l'onglet copié Next CEL 'prichaine cellule de la boucle End Sub
Le code proposé utilise une liste qui serait écrite dans les cellules de la colonne A (en commençant en A1) de l'onglet GLOBAL. Si cette liste est ailleurs il faut adapter le code. Comme tu n'as pas daigné donner des renseignements fiables quant à l'adresse de cette liste, j'ai fait au plus simple...
C'est bon j'ai réussi merci beaucoup !
Désolée de pas avoir été très claire sur mes explications, mais merci grâce à toi ca marche !
J'ai aussi une autre question qui est liée : Je voulais savoir s'il était possible de nommer chaque cellule D1 de chaque onglet à partir de la colonne B de mon onglet global. Je m'explique : dans l'onglet Global il y a en colonne a les codes 01, 02, 03.... qui m'ont servi à nommer mes onglets. Et dans la colonne B2, en face de chaque code il y a les noms des bureaux, je voudrais que ces noms apparaissent dans chaque onglet dans la cellule D1 pour qu'on puisse reconnaître à quel bureau appartient ce code...
Merci par avance de votre aide
Nono
Désolée de pas avoir été très claire sur mes explications, mais merci grâce à toi ca marche !
J'ai aussi une autre question qui est liée : Je voulais savoir s'il était possible de nommer chaque cellule D1 de chaque onglet à partir de la colonne B de mon onglet global. Je m'explique : dans l'onglet Global il y a en colonne a les codes 01, 02, 03.... qui m'ont servi à nommer mes onglets. Et dans la colonne B2, en face de chaque code il y a les noms des bureaux, je voudrais que ces noms apparaissent dans chaque onglet dans la cellule D1 pour qu'on puisse reconnaître à quel bureau appartient ce code...
Merci par avance de votre aide
Nono
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
Essaie ce nouveau code :
Essaie ce nouveau code :
Sub Macro1() Dim CEL As Range 'declare la variable CEL (CELlule) 'boucle sur toutes les cellules CEL éditées de la colonne 1(=A) For Each CEL In Sheets("GLOBAL").Range("A1:A" & Sheets("GLOBAL").Cells(Application.Rows.Count, 1).End(xlUp).Row) Sheets("SX19").Copy after:=Sheets(Sheets.Count) 'copie l'onglet "SX19" en dernier ActiveSheet.Name = CEL.Value 'renomme l'onglet copié ActiveSheet.Range("D1").Value = CEL.Offset(0, 1).Value 'copie dans la cellule D1 de l'onglet actif la valeur de la cellule CEL décalée d'une colonne à droite Next CEL 'prichaine cellule de la boucle End Sub
Non l'onglet s'appelle GLOBAL et est rattaché à la feuille 1 (feuil 1)
et le deuxième onglet avec les données s'appelle SX19. et est rattaché à la feuille 5 (feuil5).
J'avais trouvé une macro qui faisait à peu près ce que je demandais sauf que j'ai du insérer une colonne dans mon onglet de données contenant la liste. De là en activant ma macro j'ai réussi à obtenir mes différents onglets avec des noms suivant la liste et aussi que ca écrit le nom de l'onglet dans la cellule F1 de la feuille.
Cependant cela m'embête d'avoir rajouté une colonne dans ma feuille car lorsqu'elle se duplique, elle duplique aussi cette colonne, mais du coup comme j'ai des macros dans chacune de mes feuilles, elles ne s’exécutent pas correctement. Je mets le code ici :
" Option Explicit
Sub Ajouter_Feuilles()
Dim J As Long
Dim Ws As Worksheet
Application.ScreenUpdating = False
Set Ws = ActiveSheet
For J = 1 To Ws.Range("A" & Rows.Count).End(xlUp).Row
If Not FeuilleExiste(Ws.Range("A" & J).Value) Then
Sheets("Modèle").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = Ws.Range("A" & J)
Range("F1") = ActiveSheet.Name ' Met le nom de la feuille dans la cellule F1
End If
Next J
Ws.Select
End Sub
'Si l'onglet existe déjà, il n'est pas créé
Function FeuilleExiste(Nom As String) As Boolean
On Error Resume Next
FeuilleExiste = Sheets(Nom).Name <> ""
On Error GoTo 0
End Function "
Je voudrais éviter de rajouter une colonne supplémentaire dans mon onglet de données et avoir la macro qui aille chercher l'info dans mon onglet Global pour nommer mes différents onglets.
Je ne sais pas si je suis assez claire, en tout cas merci d'avance.
Nono