Copier une feuille sur 365 jours avec date dans les onglets

Bonjour à tous

Je suis novice sur excel , je cherche à copier une feuille existante sur les 365 jours de l année avec une date par feuille dans l'onglet , existe t'il une macro ou une procédure .

Merci pour votre réponse

Bonjour,

il n'existe pas de macro "toute prête" (la vie n'est pas si belle), mais si tu joins ton fichier, en précisant comment doivent s'appeller les onglets des 365 feuilles exactement (car la date ok mais sous quel format ?) , cela surement possible à quelqu'un de te proposer une solution

Cordialement,

Bonjour

Ce code crée autant de feuilles que de jours de l'annèe choisie au format de date 01-janv-2012

Sub CopieEtude()
Dim i, z
année = Val(InputBox("Quelle année ?"))
If année = 0 Then Exit Sub
x = DateSerial(année, 1, 0)
y = DateValue("31 décembre " & année)
z = y - x
For i = 1 To z
    Sheets("Modèle").Copy After:=Sheets(i)
    ActiveSheet.Name = Format(x + i, "dd-mmm-yyyy")
    ActiveSheet.Range("C3") = Format(x + i, "dd-mmm-yyyy")
Next i
End Sub

Cordialement

Bonjour,

Moi meme novice comment faire pour creer la macro afin de creer ce fichier excel avec les 365 onglet soit un pour chaque jour

Bonjour,

Bonjour Amadéus,

Faire ALT F11 pour ouvrir l'éditeur VBE et voir les 2 procédures dans 'modOngletsJoursAnnée'

La 1ère crée autant de feuilles que de jours dans l'année.

La seconde supprime toutes les feuilles hormis la feuille 'Modèle' (si tu dois effectuer des tests, par exemple).

Pour lancer les procédures :

Ctrl + w crée les onglets

Ctrl + x supprime les onglets

A te relire si nécessaire.

Cdlt.

804batmoine.xlsm (31.46 Ko)
Option Explicit
Public Sub CreerOnglets()
' Ctrl + w pour démarrer la procédure
Dim année, i, z
Dim x As Date, y As Date
    année = Val(InputBox("Quelle année ?"))
    If année = 0 Then Exit Sub
    Application.ScreenUpdating = False
    x = DateSerial(année, 1, 0)
    y = DateValue("31 décembre " & année)
    z = y - x
    For i = 1 To z
        Worksheets("Modèle").Copy After:=Sheets(i)
        ActiveSheet.Name = Format(x + i, "dd-mmm-yyyy")
        ActiveSheet.Range("C3") = Format(x + i, "dd-mmm-yyyy")
    Next i
    Worksheets("Modèle").Activate
    Cells(1, 1).Select
End Sub
Public Sub SupprimerOnglets()
' Ctrl + x pour démarrer la procédure
Dim ws As Worksheet
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Name <> "Modèle" Then ws.Delete
    Next
    Application.DisplayAlerts = True
End Sub

Merci genial

Et un autre question est il possible de creer un onglet avec mes tableau dessus ect et ensuite de le copier sur tous les onglet

J ai trouve pardon


Et la j ai creer sur une feuille vierge le tableau qui reprend les donnees saisie sur chaque onglet, qu elle est la formule pour etirer tous ca sur les 365 lignes du tableau qui corresponde chacune a un onglet.

Merci d avance

Re,

Peux-tu reformuler ta question?

Je ne comprends pas ce que tu veux dire et faire.

Cdlt

Je me douter que j ete pas clair

Je met mon tableau pour que tu vois mieux

J arrive pas a l ajouter en piece


Sur chauqe journee (chaque onglet) j ai un tableau avec des resultats, je veux avoir un autre onglet qui reprend tous ces resultats dans un meme tableau

Re,

Tu compresses ton fichier et si la taille est supérieure à 300ko, tu passes par ce lien :

http://cjoint.com/index.php

Cdlt.

Voila le lien

Bonjour

En B10 de Feuil1, incrémenté vers le bas

=INDIRECT("'"&TEXTE($A10;"jj-mmm-aaaa")&"'!F36")

En C10

=INDIRECT("'"&TEXTE($A10;"jj-mmm-aaaa")&"'!G36")

Cordialement

Bonjour, je relance un vieux sujet car le code de Jean Eric répond presque a ce dont j'ai besoin:

Je souhaite générer des onglets automatiquement avec la date du jour mais seulement du 15 mars au 15 octobre de chaque année.

De plus j'aimerai reporter la date de chaque onglet sur la cellule A1 de l'onglet correspondant sous la forme "Mercredi 5 Avril 2017"

Exemple: onglet " 5-avr-2017 " avec texte dans la cellule A1 " Mercredi 5 avril 2017"

onglet " 6-avr-2017 " avec texte dans la cellule A1 " Jeudi 6 avril 2017"

etc......

Quelqu'un saurait adapter le code pour obtenir ce résultat ?

Merci d'avance

Damien

Bonjour,

Essaie ainsi :

Option Explicit
Public Sub CreerOnglets()
' Ctrl + w pour démarrer la procédure
Dim x As Date, y As Date
Dim z As Long, I As Long
    Application.ScreenUpdating = False
    x = DateSerial(Year(Date), 3, 14)
    y = DateSerial(Year(Date), 10, 15)
    z = y - x
    For I = 1 To z
        Sheets("Modèle").Copy After:=Sheets(I)
        ActiveSheet.Name = Format(x + I, "dd-mmm-yyyy")
        ActiveSheet.Cells(1) = Format(x + I, "dddd dd mmm yyyy")
    Next I
    Worksheets("Modèle").Activate
    Cells(1, 1).Select
End Sub
Public Sub SupprimerOnglets()
' Ctrl + x pour démarrer la procédure
Dim ws As Worksheet
    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
    End With
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Name <> "Modèle" Then ws.Delete
    Next
    Application.DisplayAlerts = True
End Sub

Cest parfait!! Merci beaucoup

Bonjour Jean-Eric, je souhaiterai ajouter une nouvelle fonction à ce code: serait-il possible de pouvoir définir à chaque lancement de la macro une année, une date de début et une date de fin? au lieu des dates par defaut 15 mars au 15 octobre de l'année en cours.

de facon simple, sans devoir rentrer dans la modification du code à chaque fois

cordialement,

damien

Bonjour,

Merci de joindre un fichier à ta demande.

Cdlt.

bonjour,

je souhaite juste faire une demande car la macro met très utile j'aimerais savoir comment l'on peut faire pour que les dimanches et jours fériés ne soient pas inscrit dans les feuilles et ne prendre que les jours ouvrés et le samedi

je ne sais pas si ma question est clair mais je vous remercie d'avance

Bonjour,

Ouvre ton propre sujet et n'oublie pas de joindre un fichier à ta demande.

Cdlt.

Rechercher des sujets similaires à "copier feuille 365 jours date onglets"