Dates sur plusieurs feuilles

Bonjour, je reviens vers vous, car la fin de l'année approche et je voudrais mettre mon petit programme en route dès le début janvier.

Le code que j'ai reçu fonctionne parfaitement

Public Sub Create_Worksheets()

Dim ws2 As Worksheet

Dim iYear As Integer, iWeek As Integer

Dim i As Byte

Dim dt As Date

Application.ScreenUpdating = False

Set wb = ActiveWorkbook

Set ws = wb.Worksheets("Sommaire")

iYear = ws.Cells(2, 1).Value

iWeek = DatePart("ww", DateSerial(iYear, 12, 28), 2, 2)

For i = 1 To iWeek

Set ws2 = wb.Worksheets.Add(after:=Worksheets(wb.Worksheets.Count))

dt = 7 * i + DateSerial(iYear, 1, 3) - Weekday(DateSerial(iYear, 1, 3)) - 5

With ws2

.Name = iYear & "W" & Format(i, "00")

With .Cells(1)

.Value = ws2.Name

.Font.Bold = True

End With

With .Cells(3, 1)

.Value = dt

.DataSeries rowcol:=xlRows, Type:=xlChronological, Date:=xlDay, stop:=dt + 6

End With

End With

Next i

ws.Activate

Set ws = Nothing: Set wb = Nothing

End Sub

mais je n'arrive pas à l'adapter à mon cas.

  • d'abord, dans la 1ere colonne (A) j'ai la série de noms de clients
  • ensuite, pour chaque jour j'ai besoin de deux colonnes (une pour les ventes et une pour les encaissements)
je vous joins mon fichier actuel qui fonctionne bienpour 2018, j'aurais voulu me simplifier la vie pour 2019 en automatisant un max de tâches. Merci de votre aide.

Bonjour,

joins un bout de fichier à ta demande, ce sera plus clair

pourquoi faire autant de feuilles que de semaines .Name = iYear & "W" & Format(i, "00") ? un filtre suffit

Bonjour

Bonjour à tous

Essaie ce code. Te convient-il ?

Public Sub Create_Worksheets()

    Dim wb As Workbook
    Dim ws2 As Worksheet, ws As Worksheet
    Dim iYear As Integer, iWeek As Integer
    Dim i As Byte
    Dim dt As Date
    Application.ScreenUpdating = False 
    Set wb = ActiveWorkbook
    Set ws = wb.Worksheets("Sommaire")
    iYear = ws.Cells(2, 1).Value
    iWeek = DatePart("ww", DateSerial(iYear, 12, 28), 2, 2)
    For i = 1 To iWeek
        Set ws2 = wb.Worksheets.Add(after:=Worksheets(wb.Worksheets.Count))
        dt = 7 * i + DateSerial(iYear, 1, 3) - Weekday(DateSerial(iYear, 1, 3)) - 5
        With ws2
            .Name = iYear & "W" & Format(i, "00")
            With .Cells(1)
                .Value = ws2.Name
                .Font.Bold = True
            End With
            .Cells(4, 1) = "Clients"
            .Cells(4, 2) = "Ventes"
            .Cells(4, 3) = "Encaissements"
            .Cells(3, 2) = dt
            .Range("B3:C4").AutoFill Destination:=Range("B3:O4"), Type:=xlFillDefault
            .Range("B:O").HorizontalAlignment = xlCenter
            .Columns("B:O").EntireColumn.AutoFit
            .Range("B3:C3").HorizontalAlignment = xlCenterAcrossSelection
            .Range("B3:C4").BorderAround Weight:=xlThin
            .Range("B3:C4").Copy
            .Range("D3:O4").PasteSpecial xlPasteFormats
            .Range("A1").Select
        End With
    Next i
    ws.Activate
    Set ws = Nothing: Set wb = Nothing
    Application.CutCopyMode = False
End Sub

Bye !

Merci !

c'est exactement ce que je cherchais.

Seulement les dates sont pour l'année 2000 … j'ai cherché sur la page "sommaire" à indiquer 2019 mais je ne trouve pas.

Ensuite, pour remettre les formules que j'avais précédemment, je pense que le mieux à faire est de réaliser la première page correctement puis la recopier sur chaque feuille ??

Bonjour,

l'année à documenter est B2 dans la feuille Sommaire.

Cdlt.

 Set ws = wb.Worksheets("Sommaire")
    iYear = ws.Cells(2, 1).Value

merci de votre réponse, mais j'ai beau mettre 2019 en B2, rien ne change, je suis toujours avec le calendrier de 2000.

J'avais bien compris que l'année était iYear et qu'elle se trouvait en cells()2,2 mais ici ça ne fonctionne pas ou alors je m'y prends mal.

merci.

Sinon tout est parfait. je viens de remettre tout ce dont j'avais besoin dans ces feuilles et fait quelques tests pour voir si tout fonctionne et c'est nickel. .. sauf les dates !

Merci de votre aide

Re,

Oups ! Cells(2,1) = A2

Cdlt.

encore une fois merci ! mais ça ne marche toujours pas.

Bien entendu, je n'ai que de très faibles connaissances en VBA et j'ai cherché où mettre ce Cells(2,1)=A2

J'ai donc essayé de supprimer iYear et de ne laisser que "ws.Cells(2, 1).Value = A2" : ça ne fonctionne pas

j'ai essayé de mettre le A2 à la fin de la formule entière : même résultat

J'ai donc encore un peu besoin de votre aide.

seconde question : je viens comme je vous l'ai dit précédemment de mettre en forme tout ma feuille avec tout ce que je veux avoir dessus et cela a été recopié sur les 52 feuilles. Je me suis également fait une feuille récapitulative. Lorsque la bonne année sera au bon endroit, vais je perdre tout mon travail et devoir tout recommencer ou simplement mes dates vont elles se placer correctement ?

merci

cela a été recopié sur les 52 feuilles. Je me suis également fait une feuille récapitulative. Lorsque la bonne année sera au bon endroit, vais je perdre tout mon travail et devoir tout recommencer ou simplement mes dates vont elles se placer correctement ?

Je pense comme je l'ai signalé qu'il faudrait repenser le tout pour n'avoir qu'un seul onglet pour toutes les semaines de toutes les années, et faire ensuite un filtre ou une extraction par filtre avancé et une récap par TCD ... un petit ré-investissement pour un grand bonheur demain !

en effet, Steelson, je me souviens, mais je ne sais pas si je suis capable ??

je pense que je vais essayer de tout recommencer comme tu le dis en un seul onglet. Je m'y mets dès que j'ai deux heures devant moi. En attendant, je me sers de celui ci.

Merci

Rechercher des sujets similaires à "dates feuilles"