VBA et dates

Résolu
T_Geb -  
 T_Geb -
Bonjour,

Je suis en train de faire un programme VBA pour créer automatiquement un planning hebdomadaire dans lequel les dates sont inscrites automatiquement dans les cellules L3 à P3.
Voici le programme que j'ai récupérer d'internet et que j'ai remanié à ma sauce :

"Option Explicit

Sub creer_annee()

Dim cptr As Byte
Dim jour As Byte
Const annee As Integer = 2018

Application.ScreenUpdating = False

    For cptr = 2 To 53
        Sheets(1).Copy after:=Sheets(cptr - 1)
    With Sheets(cptr)
        .Name = "S" & cptr - 1
        
.Cells(3, 12) = 5 * (cptr - 1) + DateSerial(annee, 1, 1) - Weekday(DateSerial(annee, 1, 1)) - 3

    For jour = 12 To 16
        .Cells(3, jour) = .Cells(3, jour - 1) + 1
    Next

End With

Next

End Sub"


Mon problème est le suivant, les dates affichés dans les cellules L3 à P3 de la feuille S1 sont datées 1900... soit 118 ans trop tôt...

Une idée, un conseil ?

Cordialement.

T_Geb

1 réponse

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

.Cells(3, jour) = .Cells(3, jour - 1) + 1

au 1er passage tu te réfères à la colonne jour - 1 (=11) qui est vide.
Excel comptant les années depuis 1900 tu te retrouves en cette année.
eric
0
T_Geb
 
Merci, un probleme de moins !
Un problème en cache souvent un autre par contre...

Maintenant que la feuille S1 est rempli correctement, c'est la feuille S2 et suivante qui se décallent... En effet, la feuille S2 affiche Samedi 6 Janvier 2018 jusqu'a Mercredi 10 Janvier 2018, comment faire pour que la semaine démarre le Lundi ?

Merci
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
mémorise le 1er lundi de l'année et fait +7 pour les autres semaines.
Ou bien :
Dim lundiSemaine As Date
lundiSemaine = (semaine - 1) * 7 + DateValue("05/01/" & annee) - Weekday(DateValue("04/01/" & annee), vbMonday)

eric
0
T_Geb
 
Peux tu me décrire comment faire ?

Tu l'auras compris, mon domaine de prédilection, c'est pas l'informatique...
0
T_Geb
 
c'est bon j'ai trouvé une solution viable

Merci pour tout
0