Re,
Un petit délai pour fournir... une légère erreur de calcul me faisait lister jusqu'au 25 décembre 2043 !
Voilà pour faire automatiquement :
Sub ListerIntervallesHoraires()
Const a As Integer = 2016
Const hd As Single = 6
Const hf As Single = 20
Const intv As Single = 0.5
Dim i%, j%, nih%, nj%, jour
nih = (hf - hd) / intv
nj = DateSerial(a, 12, 31) - DateSerial(a, 1, 1)
Application.ScreenUpdating = False
With ActiveSheet.Range("A2")
.Value = DateSerial(a, 1, 1) + hd / 24
.NumberFormat = "dd/mm/yyyy hh:mm"
.Offset(1).Value = .Value + intv / 24
.Offset(1).NumberFormat = "dd/mm/yyyy hh:mm"
.Resize(2).AutoFill .Resize(nih), xlFillSeries
jour = .Resize(nih)
For j = 1 To nj
For i = 1 To UBound(jour)
jour(i, 1) = jour(i, 1) + 1
Next i
With .Offset(nih * j).Resize(nih)
.Value = jour
.NumberFormat = "dd/mm/yyyy hh:mm"
End With
Next j
With .Resize(nih * (nj + 1)).Borders
.LineStyle = xlContinuous
.Weight = xlThin
End With
End With
Application.ScreenUpdating = True
End Sub
Réutilisable en modifiant les constantes en tête de procédure :
a (=année)
hd (=heure début, unité heure)
hf (=heure fin, unité heure)
intv (=intervalle horaire, unité heure)
Macro à placer dans un module standard. Elle opère sur la feuille active, donc la lancer à partir de la feuille sur laquelle on souhaite lister ces bornes d'intervalles.
Cordialement.