Zeiten eingeben

Informationen und Beispiele zu den hier genannten Dialog-Elementen:


Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: Zeiten eingeben
von: Achim
Geschrieben am: 22.05.2002 - 19:54:11

Die Option 1904-Datumswert ist aktiviert, sonst kann ich negative Zeiten nicht darstellen.
Der Versuch, mit diesem Makro Zeiten in eine Zelle zu übergeben, ist fehlgeschlagen.

Sub Manuellzeit()
Manuell = InputBox("Bitte Zeit eingeben für die aktive Zelle." & _
" ENTER ohne Eingabe verläßt diesen Menüpunkt wieder", "Zeiten manuell eingeben")
If Manuell = "" Then
GoTo Ende
End If
ActiveCell.NumberFormat = "[hh]:mm;[Rot]-[hh]:mm"
ActiveCell = Manuell
Ende:
End Sub

Damit wird der eingegebene Wert z.B. -21:15 zwar in die avtive Zelle übergeben, aber obwohl ich die richtige Formatierung verwende, wird der Wert anscheinend nicht als numerischer, bzw. Zeitwert in der Zelle erkannt.
Denn in der Zelle, in der die Summe von M5:M16 berechnet wird ändert sich der Wert der Summe nicht.
Vermutlich ist die Zeile ActiveCell=Manuell nicht ausreichend genug.
Ich muss der Zelle irgendwie mitteilen, dass der übergebene Wert eine Zeit ist, bloß wie?

nach oben   nach unten

Re: Zeiten eingeben
von: WernerB.
Geschrieben am: 22.05.2002 - 20:05:35

Hallo Achim,

VBA "spricht" englisch; deshalb anstatt [Rot] besser [Red] schreiben, dann sollte es klappen!

MfG
WernerB.


nach oben   nach unten

Re: Zeiten eingeben
von: Achim
Geschrieben am: 22.05.2002 - 20:17:00

Danke für den Hinweis. Leider ist dass nicht die Lösung. Wenn ich Red, statt rot eingebe, kommt eine Fehlermeldung.
Ich muss den Inputwert als Zeitwert in die Zelle bekommen!!!!

nach oben   nach unten

Re: Zeiten eingeben
von: WernerB.
Geschrieben am: 22.05.2002 - 20:24:14

Hallo Achim,

bei mir (allerdings Excel '97) war es umgekehrt. Bei Deinem Code wurde die Zeile mit der Formatierung angemeckert. Nach der Umstellung von "Rot" auf "Red" gab es keine Probleme mehr; die eingegebene Zeit ("18:30:00") wurde auch als Zeit eingetragen und der Formatierung entsprechend dargestellt.

Ich bedaure sehr, dass ich Dir hier nicht weiterhelfen kann.

MfG
WernerB.

nach oben   nach unten

Re: Zeiten eingeben
von: GerhardW
Geschrieben am: 22.05.2002 - 20:40:33

Hallo Achim,

Du solltest die Zeitangabe in eine Zahl umwandeln:

Sub Manuellzeit()
  Manuell = InputBox("Bitte Zeit eingeben für die aktive Zelle." & _
  " ENTER ohne Eingabe verläßt diesen Menüpunkt wieder", "Zeiten manuell eingeben")
  ActiveCell.NumberFormat = "[hh]:mm;[red]-[hh]:mm"
  If Manuell = "" Then Exit Sub
  If Left(Manuell, 1) = "-" Then
      Manuell = Mid(Manuell, 2)
      ActiveCell = 0 - CDbl(CDate(Manuell))
    Else
      ActiveCell = CDate(Manuell)
  End If
End Sub
Gruß Gerhard
nach oben   nach unten

Re: Zeiten eingeben
von: Achim
Geschrieben am: 23.05.2002 - 08:02:37

Hallo Gerhard.
Du hast mich ein ganzes Stück weitergebracht mit meiner Problematik. Dafür erstmal schönen Dank.
Ein kleines Problem bleibt aber noch. Sobald ich, ob positiv, oder negativ, einen Wert eingebe, der größer der logischen "Uhrzeit" entspricht, kommt die Fehlermeldung "Typen unverträglich". Ist ja auch klar. Es gibt ja auch nicht 34 Uhr 12, etc.etc...
Da ich aber auch Zeiten eingeben muss, wie z.B -36:30, oder 29:45, muss ich da noch etwas ändern, nur was?
Wenn Du dafür auch noch eine Lösung hättest, das wäre super.
Gruß Achim
nach oben   nach unten

Re: Zeiten eingeben
von: WernerB.
Geschrieben am: 23.05.2002 - 18:01:56

Hallo Achim,

ich bin zwar nicht Gerhard aber bei mir (Excel '97) funktioniert das Eingeben von Stunden (größer 24:00) und von negativen Stunden wie folgt:

1. Extras / Optionen / Berechnen (bei 1904-Datumswerte das Häkchen setzen).
2. Formatieren wie von Gerhard und mir vorgeschlagen (manuell mit "Rot" oder per Makro mit "Red").
3. Eintrag von positiven Stunden: 29:45
4. Eintrag von negativen Stunden: -"36:30" (genau so – also mit Anführungszeichen und dem Minuszeichen davor – eingeben).

Viel Erfolg wünscht
WernerB.

nach oben   nach unten

Re: Zeiten eingeben
von: GerhardW
Geschrieben am: 23.05.2002 - 20:12:56

Hallo Achim und Werner,

ich glaube, Achim, Du willst Deine Eingabe über die Inputbox realisieren.
Dein Vorschlag, Werner, brachte mir die Idee mit Formula.

Sub Manuellzeit()
  Manuell = InputBox("Bitte Zeit eingeben für die aktive Zelle." & _
  " ENTER ohne Eingabe verläßt diesen Menüpunkt wieder", "Zeiten manuell eingeben")
  ActiveCell.NumberFormat = "[hh]:mm;[red]-[hh]:mm"
  If Manuell = "" Then Exit Sub
  If Left(Manuell, 1) = "-" Then
      Manuell = Mid(Manuell, 2)
      ActiveCell.FormulaR1C1 = Manuell
      ActiveCell = -ActiveCell
    Else
      ActiveCell.FormulaR1C1 = Manuell
  End If
End Sub
Gruß Gerhard
 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Zeiten eingeben"