Seite 1 von 1
Makro für Einfügen eines Zeitstempels z.B.: 08.08.07,13:04
Verfasst: Mi, 08.08.2007 13:09
von egerlach
Ich führe in einer Calc-Spalte eine Art Historie von Gesprächen. Ich will per Funktionstaste/Makro einen Zeitstempel einfügen, dort wo gerade der Cursor ist, z.b.: 08.08.07, 13:04. Dahinter schreibe ich dann die neusten Gesprächsnotizen.
Um Mißverständnisse zu vermeiden: Es soll KEINE Funktion sein, die immer wieder die Zeit aktualisiert, ein STEMPEL ist ein STEMPEL und der ist unveränderlich.
danke schon mal
eckard
Re: Makro für Einfügen eines Zeitstempels z.B.: 08.08.07,13:04
Verfasst: Mi, 08.08.2007 13:48
von matlat
Hallo Eckard,
unter folgender Adresse kannst du dir ein Plugin (.riess Date Browser) runterladen, das genau das macht, was du willst.
http://www.riess.de/DE/?mitte=http%3A%2 ... te_Browser
Wolfgang
Re: Makro für Einfügen eines Zeitstempels z.B.: 08.08.07,13:04
Verfasst: Mi, 08.08.2007 15:13
von egerlach
das OO-Makro ist leider weder vom gedachten Funktionsumfang noch von der Funktionsfähigkeit unbrauchbar:
1. Unter Linux Suse 9.2, OpenOffice 2.1 kann nur ein einziger Datumtyp eingefügt werden, nämlich XX.XX.XX. Bei Auswahl anderer Typen z.B. mit Uhrzeit wir ### eingefügt, klicke danach dann auf das dreifachkreuz entpuppt sich das ### immer als Datum des Typ XX.XX.XX, gleich welches Format ich ausgewählt habe.
2. Es dauert zu lange bis das Datum eingefügt ist! Es dauert etwa 1 Sekunde bis das JAVa-Fenster sich öffnet, dann der Doppelklick auf das Datum z.B. von heute. Uhrzeit funktioniert nicht, das Datum z.B. 8.8. habe ich schneller so eingetippt, Uhrzeit ist nicht immer wichtig.
3. Es ist nicht möglich das Datum in eine schon vorhandenen Text einzufügen! Es kann nur ein leeres Calc-Feld damit bestückt werden. Hat das Feld schon Text, dann wird dieser gelöscht! Das ist schon KO-Kriterium
Also: nochmals die Frage in dieses Forum: kann ich in einen VORHANDENEN TEXT in einem Calc-Feld per Macro einen Text einfügen? (Basic-Programmierung geht sicherlich ... )
Gruss
Eckard
Re: Makro für Einfügen eines Zeitstempels z.B.: 08.08.07,13:04
Verfasst: Mi, 08.08.2007 17:21
von egerlach
Das Zuordnen eines Macro zu einer Taste ist nicht das Problem, aber danke auch,
Gruss
Eckard
Re: Makro für Einfügen eines Zeitstempels z.B.: 08.08.07,13:04
Verfasst: Mi, 08.08.2007 17:35
von Gert Seler
Hallo Eckard,
hier findest Du ein Makro "Aktuelles Datum" :
http://www.ooowiki.de/CalcMakros
oder hier :
http://sourceforge.net/project/showfile ... _id=128899
viel Glück.
mfg
Gert
Re: Makro für Einfügen eines Zeitstempels z.B.: 08.08.07,13:04
Verfasst: Mi, 08.08.2007 18:16
von komma4
Ohne Nacharbeiten wird Eckhard damit nicht glücklich werden: auch diese Makros setzen in Calc einfach die Zelle, ohne auf einen vorhandenen Inhalt Rücksicht zu nehmen.....
Aber: es gibt Hoffnung, Eckhard!
Ich bin in den "letzten Zügen" des Tests der
Version 2 dieses Teils.
Neben einer deutlicheren Dokumentation im Code kann DateTime2 dann auch:
in Calc
* Setzen in mehr als einer Zelle (=auch Mehrfach-Auswahl von Zell-[bereichen]
* konfigurierbar: Überschreiben oder Einfügen [vor/hinter] einem vorhandenen Inhalt
* verbessertes Fehler-handling (war: Abbruch bei Auswahl von Nicht-Zellen [Bildern, Charts])
Nachdem das Wetter mich nicht nach draussen lockt erwarte ich die Freigabe gegen Ende der Woche; eine Nachricht über das Einstellen auf sourceforge.net und meiner Website werde ich im BASIC-Forum posten. Wann dann andere mirrors (ooomacros.org /heise) eine Aktualisierung vornehmen kann ich natürlich nicht voraussagen.
Re: Makro für Einfügen eines Zeitstempels z.B.: 08.08.07,13:04
Verfasst: Mi, 08.08.2007 21:08
von Stephan
dort wo gerade der Cursor ist
dann wäre es am Universellsten das über ein einfaches paste zu machen, in:
http://www.oooforum.org/forum/viewtopic ... mclipboard
findest Du ein Makro was Du dafür schnell um 3 Zeilen erweitern kannst und erhälst:
Code: Alles auswählen
Private oTRX
Sub datum_zeit_an_Cursorposition()
Dim null as Object
oClip = createUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
oTRX = createUnoListener("TR_", "com.sun.star.datatransfer.XTransferable")
oClipContents = oClip.setContents(oTRX, null)
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
End Sub
function TR_getTransferData( aFlavor as com.sun.star.datatransfer.DataFlavor ) as Any
if (aFlavor.MimeType = "text/plain;charset=utf-16") then
TR_getTransferData = STR(Now())
endif
end function
function TR_getTransferDataFlavors() as any
Dim aF as new com.sun.star.datatransfer.DataFlavor
aF.MimeType = "text/plain;charset=utf-16"
aF.HumanPresentableName = "Unicode-Text"
TR_getTransferDataFlavors = Array(aF)
end function
function TR_isDataFlavorSupported( aFlavor as com.sun.star.datatransfer.DataFlavor ) as Boolean
'call MyPlaySoundSystem("SystemAsterisk", true) 'My XP system beep - shows that this routine is called every 2 seconds
TR_isDataFlavorSupported = (aFlavor.MimeType = "text/plain;charset=utf-16")
end function
Wenn Du Sub datum_zeit_an_Cursorposition() startest wird aktuelles Datum/Zeit so eingefügt als wenn Du das mit paste machen würdest und Du erhälst automatisch das richtige Ergebnis, also ist eine Zelle markiert wird der Zellinhalt ersetzt, steht der Cursor im Zelltext wird an Cursorposition eingefügt (also Zelltext ergänzt) ist ein Teil des Zellinhaltes markiert wird nur der überschrieben.
Gruß
Stephan
Re: Makro für Einfügen eines Zeitstempels z.B.: 08.08.07,13:04
Verfasst: Fr, 10.08.2007 22:14
von egerlach
leider kommt bei Ausführung dieses Macro ein Popup Laufzeitvariable oder Methode nicht gefunden und OO 2.2 friert ein. Ich bekomme auch nicht angezeigt wo im Basic Code das Programm stehen bleibt. OO friert schon vorher ein.
Woran könnte das liegen?
Gruss
Eckard
Re: Makro für Einfügen eines Zeitstempels z.B.: 08.08.07,13:04
Verfasst: Sa, 11.08.2007 11:32
von WernerD
Hallo Eckard,
vieleicht so:
bei
http://www.heise.de/ct/activaid/ das Programm activaid downloaden
die Erweiterung <hotstrings> aktivieren, neuen Eintrag hinzufügen (+) z.B. h#, im Textfeld:
----------------
Heute = %A_Now%
FormatTime, Heute, %Heute%, dd.MM.yy hh:mm
Send, %Heute%
------------------
eingeben
über dem Textfeld <AutoHotkey-Befehle> anwählen
<HotString auf Fehler überprüfen>
<Übernehmen>
Calc öffnen, Zelle anwählen, ausprobieren (Tastenkombination dann Leertaste)
also bei mir hat es geklappt.
Die Tastenkombination, Ausgabeformat usw. kannst Du ja anpassen, wie Du möchtest.
ist übrigens eine kleine feine Sammlung dieses activAid.
viel Glück.
Werner