Problem bei Formatierung [hh]:mm im Excel?

...komplette Frage anzeigen Excel - (Excel, HM, Uhrzeit Formatierung)

3 Antworten

"...indem ich die Ist- von den Sollstunden abziehe."

Du rechnest Ist - Soll. Das ist das Eine.

Das Andere ist, dass selbst wenn du Soll - Ist rechnen würdest, negative Werte heraus kommen könnten, nämlich dann, wenn du über das Soll hinaus gearbeitet hast.

Dann bekommst du den dir bekannten Fehler (#). Diesen umgehst du, in dem du die Excel-Optionen veränderst: 

Datei → Optionen → Erweitert → Beim Berechnen der Arbeitsmappe → (x) 1904 Datumswerte verwenden

Hier ein Ereignis-µ, welches das Format  immer hin-und-herschaltet, allerdings unter realer Wertänderung von Zeitstunden [Einheit: 1 Tag = 24h = 1] und Industriestunden [Einheit:  1 Stunde = 1]:

Sub Worksheet_selectionchange(ByVal Target As Range) 'Wechselt zwischen NumberFormat 0,00 und [h]:mm
If Not Intersect(Target, Range("e11:e15")) Is Nothing Then
Debug.Print Target.NumberFormat ' î Î î Bereich anpassen!
If InStr(1, Target.NumberFormat, "[h]") > 0 Then Target.Value = Target.Value * 24: Target.NumberFormatLocal = "0,00 ""Std""": End
If InStr(1, Target.NumberFormat, "0.") > 0 Then Target.Value = Target.Value / 24: Target.NumberFormatLocal = "[h]:mm ""h""": End
MsgBox "falsches Format?"
End If: End Sub ' nicht Worksheet_Change: das ruft sich immer wieder selbst auf durch die Aktion /24 bzw *24

Für Berechnungen ist das sehr gefährlich, aber handhabbar. Evtl die Ergebniszelle mit in den Bereich der umzuwandelnden (Einzel!-)Zellen einbeziehen. (i.F. wird auf E11 bezogen:)

Evtl kann eine zusätzliche Kontrollfunktion noch etwas mehr Sicherheit geben:

=ZELLE("Format";E11)

 Diese Formel in einem extra Bereich (exBer) für jede einzelne an der Rechnung beteiligte Zelle setzen. Das liefert -entgegen den Angaben in der Hilfe!-

S, wenn Zeitformat, und

F2, wenn Industriestundenformat.

Kontroll-Fo:

=Wenn(Und(Zählenwenn(exBer;"S")>0;Zählenwenn(exBer;"F2")>0;" inkompatible Formate ! ";" alle Zellen haben gleiches Format")

Das zweite und dritte if sind -wie bei mir häufig- das einzeilige if, das kein else benötigt und deshalb kein end if braucht. Mehrere Befehle sind jeweils mit : aneinandergehängt (Dabei kein Zeilenumbruch erlaubt vor : End ! (wenn kürzere Zeilen zur Darstellung gewünscht, dann mit Leerzeichen, dann underbar, dann Enter,

also so: ... Then  ...: ... _

...: ...: End)  (anstatt End geht auch Exit Sub oder in einer Schleife zB Exit FOR

Ich kann das Problem nicht nachstellen. Die Zellformatierung scheint doch bei Deinem Beispiel überall gleich zu sein und in den anderen Zellen wird ja richtig gerechnet -> oder ist das manuell?

Ist das h auch über die Formatierung erzeugt oder steht das wirklich hinter der Zahl? Dann wäre klar, warum die Berechnung schiefgeht.
Zellen formatieren > Benutzer definiert > Typ hh:mm "h" erzeugt das H quasi nur an der Oberfläche, damit bleibt es eine Zahl und die Berechnung sollte gehen.

DeeDee07 24.11.2015, 16:51

In den "funktionierenden" Zellen ist ein Dezimal-Format, kein Uhrzeitenformat. Excel kann in der Standardeinstellung (1900-Datumsformat) keine negativen Zeiten darstellen (außer mit Umwegen via Textfunktionen).

3
Ninombre 24.11.2015, 22:30
@DeeDee07

Danke, das Thema war für mich neu - was dazu gelernt!

0

Was möchtest Du wissen?