Zahlenformat: Zeit
Moderator: Moderatoren
-
- *******
- Beiträge: 1763
- Registriert: Di, 03.10.2006 18:05
Re: Zahlenformat: Zeit
Hallo pinguin,
das Format bitte so einstellen : [HH]:MM
sonst werden nur die Restwerte über 24Std oder durch 24teilbare Std ausgegeben.
Hinter der 20 muß ein : stehen (20: ) dann Stundenwerte.
Bei mir (WinXP; Ooo_Vers.3.0)
mfg
Gert
das Format bitte so einstellen : [HH]:MM
sonst werden nur die Restwerte über 24Std oder durch 24teilbare Std ausgegeben.
Hinter der 20 muß ein : stehen (20: ) dann Stundenwerte.
Bei mir (WinXP; Ooo_Vers.3.0)
mfg
Gert
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
Win7_64 / LO_4.4.5.2
Re: Zahlenformat: Zeit
So nicht. Eine ganzzahlige Eingabe in ein Zeit-/Datumsfeld gibt die Anzahl Tage (seit dem 30.12.1899 per Standardeinstellung). Stunden und Minuten sind Bruchteile von Tagen, 20 Minuten = 0,0138888888888889.Gast hat geschrieben:Sollzustand: Eingabe Zelle 20 -> Ausdruck Bearbeitungsleiste 20 -> Zelle 00:20 ; Zeitformat: ???
Der einfache Weg ist eine Eingabezelle für die Zeit in Minuten und eine Berechnung (=eingabezelle/24/60) in einer anderen Zelle, die du dann entsprechend als Zeit formatierst. Den [HH]-Überlauf brauchst Du nur bei einer möglichen eingabe ab 1440 min (=24h). - Gert hat das Problem von der falschen Seite angepackt, du willst ja Minuten eingeben und nicht Stunden. Eine Eingabe von "20:" funktioniert, damit die Eingabe automatisch als Stunden interpretiert wird, umgekehrt liefert ":20" aber leider nicht die Minuten, sondern wird als Text gelesen.
Zuletzt geändert von chrk am Mi, 21.01.2009 09:57, insgesamt 1-mal geändert.
Re: Zahlenformat: Zeit
Naja, da kann man schon was machen.
Je nachdem was Du mit den Werten anfangen willst.
Mit einem benutzerdefiniertem Format wie z.B. 00":"00 kannst Du Minuten-Ganzahlwerte eingeben, die dann wie Calczeiten aussehen. Solange Sie kleiner 1h sind.
Beim Zusammenzählen erhält man aber erstmal Minutensummen, die kann man entweder in Calczeiten umrechnen
=SUMME(xx:xx)/24/60
und als Calczeit formatieren oder im gleichen FOrmat anzeigen, muss aber auch wieder umrechnen, etwa
=GANZZAHL(SUMME(xx:xx)/60)*100+REST(SUMME(xx:xx);60)
Es kommt darauf an, was Du mit den Zahlen machen willst...
Je nachdem was Du mit den Werten anfangen willst.
Mit einem benutzerdefiniertem Format wie z.B. 00":"00 kannst Du Minuten-Ganzahlwerte eingeben, die dann wie Calczeiten aussehen. Solange Sie kleiner 1h sind.
Beim Zusammenzählen erhält man aber erstmal Minutensummen, die kann man entweder in Calczeiten umrechnen
=SUMME(xx:xx)/24/60
und als Calczeit formatieren oder im gleichen FOrmat anzeigen, muss aber auch wieder umrechnen, etwa
=GANZZAHL(SUMME(xx:xx)/60)*100+REST(SUMME(xx:xx);60)
Es kommt darauf an, was Du mit den Zahlen machen willst...
Gruss HW
Win7/SuSe 11.2 - LO 3.3
Win7/SuSe 11.2 - LO 3.3
Re: Zahlenformat: Zeit
Hallo,
Die Zeiten sind dabei nur einfach Zahlen, z. B. ist 725 = 7:25 Uhr oder 1611 = 16:11 Uhr oder 25 = 25 Minuten. Die Zahlen werden dabei so angezeigt, als handele es sich um Uhrzeiten, also in der Form "07:25". Allerdings wird eine Eingabe wie 70 nicht in 1:10 umgewandelt, sondern als 00:70 angezeigt. Gerechnet wird damit trotzdem richtig. Allerdings gehe ich bei meiner Arbeitszeittabelle davon aus, das die Anwender nur gültige Zeiten eingeben, was bei meinen Kollegen auch problemlos funktioniert.
Wenn du dein Problem mal etwas genauer beschreibst könnte ich versuchen, dir eine entsprechende Tabelle zu basteln. Allerdings nicht in der Salamitaktik, das du dann immer weitere Anforderungen hinzufügst. Wenn du eine Beispieltabelle wünscht, nenne bitte alle Anforderungen, die zur Zeit bestehen.
Gruss
MrMurphy
Es ist immer schön, wenn die Fragen / Anforderungen nachträglich erweitert werden, damit kann man sich viele Freunde machen.wenn eine eingegebene 70 beispielsweise automatisch in 01:10 umgewandelt wird, würde ich dieses nur begrüßen
Ich bin ein Fan von möglichst einfachen Eingaben. Und da ist das Einfügen von Doppelpunkten oder ähnlich schlecht zu erreichenden Buchstaben / Symbolen / Ziffern natürlich unrentabel. Deshalb arbeite ich mit ausgeblendeten Spalten, um "Zeiten" in Zahlen mit Kommastellen umzurechnen, dann damit zu rechnen und die wieder als "Zeiten" anzuzeigen.Das einzigste halt, was mich hier bei diesen Zeitangaben, ist, daß es nicht genügt, in die Zelle lediglich eine 20 zu schreiben, um den Zeitausdruck 00:20 zu erhalten;
Die Zeiten sind dabei nur einfach Zahlen, z. B. ist 725 = 7:25 Uhr oder 1611 = 16:11 Uhr oder 25 = 25 Minuten. Die Zahlen werden dabei so angezeigt, als handele es sich um Uhrzeiten, also in der Form "07:25". Allerdings wird eine Eingabe wie 70 nicht in 1:10 umgewandelt, sondern als 00:70 angezeigt. Gerechnet wird damit trotzdem richtig. Allerdings gehe ich bei meiner Arbeitszeittabelle davon aus, das die Anwender nur gültige Zeiten eingeben, was bei meinen Kollegen auch problemlos funktioniert.
Wenn du dein Problem mal etwas genauer beschreibst könnte ich versuchen, dir eine entsprechende Tabelle zu basteln. Allerdings nicht in der Salamitaktik, das du dann immer weitere Anforderungen hinzufügst. Wenn du eine Beispieltabelle wünscht, nenne bitte alle Anforderungen, die zur Zeit bestehen.
Gruss
MrMurphy
Re: Zahlenformat: Zeit
Merkwürdige Anmache MrMurphy,
unser Pinguin hat von Anfang an eine klare Aufgabenstellung gehabt....
Unklar ist lediglich welcher Bereich an Eingabewerten zu erwarten ist?
Wenn man es einiger Maßen richtig machen will, dann sollte man wohl einen Modify-Listener auf die Eingabezellen setzen und eine Ganzzahleingebe in Minuten vereinbaren, die in der ListnerProzedur auf Calc-Zeitangaben runtergerechnet werden.
Kommt den eine Makrolösung in Betracht?
unser Pinguin hat von Anfang an eine klare Aufgabenstellung gehabt....
Unklar ist lediglich welcher Bereich an Eingabewerten zu erwarten ist?
Wenn man es einiger Maßen richtig machen will, dann sollte man wohl einen Modify-Listener auf die Eingabezellen setzen und eine Ganzzahleingebe in Minuten vereinbaren, die in der ListnerProzedur auf Calc-Zeitangaben runtergerechnet werden.
Kommt den eine Makrolösung in Betracht?
Gruss HW
Win7/SuSe 11.2 - LO 3.3
Win7/SuSe 11.2 - LO 3.3
Re: Zahlenformat: Zeit
Dafür habe ich Dir einen Weg aufgezeichnet. Vergiß nicht, dass Du es hier mit einer Tabellenkalkulation zu tun hast. Es gibt kein Datenformat, das 'Minuten' heißt, aber wenn Du verstanden hast, wie Calc Zeitwerte intern behandelt, kannst Du ganzzahlige Eingaben in Zeitwerte umrechnen lassen, nur nicht in ein und derselben Zelle. - Es ist eben eine Tabellenkalkulation.Gast hat geschrieben:Mir ging es ja primär eben nur um das Format, weil ich es doch als wenig praxisgerecht empfinde, daß man Minuten nicht eben einfach als Minuten eingeben kann und den passenden Zeitausdruck dafür erhält.
Vielleicht hilft Dir zum allgemeinen Verständnis der Wiki-Artikel CalcFunktionenDatum/RechnenMitDatumUndZeit.
Re: Zahlenformat: Zeit
Dann stell ich mal meinen Vorschalg vor, der von einem Modify-Listener gesteuert wird:
Jede Änderung im ListenerRange (hier H1:H20) führt auf die Prozedur timeRangeListener_modified( oEvent ),
die eine Eingabe von Ganzahl-Minuten in Calczeit umrechnet und das Format aus H1 auf die Eingabe anwendet.
Für eine automaische Registrierung des Eventlisteners muss die Prozedur register_Range_Listener() durch das Ereignis Dokument öffnen ausgeführt werden. Zum Testen kannst Du die Registrierung auch von Hand anstossen. Über das Ereignis Dokument schließen wird mit der Prozedur kill_Range_Listener() die Event-Loop wieder geschlossen.
Event-Loops sind sehr empfindlich gegen Arbeiten im Basic-Editor. Bevor also jemand bei laufender Event-Loop irgend was am Code fummeln will erst den Listener killen - macht z.B. die Eingabe CloseListener in eine Zelle im ListenerRange. Falls Du letztgenanntes, aus welchem Grund auch immer, nicht beachtest, dann Dokument speichern und neu öffnen!
Jede Änderung im ListenerRange (hier H1:H20) führt auf die Prozedur timeRangeListener_modified( oEvent ),
die eine Eingabe von Ganzahl-Minuten in Calczeit umrechnet und das Format aus H1 auf die Eingabe anwendet.
Für eine automaische Registrierung des Eventlisteners muss die Prozedur register_Range_Listener() durch das Ereignis Dokument öffnen ausgeführt werden. Zum Testen kannst Du die Registrierung auch von Hand anstossen. Über das Ereignis Dokument schließen wird mit der Prozedur kill_Range_Listener() die Event-Loop wieder geschlossen.
Event-Loops sind sehr empfindlich gegen Arbeiten im Basic-Editor. Bevor also jemand bei laufender Event-Loop irgend was am Code fummeln will erst den Listener killen - macht z.B. die Eingabe CloseListener in eine Zelle im ListenerRange. Falls Du letztgenanntes, aus welchem Grund auch immer, nicht beachtest, dann Dokument speichern und neu öffnen!
Code: Alles auswählen
'(C)oded 2008 hw::lemitec.de
' ModifyListener to CellRange
Global oRangeListner
Global oRange
Global bListenerModifing as Boolean
Global icellFMT as Integer
Sub kill_Range_Listener()
On Error Resume Next
if (not IsNull(oRangeListner) and not IsEmpty(oRangeListner)) then
oRange.removeModifyListener(oRangeListner)
endif
End Sub
Sub register_Range_Listener()
'Set ListenerRange -----------------------------------------------------
icellFMT = ThisComponent.Sheets(0).GetCellRangeByName("H1").numberformat
oRange = ThisComponent.Sheets(0).GetCellRangeByName("H1:H20")
'-----------------------------------Register Sub prefix------------------
oRangeListner = CreateUnoListener( "timeRangeListener_","com.sun.star.util.XModifyListener")
oRange.addModifyListener(oRangeListner)
End Sub
Sub timeRangeListener_modified( oEvent )
Dim oCell as Object
if bListenerModifing then
' break event loop
bListenerModifing = false
Exit Sub
endif
oCell = ThisComponent.CurrentController.Selection
if not (oCell.ImplementationName = "ScCellObj") then
'get active cell of selection range!
oCell = ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges")
ThisComponent.CurrentController.Select(oCell)
oCell = ThisComponent.CurrentSelection
endif
if oCell.getString = "CloseListener" then kill_Range_Listener: Exit Sub
bListenerModifing = true
oCell.setValue(oCell.getValue/24/60)
oCell.numberformat = icellFMT
End Sub
Gruss HW
Win7/SuSe 11.2 - LO 3.3
Win7/SuSe 11.2 - LO 3.3
Re: Zahlenformat: Zeit
Das vereinfacht das Problem. Scheint mir aber eine wenig sinnvolle Aufgabe...
Dir fehlen elementare Starbasic Einsichten
, oder?
Dir fehlen elementare Starbasic Einsichten

