❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Datumseingabe

CALC ist die Tabellenkalkulation, die Sie immer wollten.
cora092002
Beiträge: 64
Registriert: Fr 19. Sep 2014, 22:22

Re: Datumseingabe

Beitrag von cora092002 » Mi 26. Nov 2014, 23:20

Hallo mikele,
Du hast mir sehr geholfen, Deine Antwort unter Punkt 5 hatt mir die Lösung gezeigt.
Gruß Cora
WIN 10 Pro u. Home • LO 5.1.2.2

mikele
* LO-Experte *
Beiträge: 1947
Registriert: Mo 1. Aug 2011, 20:51

Re: Datumseingabe

Beitrag von mikele » Do 27. Nov 2014, 16:59

Hallo,

ich vergaß beim letzten Post noch die kommentierte Version des Makros. Das sollte die Anpassung auf andere Situationen (hoffentlich) vereinfachen.
Dateianhänge
kalenderdialog.ods
(17.6 KiB) 226-mal heruntergeladen
Gruß,
mikele

Pit Zyclade
* LO-Experte *
Beiträge: 3060
Registriert: Mo 12. Nov 2012, 16:59

Re: Datumseingabe

Beitrag von Pit Zyclade » Fr 28. Nov 2014, 10:35

Tomizz hat geschrieben: Das Vervollständigen mit den aktuellen Daten funktioniert nur beim Tag. Dazu muss unter Extras->Optionen->Spracheinstellungen->Sprachen->Datumserkennungsmuster noch zusätzlich D- eingegeben werden. So reicht z. B. die Eingabe von 5- für das Datum 05.11.14 aus. Bei Tag und Monat zusammen funktioniert das aber nicht. Auch wenn man D-M- angegeben hat, wird nicht das Datum angezeigt.
Doch, zumindest bei meinem Versuch mit der v4.2.7.2 geht es auch mit Tag und Monat und Minuszeichen der Tastatur oder im Zahlenblock. Ich habe eingegeben:
D.M.Y;D.M.;D.;D+M+Y;D+M+;D+;D-M-Y;D-M-;D-;
Gruß
Pit
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

cora092002
Beiträge: 64
Registriert: Fr 19. Sep 2014, 22:22

Re: Datumseingabe

Beitrag von cora092002 » Fr 28. Nov 2014, 16:15

Hallo mikele,
danke für die kommentierte Fassung des Makros. Ich habe nun ein wenig experimentiert und finde es sehr praktisch, genau wie ich es mir vorgestellt habe. Ist es auch möglich die möglichen Eingabezellen so zu selektieren: "if enthält Zelle eine Formel or Zelle nicht als Datum formatiert then exit sub ?
Dann wäre es doch noch universeller einsetzbar. Oder verlange ich zuviel?

Gruß Cora
WIN 10 Pro u. Home • LO 5.1.2.2

mikele
* LO-Experte *
Beiträge: 1947
Registriert: Mo 1. Aug 2011, 20:51

Re: Datumseingabe

Beitrag von mikele » Fr 28. Nov 2014, 21:07

Hallo,
Oder verlange ich zuviel?
Du verlangst ja nicht, sondern fragst ... :D
Also in Ergänzung des Makros:
Um zu prüfen, ob es sich um eine Zelle mit Zahl oder eine leere Zelle handelt:

Code: Alles auswählen

if zelle.gettype()>1 then exit sub '1 bedeutet, die Zelle enthält eine Zahl (0 = leer, 2 = Text, 3 = Formel)
Mir ist nicht bekannt, ob und wie man die Art Formatierung der Zelle herausfindet. Jede Zahl kann prinzipiell als Datum interpretiert werden auch wenn sie etwas ganz anderes darstellt.
Gruß,
mikele

cora092002
Beiträge: 64
Registriert: Fr 19. Sep 2014, 22:22

Re: Datumseingabe

Beitrag von cora092002 » Fr 28. Nov 2014, 22:34

Hi mikele,
ich habe mal versucht, meine Vorstellungen zum Kalender umzusetzen. Dabei ist folgenes herausgekommen - siehe Anhang.
Was ist Deine Meinung: realisierbar oder mit vielen Fehlern behaftet?
Gruß Cora
Dateianhänge
kalenderdialog.ods
(40.44 KiB) 209-mal heruntergeladen
WIN 10 Pro u. Home • LO 5.1.2.2

mikele
* LO-Experte *
Beiträge: 1947
Registriert: Mo 1. Aug 2011, 20:51

