Seite 1 von 1

Uhrzeiten eingeben

Verfasst: Mi, 02.06.2004 22:50
von tobik
Hi,

ich habe ein Dokument das mit vielen Uhrzeiten gefüllt werden muss. Dabei ist es lästig immer wieder den Doppelpunkt zu tippen.

Gibt es eine Möglichkeit nur 4 Ziffern einzutippen und dann automatisch in eine Uhrzeit umzuwandeln (1200 -> 12:00)

Ich hab schon über Daten/Gültigkeit/Makro versucht einen "ungültigen-4-ziffern" Eingabewert mit einem Doppelpunkt zu versehen und in die aktuelle Zeile zurückzuschreiben. Allerdings wird dieser Wert danach wieder durch den "ungültigen-4-ziffern" Wert ersetzt.

Tobias

Verfasst: Sa, 12.06.2004 22:46
von tobik
Hallo Stephan,

Treffer und versenkt :-)

Allerdings wird beim Verlassen einer Zelle die neue Zelle in event.source übermittelt. Man muss also letztlich die Zelle des vorherigen Aufrufs bearbeiten.

Code: Alles auswählen

Global oRecentSelection As Object

REM   What to do when we get an event: 
Sub MyApp_selectionChanged(oEvent) 

   ' the source property of the event struct 
   ' gets a reference to the event source, 
   ' in this case, NOT the onscreen selection, 
   ' but rather the currentController: 

	oSelection = oRecentSelection
	oRecentSelection = oEvent.source.selection
	
    'Only if oSelection is a single cell
    if oSelection.supportsService ("com.sun.star.sheet.SheetCell") then
	    'columns 1 and 2 are our timestamps
    	if (oSelection.CellAddress.column = 1) or (oSelection.CellAddress.column = 2) then
			'modify only if cell contains 4 characters and no colon
			if (len (oSelection.String) = 4) and (InStr (oSelection.String, ":") = 0) then
 		    	oSelection.Formula = Left (oSelection.Value, 2) + ":" + Right (oSelection.Value, 2)
	 		    oSelection.NumberFormat = 40
 			end if
	    end if
	end if
End Sub
Danke und Gruß,
Tobias

Frage zu Daten/Gültigkeit...

Verfasst: So, 27.06.2004 14:21
von Raabun
Hallo Leute,
ich habe zu diesem Thema eine weiterführende Frage:
Weiß jemand von Euch wie ich dieses Feature
Daten, Gültigkeit, Zeit, Stop
in einen über Java erstellten Cell-Type o.ä pressen kann.

Zur Erläuterung:
Ich erzeuge mir mit Java-dynamisch eine OO-Calc-Dokument, in dem ich Zeiten eingeben will. Auf diese Zeiten wird später mit einem Makro zugegriffen. Falls in der Zelle nun KEINE Zeit steht, meldet mir mein Makro einen Fehler im Aufruf und startet OO-Basic-zum Debuggen ja ok,
aber im Gebrauch nicht. Eine nach obigen Muster behandelte Zelle verhinder aber die Eingabe einer "Nicht-Zeit"

Vielen Dank
Raabun

Verfasst: Fr, 22.04.2005 23:54
von tobik
Leider funktioniert obige Lösung mit OO2 nicht mehr richtig. Deshalb hier die Anpassung an Openoffice 2.0, getestet mit Beta Build 1.9.79:

Code: Alles auswählen

Global oRecentSelection As Object

REM   What to do when we get an event:
Sub MyApp_selectionChanged(oEvent)

    ' the source property of the event struct
    ' gets a reference to the event source,
    ' in this case, NOT the onscreen selection,
    ' but rather the currentController: 

    oSelection = oRecentSelection 
    oRecentSelection = oEvent.source.selection 
    
    'Only if oSelection is a single cell 
    if oSelection.supportsService ("com.sun.star.sheet.SheetCell") then
        'columns 1 and 2 are our timestamps
        if (oSelection.CellAddress.column = 1) or (oSelection.CellAddress.column = 2) then
            'if cell formula is less then 1 then it is already a valid time.
            if oSelection.Formula >= 1 then
                recentString = oSelection.Formula
                while (len (recentString) < 4)
                    recentString = "0"+recentString
                wend
                recentString = Left (recentString, 2) + ":" + Right (recentString, 2)
                oSelection.Formula = recentString
                oSelection.NumberFormat = 40
            end if
        end if
    end if
End Sub
Gruß, Tobias

Re: Uhrzeiten eingeben

Verfasst: So, 22.07.2007 22:55
von gripslund
Hallo,
habe etwas in der Richtung: als Beispiel (mit meinen Zellen):
Spalte "L" formatiert mit > 00":"00 < (NullNullAnf.-zeichenDoppelp.Anf.-zeichenNullNull) - hier werden die Uhrzeiten eingetragen -> 106 für 01:06 Uhr, 34 für 00:34 Uhr ...
in Spalte "N" steht folgende Formel, welche die in "L" eingetragene Zahl in eine Uhrzeit umwandelt (formatiert mit 876613:37 [Std:Min]): =WENN(ISTZAHL(L5);(GANZZAHL(L5/100)*60+RECHTS(L5;2))/60/24;0)
Die Hilfsspalte "N" blende ich aus, muss keiner sehen, wird aber für die Berechnung herangezogen.
Hilft das? Benutze ich seit Jahren und kommt ohne Makro aus.

Gruß.

gripslund

Re: Uhrzeiten eingeben

Verfasst: Sa, 02.09.2017 17:35
von lorbass
Moderationshinweise
1. Bitte Vollzitate (längerer) vorhergehender Beiträge vermeiden. Sie sollte soweit gekürzt werden, dass verständlich bleibt, worauf sich die eigene Antwort beziehen soll. Das gilt erst recht, wenn das Zitat selbst auf ein vorangegangenes Zitat bezieht.
2. Bitte keine "alten" Threads mehr aufwärmen.
Siehe auch Allgemeinen Hinweise zur Forumsbenutzung (dort unter: "Eröffnet neue Threads").

Eröffne bitte einen neuen Thread mit Deiner Frage.

Thread gesperrt.

lorbass, Moderator