Dupliquer un Onglet modèle en focntion d'une liste
Résolu
AstraLife
Messages postés
99
Statut
Membre
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
Bonjour,
Dans un classeur Excel, je souhaite dupliquer un onglet modèle "MAQUETTE" et le renommer en fonction d'une liste de date situé dans un onglet "Sommaire", les 31 jours, donc 31 Onglets, enfin suivant les mois.
Et je souhaite également qu'en cellule B1 de chaque Onglet créé, la date issue de la liste s'affiche.
Je bloque sur le format date quand je souhaite dupliquer l'onglet modèle et le renommer en fonction de la liste de date.
Si je met du texte ça va mais je souhaite renommer les onglets comme ceci,
"mercredi 25 avril" et bien sur le format "jjjj jj mmmm" bloque la macro
Voici mon code
Merci
Dans un classeur Excel, je souhaite dupliquer un onglet modèle "MAQUETTE" et le renommer en fonction d'une liste de date situé dans un onglet "Sommaire", les 31 jours, donc 31 Onglets, enfin suivant les mois.
Et je souhaite également qu'en cellule B1 de chaque Onglet créé, la date issue de la liste s'affiche.
Je bloque sur le format date quand je souhaite dupliquer l'onglet modèle et le renommer en fonction de la liste de date.
Si je met du texte ça va mais je souhaite renommer les onglets comme ceci,
"mercredi 25 avril" et bien sur le format "jjjj jj mmmm" bloque la macro
Voici mon code
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("MAQUETTE").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = Ws.Range("A" & J)
Range("B1") = ActiveSheet.Name ' Met le nom de la feuille dans la cellule B1
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
Merci
A voir également:
- Dupliquer un Onglet modèle en focntion d'une liste
- Dupliquer ecran - Guide
- Liste déroulante excel - Guide
- Modèle organigramme word - Guide
- Liste déroulante en cascade - Guide
- Dupliquer whatsapp - Guide
6 réponses
Bonjour ccm81,
merci beaucoup, ça fonctionne très bien,
juste 2 derniers points, ou placer, dans le code,
le copier collé en B1, sur chaque maquette "Onglet créé", de la date correspondant au nom de l'onglet
du genre
Range("B1") = ActiveSheet.Name ' Met le nom de l'onglet dans la cellule B1
Le second point,
j'ai modifié le code pour la liste de date, de la cellule A2 à A32 pour attraper 1 mois complet,
si on se trouve en février et que je tire jusqu'en cellule 32, j'aurais que 28 jours, les 3 dernières cellule restants vides, jusque la ça va.
Par contre, en exécutant le code, les onglets créés vont bien du 01 février au 28 février mais il crée un onglet samedi 30 décembre, je sais pas vraiment pourquoi
merci encore
merci beaucoup, ça fonctionne très bien,
juste 2 derniers points, ou placer, dans le code,
le copier collé en B1, sur chaque maquette "Onglet créé", de la date correspondant au nom de l'onglet
du genre
Range("B1") = ActiveSheet.Name ' Met le nom de l'onglet dans la cellule B1
Le second point,
j'ai modifié le code pour la liste de date, de la cellule A2 à A32 pour attraper 1 mois complet,
si on se trouve en février et que je tire jusqu'en cellule 32, j'aurais que 28 jours, les 3 dernières cellule restants vides, jusque la ça va.
Par contre, en exécutant le code, les onglets créés vont bien du 01 février au 28 février mais il crée un onglet samedi 30 décembre, je sais pas vraiment pourquoi
merci encore
1. ou placer, dans le code, le copier collé en B1, sur chaque maquette
juste après ActiveSheet.Name = ds
2. Par contre, en exécutant le code, les onglets créés vont bien du 01 février au 28 février mais il crée un onglet samedi 30 décembre
je pense que tu as du prendre une ligne de plus dans le code, j'ai mis lifin en variable, calculée dans le code comme dernière ligne des dates
https://www.cjoint.com/c/HDAjSm35YJB
Cdlmnt
juste après ActiveSheet.Name = ds
2. Par contre, en exécutant le code, les onglets créés vont bien du 01 février au 28 février mais il crée un onglet samedi 30 décembre
je pense que tu as du prendre une ligne de plus dans le code, j'ai mis lifin en variable, calculée dans le code comme dernière ligne des dates
https://www.cjoint.com/c/HDAjSm35YJB
Cdlmnt
Ça vient du faite que j'ai programmé, dans une liste déroulante de choix, les années et les mois, et en fonction du mois choisi, il étale en cellule A2 à A32 les jours correspondant au moi, donc je n'ai pas besoin de tirer les dates.
mais du coup pour février ou les mois en 30 jours, il me continue la colonne avec les jours du mois suivant puisque je ne sais pas comment faire pour arrêter la liste en fonction du nombre de jours du mois,
Mon fichier
https://cjoint.com/c/HDApIEx1rMs
mais du coup pour février ou les mois en 30 jours, il me continue la colonne avec les jours du mois suivant puisque je ne sais pas comment faire pour arrêter la liste en fonction du nombre de jours du mois,
Mon fichier
https://cjoint.com/c/HDApIEx1rMs
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai mis des formules et une MFC dans la colonne dates et modifié un peu la macro pour les prendre en compte while ..... wend
https://cjoint.com/c/HDAsrMGUqoB
Cdlmnt
https://cjoint.com/c/HDAsrMGUqoB
Cdlmnt