Re: Datumseingabe

Beitrag von mikele » Fr 28. Nov 2014, 23:56

Hallo,

prinzipiell geht es so. Leider sind die Formatcodenummern wohl nur durch Versuch und Irrtum herauszufinden.
Bei mir reagiert die Spalte C auch (Codenummer bei 109). Eigene Datumsformate bekommen dann noch eine mehr oder weniger beliebige Nummer, sodass nie jeder Fall abgefangen werden kann. Aber das ist wohl auch ein nie erfüllbarer Programmiertraum.
Es hängt also davon ab, wo und wie das Makro eingesetzt werden soll. Bei vielen Tabellen mit verschiedenen Datumsbereichen ist deine Methode effektiver, als aufwändig die gültigen Zellen in das Makro einzupflegen.
Ich denke gerade darüber nach, wie man das Doppelklick-Ereignis einfach auf einzelne Zellbereiche (verschiedener Tabellen) beschränken kann. (bisher erfolglos :( )
Gruß,
mikele

cora092002
Beiträge: 64
Registriert: Fr 19. Sep 2014, 22:22

Re: Datumseingabe

Beitrag von cora092002 » Sa 29. Nov 2014, 19:39

Hallo mikele,

ich hätte nicht gedacht, dass fast unmöglich ist, festzustellen, ob die Zelle als Datum formatiert ist. Bei mir haben die Zellen in Spalte C die Codenummer 107. Nun gut. Ich behelfe mir zur Zeit so, das ich mir als erstes Typ und Fomatcodenummer der ausgewählten Zelle mittels Messagebox anzeigen lasse. Klappt bisher ganz gut (Datei hängt an).
Weitere Frage: muß ich jedesmal modul1 und dialog1 in eine andere Datei kopieren wenn ich dort den kalender nutzen möchte? Kann ich das nicht auch unter "Meine Makros" speichern, damit ich überall darauf zugreifen kann?
Am 26.11. hast Du noch geschrieben: "Hier hat Stephan einige Quellen zur Programmierung zusammengestellt. Es erfordert allerdings (aus eigener Erfahrung) einige Arbeit."
Was meinst Du damit?

Gruß Cora
WIN 10 Pro u. Home • LO 5.1.2.2

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Datumseingabe

Beitrag von F3K Total » Sa 29. Nov 2014, 20:13

Hallo Mikele
mikele hat geschrieben:Ich denke gerade darüber nach, wie man das Doppelklick-Ereignis einfach auf einzelne Zellbereiche (verschiedener Tabellen) beschränken kann. (bisher erfolglos :( )
Hier ein verwendbarer Snipsel:

Code: Alles auswählen

function F_Check_CellRange as boolean
    oselection = thiscomponent.currentselection
    osheet = thiscomponent.currentcontroller.activesheet
    oCellRange = oSheet.getCellRangeByName("A2:A500")'aktiver Bereich in dem die Änderungen vorgenommen werden dürfen
    if oSelection.supportsService("com.sun.star.sheet.SheetCell") then 'Es handelt sichum eine einzelne Zelle
        oCellsRangeAddress = oSelection.RangeAddress
        if oCellRange.queryIntersection(oCellsRangeAddress).count = 1 then F_Check_CellRange = true else F_Check_CellRange = false
        'Die selektierte Celle liegt in dem benannten Bereich          
    endif
End function
Die function gibt "true" zurück, wenn der aktuell gewählte Zellbereich eine einzelne Zelle ist und im Zellbereich A2:A500 liegt.
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

mikele
* LO-Experte *
Beiträge: 1947
Registriert: Mo 1. Aug 2011, 20:51

Re: Datumseingabe

Beitrag von mikele » Sa 29. Nov 2014, 20:24

Hallo,
mit einiger Arbeit meine ich, dass ich nicht so mal eben fix die Makroprogrammierung erlernt haben und jetzt immer noch ein Lernender bin, der ständig Neues entdeckt.
Du kannst über "Meine Makros" gehen, dann steht es dir aber auch nur an deinem Rechner zur Verfügung (soweit ich weiß). Damit kannst du dir aber auch das Makro in eine Symbole integrieren und hast es dann zur Verfügung um in jedem Dokument per Klick ein Datum auswählen zu können. Dann entfällt auch der Test am Anfang, denn du wirst es ja nur aufrufen, wenn du wirklich ein Datum in Zelle haben willst. Anstelle dessen muss die aktuell ausgewählte Zelle angesprochen werden.
Gruß,
mikele


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten