Hajo's Excelzeiten mit einer umfangreiche Beispielsammlung zum kostenfreien Download. 
			Sowohl Formellösungen als auch Beispiele für die Makroprogrammierung in Excel.
Home
VBA Beispiele

  Allgemein
  Bilder einfügen
  blinkender Zellinhalt
  Counter
  Datei schließen
  Dateikopie
  Dateiverwaltung
  Datensätze umschreiben
  Datum / Zeit
  DropDown-Listenfeld
  Drucken
  Ersatz bedingte Formatierung
  Füllfarbe
  Kontextmenü
  Markieren
  nur mit Makros
  Sound
  Stoppuhr
  Symbolleiste Formular
  Symbolleiste vor 2007
  Symbolleiste ab 2007
  UserForm

ohne VBA Beispiele
fremde Dateien
Hinweise zu Excel ab Version 2007
Übersicht Downloads
Bilder
Kontakt
Favoriten
Tools Tabelle Forum
Impressum
Copyright
Disclaimer

letzte Bearbeitung 28.07.19

Valid XHTML 1.0 Strict CSS ist valide!
Bing
Suchmaschinenoptimierung mit Ranking-Hits



' **************************************************************
'  Modul:  mdl_Arbeiszeit_Pause  Typ = Allgemeines Modul
' **************************************************************

Option Explicit                                     ' VariablEndefinition erforderlich

Function Arbeitszeit(Beginn As Variant, Ende As Variant) As Date
    '***********************************************
    '* H. Ziplies                                  *
    '* 23.12.14                                    *
    '* erstellt von HajoZiplies@web.de             *
    '* http://Hajo-Excel.de/                       *
    '***********************************************
    Application.Volatile
    Dim DoWert As Double
    ' nach Hinweis von Xico zusätzlicher Vergleich falls eine Eingabe leer
    If Beginn <> 0 And Ende <> 0 And IsNumeric(Beginn) And IsNumeric(Ende) Then
        ' ******
        With Application.WorksheetFunction
            ' Mod kann nicht den Rest bei Kommazahlen ermitteln, darum so aufwendig
            If Ende - Beginn < 0 Then
                DoWert = Ende - Beginn + 1
            Else
                DoWert = Ende - Beginn
            End If
            Select Case DoWert
                Case Is < 6 / 24
                    ' Arbeitszeit < 6 Stunden
                    Arbeitszeit = DoWert
                Case Is < 9 / 24
                    ' Arbeitszeit < 9 Stunden
                    Arbeitszeit = DoWert - Application.WorksheetFunction.Min(CDate("0:30"), DoWert - 6 / 24)
                Case Else
                    ' Arbeitszeit >= 9 Stunden
                    Arbeitszeit = DoWert - Application.WorksheetFunction.Min(CDate("1:00"), DoWert - 9 / 24)
            End Select
        End With
    Else
        Arbeitszeit = 0                             ' Text Eingabe
    End If
End Function

Code eingefügt mit: Excel Code Jeanie, angepasst an XHTML