Differenz aus der End- und Anfangszeit, die in einer Zelle stehen

Dieses Thema Differenz aus der End- und Anfangszeit, die in einer Zelle stehen im Forum "Microsoft Office Suite" wurde erstellt von nok106, 13. Jan. 2007.

Thema: Differenz aus der End- und Anfangszeit, die in einer Zelle stehen Hallo Excelfreunde ! Gibt es hierfür eine Lösung ?  ??? Ich habe einige Tabellen erhalten, bei deren Aufbau nicht...

  1. Hallo Excelfreunde !

    Gibt es hierfür eine Lösung ?  ???

    Ich habe einige Tabellen erhalten, bei deren Aufbau nicht bedacht wurde, dass mit den Einträgen weiter gerechnet werden soll.
    So ist es bei den Zeitspannen, indem die Anfangs- und die Endzeit in einer Zelle enthalten sind, in etwa so: 07.30-16.45
    Um daraus die Differenz zu bilden, also die Dauer zu berechnen, müßte man den Eintrag erst in seine Bestandteile zerlegen,
    um dann die Differenz aus dem End- und dem Anfangszeitpunkt zu finden.

    Könnte dieses auch mittels eines Makros gemacht werden ?

    Hat jemand eine Idee ob das geht und wenn ja - Wie ?

    Einstweilen herzlichen Dank an alle, die sich für mich bemühen.

    MfG Odje
     
  2. Also es geht alles, wenn man will  ;D

    Wie soll das Makro denn die Zellen->07.30-16.45' finden?
    Per Selektion ?
    Welches Format sollen denn die Zelle nach der Umwandlung haben ?

    Gruß Matjes :)
     
  3. Hallo Matjes,

    vorweg wünsche ich dir noch ein gesundes und friedvolles 2007  mml

    Die Zeitspannen sollen als Dezimalzahl ausgegeben werden.
    A5 = 7.00-14.00 in B5 die Auflösung
    A8 = 8.35-20.15 die Auflösung in A8
    Ich habe mir mal eine Formel zusammen gebastelt,
    Code:
    =((RECHTS(WECHSELN(B5;.;:);LÄNGE(B5)-FINDEN(-;B5;1)-1)*1)-(LINKS(WECHSELN(B5;.;:);FINDEN(-;B5;1)-1)*1))*24 
    aber es sind etliche Umstellungen vorzunehmen da dachte ich es könnte mit einem Makro schneller zu bewerkstelligen sein.
    Wenn es geht, Zelle selektieren und in in der Nachbarzelle Spalte B die Zeitspanne umrechnen !

    Gruß Odje
     
  4. Hallo nok106,

    dann pobier mal den aus.

    Gruß matjes :)
    Code:
    '*******************************************************************************************
    Sub StrDatumsdiffInDiffUmrechnen()
     ->*** Wandelt selektierte Zellen
     ->*** mit einer Zeitdifferenz der Form 07.30-16.45
     ->*** in Zellen
     ->*** mit einer Zeitdifferenz im Format hh:mm
     ->***
      
      Dim Zelle As Range
      Dim s As String, pos As Long, lmin As Long, dHour As Double, lHour As Long
      Dim d1 As Date, d2 As Date, ddiff As Date
      Dim s1 As String, h1 As Long, m1 As Long
      Dim s2 As String, h2 As Long, m2 As Long
      
      For Each Zelle In Selection
        s = Zelle.Value
        pos = InStr(1, s, -)
        If pos > 0 Then
         ->beide durch Bindestrich getrennte Zeiten
          s1 = Left(s, pos - 1)
          s2 = Right(s, Len(s) - pos)
          
         ->Beide in einen Zeitpunkt wandeln
          If InStundeMinuteWandeln(s1, h1, m1) Then
            If InStundeMinuteWandeln(s2, h2, m2) Then
              d1 = 1.1.2006  & h1 & : & m1 & :00
              d2 = 1.1.2006  & h2 & : & m2 & :00
              If d1 > d2 Then d2 = 2.1.2006  & h2 & : & m2 & :00
              ddiff = d2 - d1
              lmin = DateDiff(n, d1, d2)
              dHour = lmin / 60
             ->auf 2 Stellen runden
              lHour = dHour * 100
              dHour = lHour / 100
             ->Ergebnis in Zelle rechts neben Zelle schreiben
              Zelle.Offset(0, 1).NumberFormat = 0.00
              Zelle.Offset(0, 1).Value = dHour
            End If
          End If
        End If
      Next
    AUFRAEUMEN:
      Set Zelle = Nothing
    End Sub
    
    '*******************************************************************************************
    Private Function InStundeMinuteWandeln(s As String, lHour As Long, lmin As Long) As Boolean
     ->Zeitpunkt wird erwartet in der Form 07.30
      
      Dim sHour As String, sMin As String, pos As Long
      
      s = Trim(s): pos = InStr(1, s, .): If pos = 0 Then Exit Function
      sHour = Left(s, pos - 1)
      sMin = Right(s, Len(s) - pos)
      
      On Error Resume Next
      lHour = sHour
      If Err.Number <> 0 Then Err.Clear: On Error GoTo 0: Exit Function
      On Error GoTo 0
      If Not ((0 <= lHour) And (lHour <= 24)) Then Exit Function
      
      On Error Resume Next
      lmin = sMin
      If Err.Number <> 0 Then Err.Clear: On Error GoTo 0: Exit Function
      On Error GoTo 0
      If Not ((0 <= lmin) And (lmin <= 59)) Then Exit Function
      
      InStundeMinuteWandeln = True
      
    End Function
     
  5. Hallo Matjes,

    für das späte Feedback bitte ich um Entschudigung.

    Der Code ist perfekt.   :1

    Besten Dank für deine Hilfe.

    Herzliche Grüße und baldige G.....

    Odje
     
Die Seite wird geladen...

Differenz aus der End- und Anfangszeit, die in einer Zelle stehen - Ähnliche Themen

Forum Datum
SpeicherdifferenzenDas Problem: Laufwerk C:\ 49316 MB - belegt 45815 freier Speicher Windows XP Forum 7. Feb. 2014
LibreOffice Calc: Zeitdifferenz berechnen und als Industriestunden anzeigen StarOffice, OpenOffice und LibreOffice 26. Jan. 2013
Systemzzeit synchronisieren für mehrere Jahre Differenz Windows XP Forum 14. Apr. 2010
Differenz in Farbe in Excel Microsoft Office Suite 13. Jan. 2007
Zeitdifferenz direkt in einer Auswahlabfrage Microsoft Office Suite 26. Sep. 2005