Création automatique de feuilles sous excel

mat777 -  
PapyLuc51 Messages postés 4569 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voila je vous expose mon problème :
Je dois créer un fichier excel qui contient plusieurs fois la même feuille. Le problème est que chacune de ces feuilles doit être renommer selon une date : une réunion s'effectue tous les lundi par exemple et je souhaite créer un feuille pour chaque lundi. Il faut qu'elles soient nommées comme ceci : 17-mai, 25-mai, 31-mai... jusqu'à la fin de l'année.
Je voulais savoir si il n'y avais pas un moyen pour qu'excel les crées automatiquement ?

Merci d'avance,

3 réponses

  1. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
     
    Bonjour,

    je viens de réaliser une macro qui permettra de simplement créer une feuille à l'ouverture du classeur, si le jour est un lundi.

    Pour cela, après avoir ouvert votre classeur, appuyez sur Alt+F11 pour entrer dans l'éditeur de macros. A gauche, clic droit sur "This Workbook" et cliquez sur Code. Coller le code suivant, et enfin enregistrer votre classeur en .xlsm

    Le code est le suivant :
    'Macro d'ajout de feuille 
    Private Sub Workbook_Open()
    If Weekday(Date) = 2 Then 'si le jour où l'on ouvre le fichier est un lundi'
    Sheets.Add After:=Sheets(Sheets.Count) 'ajouter une feuille
    ' et on la renomme avec numéro du jour - nom du mois (17-mai par exemple)
    Sheets(Sheets.Count).Name = Day(Date) & "-" & MonthName(Month(Date))
    
    End If
    End Sub
    


    Cette macro est à améliorer si vous souhaitez qu'elle ait directement la même allure qu'une feuille déjà présente.

    Attention à ne pas ouvrir le classeur plusieurs fois dans la journée, sinon cela risque de planter.

    Pour toutes informations, je suis à votre disposition.

    Cordialement.
    0
  2. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
     
    Modification de la macro en testant si la feuille existe déjà :
    Private Sub Workbook_Open()
    If Weekday(Date) = 2 Then
    For i = 1 To Sheets.Count
    If Sheets(i).Name = Day(Date) & "-" & MonthName(Month(Date)) Then Exit Sub
    Next i
    Sheets.Add After:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Name = Day(Date) & "-" & MonthName(Month(Date))
    End If
    End Sub
    
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Salut Chossette,
      Si je peux me permettre, juste une petite modif de ton code. Si l'utilisateur ouvre le classeur un mercredi, cette modif permet de créer la nouvelle feuille en date du lundi (jour de réunion) :
      Private Sub Workbook_Open()
      Dim lundi As Date
      lundi = Date
      Do While Weekday(lundi) <> 2
      lundi = lundi - 1
      Loop
      For i = 1 To Sheets.Count
      If Sheets(i).Name = Day(lundi) & "-" & MonthName(Month(lundi)) Then Exit Sub
      Next i
      Sheets.Add After:=Sheets(Sheets.Count)
      Sheets(Sheets.Count).Name = Day(lundi) & "-" & MonthName(Month(lundi))
      End Sub

      Passe une bonne journée
      0
    2. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Merci pour la modif, je m'était borné au fait de créer la feuille seulement le lundi.
      0
    3. mat777
       
      Merci à vous jvais tester tout ca !
      0
  3. youcefesa Messages postés 40 Statut Membre
     
    bonjour
    J'ai un fichier Excel avec une feuille contenant plus de 2000 lignes de données sur plusieurs colonnes.

    les données sont relatives à des sites (villes) bien précis.

    Nom_Ville|Nbr_contact|Ressource_M|Ressources_H|Adresse|date|etc

    Je veux créer des classeurs autant de fois qu'il y a de ville;

    avec le nom de fichier correspondant au nom de la ville(champs ville)+la date (champs date);

    (avec la même mise en forme) et;

    les données qui vont avec chaque ville.

    Voilà.

    Merci
    0