Bonjour a tous, mon excel, récalcitrant comme dhabitude (ca ne peut évidemment ps etre ma faute) ne veut pas comprendre le format dans lequel je souhaite voir apparaitre les dates: je lui précise bien que je veux un format europée dd/mm/yyyy et il me les affiche au format américain: mm/dd/yyyy
Ca me parait pourtant clair, non??
Je suis désespéré chaque fois que je ne parviens pas a résoudre des trucs aussi simples...
L ensemble du code ici et le fichier en pj si besoin :
VB:
' Remplir les dates
ws.Cells(ligne, colonneDebut).Value = Format(currentDate, "dd/mm/yyyy")
ws.Cells(ligne + 1, colonneDebut).Value = "au"
ws.Cells(ligne + 2, colonneDebut).Value = Format(dateFin, "dd/mm/yyyy")
Ca me parait pourtant clair, non??
Je suis désespéré chaque fois que je ne parviens pas a résoudre des trucs aussi simples...
L ensemble du code ici et le fichier en pj si besoin :
Code:
Sub RemplirTableauSemaines()
Dim ws As Worksheet
Dim dateDepart As Date
Dim dateFin As Date
Dim currentDate As Date
Dim i As Integer, j As Integer
Dim colonneDebut As Integer
Dim ligne As Integer
' Référence à la feuille Astr
Set ws = ThisWorkbook.Sheets("Astr")
' Vider la feuille en dessous de la ligne 4
ws.Rows("5:" & ws.Rows.Count).ClearContents
ws.Rows("5:" & ws.Rows.Count).ClearFormats
' Récupérer la date de départ en cellule A4
dateDepart = ws.Range("A4").Value
' Initialiser les variables
ligne = 8
currentDate = DateSerial(Year(dateDepart), Month(dateDepart), 1)
' Remplir les 3 blocs
For j = 0 To 2
' Définir la colonne de début pour chaque bloc
colonneDebut = 1 + j * 3
' Insérer les titres en ligne 7
With ws
.Cells(7, colonneDebut).Value = "Semaines"
.Cells(7, colonneDebut + 1).Value = "Mar"
.Cells(7, colonneDebut + 2).Value = "Har"
' Mettre les titres en gras
.Range(.Cells(7, colonneDebut), .Cells(7, colonneDebut + 2)).Font.Bold = True
End With
' Remplir le bloc de semaines
Do While Month(currentDate) = Month(dateDepart)
' Déterminer la fin de semaine (dimanche)
dateFin = currentDate + (7 - Weekday(currentDate, vbMonday))
' Remplir les dates
ws.Cells(ligne, colonneDebut).Value = Format(currentDate, "dd/mm/yyyy")
ws.Cells(ligne + 1, colonneDebut).Value = "au"
ws.Cells(ligne + 2, colonneDebut).Value = Format(dateFin, "dd/mm/yyyy")
' Passer à la semaine suivante
currentDate = dateFin + 1
ligne = ligne + 3
Loop
' Réinitialiser la ligne pour le bloc suivant
If j < 2 Then
ligne = 8
dateDepart = currentDate
End If
Next j
End Sub