Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA: créer tableau avec un onglet par semaine et les 5 jours ouvrables

4 réponses
Avatar
Genyal_F
bonjour à tous,

j'aimerais créer un tableau avec un onglet par semaine et dans les cellules
A1 à E1 les 5 jours ouvrables.

C'est-à-dire dans l'onglet "semaine 1", je voudrais lundi 3 janvier en A1,
mardi 4 janvier en B1 .....
puis dans la feuille "semaine 2", lundi 7 janvier en A1, mardi 11 janvier en
B1 ....

Voilà déjà le début de ma macro

Sub Macro1()
For i = 52 To 1 Step -1

Sheets.Add
ActiveSheet.Name = "SEM" & i
ActiveCell.Select
Range("b3").Value = "Sem" & i

Next i

End Sub


Marc

4 réponses

Avatar
isabelle
bonjour Marc,

Sub Macro1()
Dim premierLundi, i As Integer, y As Integer, z As Integer
premierLundi = Evaluate("DATE(2005,1,5)-WEEKDAY(DATE(2005,1,3))")
For i = 1 To 52
Sheets.Add After:=Worksheets(Sheets.Count)
ActiveSheet.Name = "SEM" & i
For y = 1 To 5
Cells(1, y) = CDate(premierLundi) + z
z = z + 1
Next y
Range("A1:E1").NumberFormat = "dddd d mmmm"
z = z + 2
Range("b3").Value = "Sem" & i
Next i
End Sub

isabelle


bonjour à tous,

j'aimerais créer un tableau avec un onglet par semaine et dans les cellules
A1 à E1 les 5 jours ouvrables.

C'est-à-dire dans l'onglet "semaine 1", je voudrais lundi 3 janvier en A1,
mardi 4 janvier en B1 .....
puis dans la feuille "semaine 2", lundi 7 janvier en A1, mardi 11 janvier en
B1 ....

Voilà déjà le début de ma macro

Sub Macro1()
For i = 52 To 1 Step -1

Sheets.Add
ActiveSheet.Name = "SEM" & i
ActiveCell.Select
Range("b3").Value = "Sem" & i

Next i

End Sub

Marc


Avatar
Daniel.M
Bonjour Isabelle,

premierLundi = Evaluate("DATE(2005,1,5)-WEEKDAY(DATE(2005,1,3))")


Il faut recourir à un Evaluate même pour les opérations supportées par VBA!
C'est sûrement la mauvaise influence d'AV ;-)

premierLundi = DateSerial(2005,1,5)-Weekday(DateSerial(2005,1,3))

Salutations,

Daniel M. (d'attaque pour la médisance)

Avatar
isabelle
:-))))
bien vue Daniel,
bisou
isabelle (qui n'a pas l'ame à la médisance)

ps/ pour Marc,
si tu veut passer l'année en variable :
Année = "2005" 'ou bien : Année = InputBox ("Entrer l'année")
premierLundi = Evaluate("DATE(" & Année & ",1,5)-WEEKDAY(DATE(" & Année & ",1,3))")
'ou bien à la manère de Daniel,
premierLundi = DateSerial(Année, 1, 5) - Weekday(DateSerial(Année, 1, 3))
Avatar
Genyal_F
merci à vous 2,


"isabelle" a écrit dans le message de
news:
:-))))
bien vue Daniel,
bisou
isabelle (qui n'a pas l'ame à la médisance)

ps/ pour Marc,
si tu veut passer l'année en variable :
Année = "2005" 'ou bien : Année = InputBox ("Entrer l'année")
premierLundi = Evaluate("DATE(" & Année & ",1,5)-WEEKDAY(DATE(" & Année &
",1,3))")

'ou bien à la manère de Daniel,
premierLundi = DateSerial(Année, 1, 5) - Weekday(DateSerial(Année, 1, 3))