VBA-Beispiel 129
mail schreiben
mail schreiben

Stunden zählen

Angenommen Sie haben eine Spalte in der jede Menge Uhrzeiten stehen. Quelle könnte zum Beispiel ein Logfile mit einigen tausend Zeilen sein. Jetzt wollen Sie wissen, wie viele Einträge in die Zeit zwischen 9:00 und 10:00 Uhr fallen.

Anstatt mit einer Schleife tausende von Zeilen zu durchwühlen, reicht dafür auch eine Anweisung:
    MsgBox (WorksheetFunction.CountIf(wks.Columns(2), ">=09:00:00") - _
            WorksheetFunction.CountIf(wks.Columns(2), ">=10:00:00"))
Die Schleife wird dann wieder ganz brauchbar um 24 Stunden zu durchlaufen:
Public Sub StundenZaehlen()
Dim wks As Worksheet
Dim lngStd As Long

Set wks = ActiveSheet

'Mit einer Schleife die 24 Stunden durchlaufen.
'Für jede Stunde die Vorkommen in Spalte B zählen
'und in Spalte E eintragen:

For lngStd = 0 To 23
  wks.Cells(lngStd + 2, 4) = lngStd & " bis " & lngStd + 1

  wks.Cells(lngStd + 2, 5) = _
      (WorksheetFunction.CountIf(wks.Columns(2), ">=" & lngStd & ":00:00") - _
       WorksheetFunction.CountIf(wks.Columns(2), ">=" & lngStd + 1 & ":00:00"))
Next lngStd

Set wks = Nothing
End Sub

Download:   vba129.zip