Incrémenter "heure + date" en une seule

Bonjour à tous,

je cherche le moyen d'afficher dans excel 2003 la colonne suivante:

heure-jour-mois-année

01:00 01/01/2007
02:00 01/01/2007
03:00 01/01/2007
.......
24:00 01/01/2007
01:00 02/01/2007
.......
24:00 31/01/2007
01:00 01/02/2007
....jusqu'à
24:00 31/12/2007

je pense qu'en utilisant l'incrément, ça doit être possible cependant je ne sais pas comment faire.
remarque: l'affiche des "00" minutes n'est pas primordial

merci d'avance et bonne journée
Configuration: Windows XP
Internet Explorer 6.0

8 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour,

    Sub AffiLesDemiHeures()
    Dim i As Long
    Dim DtDeb As Double
    Dim DtFin As Double
    
        DtDeb = CDate("01/01/2008 0:30:00")
        DtFin = CDate("01/02/2008 0:30:00")
        i = 1
        While DtDeb < DtFin
            Cells(i, 1) = CVDate(DtDeb)
            DtDeb = DtDeb + TimeSerial(1, 0, 0)
            i = i + 1
            DoEvents
        Wend
        Columns("A:A").Select
        Selection.NumberFormat = "hh:mm dd/mm/yyyy"
        Range("A1").Select
    
    End Sub

    A+
    1. Modérateur
      Salut,

      l'auto incrément normal marche bien si ta date et heure est en format standard excel, c'est-à-dire, comme le fait remarquer lermitte22, sous forme jj/mm/aa hh:mm:ss.

      Fais attention au fait qu'excel va te formatter la cellule en date standard dès qu'il reconnaitra une date/heure...
      1. Salut,

        Tu saisis ces deux lignes

        01:00 01/01/2007
        02:00 01/01/2007 tu les les mets en surbrillance et tu les incrémentes vers le bas

        et ainsi de suite pour les autres lignes

        Dans le cas ou la suite est logique saisis une valeur, incrémente vers le bas clic sur le petit pictigramme et sélectionnes incrémebter une série

        A+
        1. en fait, j'ai encore un problème

          l'incrémentation fonctionne bien, cependant, cela m'affiche:

          01/12/2007 1:00
          01/12/2007 2:00
          01/12/2007 3:00
          01/12/2007 4:00
          01/12/2007 5:00
          01/12/2007 6:00
          01/12/2007 7:00
          01/12/2007 8:00
          01/12/2007 9:00
          01/12/2007 10:00
          01/12/2007 11:00
          01/12/2007 12:00
          01/12/2007 13:00
          01/12/2007 14:00
          01/12/2007 15:00
          01/12/2007 16:00
          01/12/2007 17:00
          01/12/2007 18:00
          01/12/2007 19:00
          01/12/2007 20:00
          01/12/2007 21:00
          01/12/2007 22:00
          01/12/2007 23:00
          02/12/2007 0:00

          alors que je voudrais afficher

          01/12/2007 1:00
          01/12/2007 2:00
          01/12/2007 3:00
          01/12/2007 4:00
          01/12/2007 5:00
          01/12/2007 6:00
          01/12/2007 7:00
          01/12/2007 8:00
          01/12/2007 9:00
          01/12/2007 10:00
          01/12/2007 11:00
          01/12/2007 12:00
          01/12/2007 13:00
          01/12/2007 14:00
          01/12/2007 15:00
          01/12/2007 16:00
          01/12/2007 17:00
          01/12/2007 18:00
          01/12/2007 19:00
          01/12/2007 20:00
          01/12/2007 21:00
          01/12/2007 22:00
          01/12/2007 23:00
          01/12/2007 24:00
          02/12/2007 01:00

          en gros, commencer la journée avec l'heure=01:00 et finir avec la journée avec l'heure=24:00
          ou au moins : que l'heure correspondant à minuit 24h ou 00h correspondent à la fin de la journée et non au début

          bisous merci et salut
          1. eh bien figure toi qu'en espagne, dans le marché de l'électricité, ça existe et j'y peux rien.

            si qq'un a une idée? cette personne est la bienvenue
            je parle biensûr d'une idée constructive

            merci bye biz
            1. Contributeur
              Si tu veux absolument comme ça, c'est impossible au format date, il faut passer en format texte mais alors impossible de faire des calculs dessus, si seulement pour affichage..
              Sub AffiLesHeures()
              Dim i As Long, A As String
              Dim DtDeb As Double
              Dim DtFin As Double
              
                  DtDeb = CDate("01/01/2008 1:0:00") 'Sélectionner début
                  DtFin = CDate("30/03/2008 23:59:59")'Sélectionner fin
                  Columns("A:A").Select
                  Selection.NumberFormat = "hh:mm dd/mm/yyyy"
                  Columns("A:A").HorizontalAlignment = xlRight
                  Range("A1").Select
              
                  i = 1
                  While DtDeb < DtFin
                      Cells(i, 1) = CVDate(DtDeb)
                      If Hour(DtDeb) = 0 Then
                          A = "'24:00 " & Format(Cells(i, 1), "dd/mm/yyyy")
                          Cells(i, 1) = CStr(A)
                      End If
                      DtDeb = DtDeb + TimeSerial(1, 0, 0)
                      i = i + 1
                      DoEvents
                  Wend
              End Sub

              A+