Code: Alles auswählen
'Änderungen zum Code oben
Sub register_Range_Listener()
'Set ListenerRange -----------------------------------------------------
oRange = ThisComponent.Sheets.getByName("Tabelle1").GetCellRangeByName("A1:A1000")
'-----------------------------------Register Sub prefix------------------
oRangeListner = CreateUnoListener( "colARangeListener_","com.sun.star.util.XModifyListener")
oRange.addModifyListener(oRangeListner)
End Sub
Sub colARangeListener_modified( oEvent )
Dim oCell as Object
oCell = ThisComponent.CurrentController.Selection
if not (oCell.ImplementationName = "ScCellObj") then
'get active cell of selection range!
oCell = ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges")
ThisComponent.CurrentController.Select(oCell)
oCell = ThisComponent.CurrentSelection
endif
if oCell.getString = "CloseListener" then kill_Range_Listener: Exit Sub
ThisComponent.Sheets.getByName("Tabelle2").GetCellRangeByName("A1").setValue(oCell.getValue)
End Sub
Gruss HW
Win7/SuSe 11.2 - LO 3.3
Win7/SuSe 11.2 - LO 3.3
-
- *******
- Beiträge: 1763
- Registriert: Di, 03.10.2006 18:05
Re: Zahlenformat: Zeit
Hallo Sanne,
folglich sollte für jede "Produktgruppe" ein eigenes "Tabellenblatt" bereitgestellt werden, das würde in etwa einer "Datenbank"
entsprechen.
Falls möglich schau Dir mal diese "URL's" mit Vorlagen_Beispielen an, eventuell findest Du ein "freeware-programm" :
http://ooo42.org/vorlagen.html
Man muß ja nicht jedesmal das "Rad" neu erfinden.
Falls auch der Zugriff auf "MS_Access" möglich ist, die haben eine schöne "Muster_DB" namens "Nordwind.mdb". Dort sind die "Artikel" in
"Artikelgruppen" unterteilt.
mfg
Gert
folglich sollte für jede "Produktgruppe" ein eigenes "Tabellenblatt" bereitgestellt werden, das würde in etwa einer "Datenbank"
entsprechen.
Falls möglich schau Dir mal diese "URL's" mit Vorlagen_Beispielen an, eventuell findest Du ein "freeware-programm" :
http://ooo42.org/vorlagen.html
Man muß ja nicht jedesmal das "Rad" neu erfinden.
Falls auch der Zugriff auf "MS_Access" möglich ist, die haben eine schöne "Muster_DB" namens "Nordwind.mdb". Dort sind die "Artikel" in
"Artikelgruppen" unterteilt.
mfg
Gert
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
Win7_64 / LO_4.4.5.2
Re: Zahlenformat: Zeit
Hallo Sanne,
Gruß
balu
natürlich kannst Du die Datei in 3.0 und in 2.3 abwechselnd bearbeiten. Nur solltest Du darauf achten, dass in der 3er nicht das neue ODF-Format 1.2 gesetzt ist, sondern lieber das 1.0/1.1. Dann kannst Du beliebig wechseln.Sanne hat geschrieben: Datei darf aber nicht abwechselnd in 3.0 und 3.2 geöffnet werden
Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.
wehr rächtschraipfähler findet khan si behalden
wehr rächtschraipfähler findet khan si behalden
