VBA HEURES

Bonjour,

J'ai déja codé en VBA excel un code pour faire apparaitre 12 feuilles dont les mois sont représentés. J'ai en plus réussi à mettre un code qui met le nom de chaque feuille dans une case. Cependant, je ne sais pas comment mettre les heures. En effet, sur chaque feuille, je dois mettre 4 tranches d'heure soit de 0:00 à 5h59, de 6h a 11h59, de 12 a 17h59 et 18h a 23h59. Je dois donc mettre ces 4 tranches dheures sur chacune de mes feuilles, mais je n'y arrive pas. Voici le code que j'ai fait. Merci a l'avance pour votre aide

Sub CreerAnnee_clic()
For I = 1 To 12
ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Format(30 * I, "mmmm")
Next I
Application.ScreenUpdating = False
For Each x In ActiveWorkbook.Sheets
x.Activate
[D1] = ActiveSheet.Name
Next

End Sub
Configuration: Windows Vista
Internet Explorer 7.0

3 réponses

  1. Contributeur
    bonjour

    tu as de la chance que bilou est le seul au monde à considérer que l'année 1900 soit une année bissextile.... sinon tu n'aurais jamais eu ton mois de février : 31 + 28 = 59 : 30 * 2 = 60, soit le 1er mars
    modifie cette ligne pour si des fois bilou décidait de ne pas avoir une erreur dans excel
    ActiveSheet.Name = Format(30 * I, "mmmm")
    par :
    ActiveSheet.Name = Format(datevalue("01/" & I & "/2000"), "mmmm")

    pour ta boucle :
    for i = 0 to 3
    cells(1,1).offset(i,0) = (i*6)/24
    cells(1,2).offset(i,0) = cells(1,1).offset(i,0) + timevalue("05:59")
    next i

    A1,A2,A3,A4 recoivent tes 4 heures de debut
    B1,B2,B3,B4 tes 4 heures de fin

    à mettre au format horaire
    0
    1. Merci Wilfred,

      Mais je voudrais savoir comment je peux mettre les heures sur mes 12 feuilles, car pour l'instant les heures apparaissent seulement pour le mois de décembre.

      Merci encore
      0
      1. Contributeur
        Bonjour,
        En modifiant un peu le code de Wilfried
        Sub CreerAnnee_clic()
        Dim i As Integer, e As Integer, D As Single
            For i = 1 To 12
                ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count)
                ActiveSheet.Name = Format(DateValue("01/" & i & "/2000"), "mmmm")
        
                For e = 0 To 3
                    D = (e * 6) / 24
                    Cells(1, e + 1) = Format(D, "hh:mm") & " à " & _
                        Format(D + TimeValue("05:59"), "hh:mm")
                Next e
                Range("D2") = ActiveSheet.Name
            Next i
        End Sub

        A+
        0