VBA HEURES

Fermé
flyersgaoler - 13 nov. 2008 à 02:38
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 14 nov. 2008 à 09:10
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

3 réponses

wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 244
13 nov. 2008 à 05:32
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
flyersgoaler Messages postés 29 Date d'inscription jeudi 13 novembre 2008 Statut Membre Dernière intervention 4 octobre 2016
14 nov. 2008 à 06:22
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
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
14 nov. 2008 à 09:10
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