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 -
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

6 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

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

    Cdlmnt
    0
  2. AstraLife Messages postés 99 Statut Membre
     
    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
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
  4. AstraLife Messages postés 99 Statut Membre
     
    Ç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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
  7. AstraLife Messages postés 99 Statut Membre
     
    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
    1. ccm81 Messages postés 11033 Statut Membre 2 434
       
      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