Dupliquer un Onglet modèle en focntion d'une liste

Résolu/Fermé
AstraLife Messages postés 98 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 1 juillet 2019 - 25 avril 2018 à 18:32
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 - 27 avril 2018 à 14:26
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

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:

6 réponses

ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
25 avril 2018 à 20:46
Bonjour

un petit exemple
https://www.cjoint.com/c/HDzsUoEWn8B

Cdlmnt
0
AstraLife Messages postés 98 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 1 juillet 2019
Modifié le 26 avril 2018 à 08:24
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
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
26 avril 2018 à 11:48
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
0
AstraLife Messages postés 98 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 1 juillet 2019
Modifié le 26 avril 2018 à 17:35
Ç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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
26 avril 2018 à 20:21
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
0
AstraLife Messages postés 98 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 1 juillet 2019
26 avril 2018 à 22:42
Oui, j'avais pas pensé à faire une MFC, simple et ça règle le problème,

encore un grand merci à toi,

c'est vraiment parfait !
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
27 avril 2018 à 14:26
ce n'est pas la MFC qui règle le problème mais la formule
=SI(A2="";"";SI(MOIS(A2)=MOIS(A2+1);A2+1;""))
la MFC ne fait que visualiser la solution ... du problème ;-)

Bon après midi
0