🙏 Helfen Sie mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Basic: Aufruf per Tabellen-Ereignis "DoppelKlick", dann Auswahl einer Zelle per current controller … [gelöst]
Basic: Aufruf per Tabellen-Ereignis "DoppelKlick", dann Auswahl einer Zelle per current controller … [gelöst]
… führt dazu, dass die zuletzt (per controller) ausgewählte Zelle in unerwünschten Modus (Eingabezeile aktiviert) versetzt wird. … eben so, als hätte ich auf diese Zelle selbst doppelt geklickt (Eingabezeile über der Tabelle aktiviert).
Das stoppt den Fluss bei der manuellen Eingabe der Daten in die (weiteren) Zellen dieser Zeile.
(Wenn ich die Zelle bei der manuellen Eingabe einfach klicke, kann ich den Wert eintragen ohne die Eingabezeile über der Tabelle zu aktivieren und z.B. mit der [→]-Taste die nächste Zelle auswählen.
(Zwischen dem auslösenden Ereignis und der Auswahl der genannten Zelle ändert das Makro noch Daten an anderen Zellen, passt sie an die Änderung in der auslösenden Zelle an.)
Das Verhalten lässt sich per IDE nicht ohne weiteres beobachten/korrigieren, da an Haltepunkten die IDE aktiviert und die Tabelle deaktiviert wird. Nach anschließendem Klick auf das Tabellenfenster, befindet sich die Zelle im erwünschten Modus.
Frage: Wie kann ich das gewünschte Verhalten erreichen, ggf. die Tabelle per Makro de- & sofort wieder re-aktivieren, ohne den Fluss bei der Eingabe zu unterbrechen?
(Merkwürdig ist auch, dass das Makro "onDblClk" erst nach einigen/etlichen Läufen im Menü Tabelle»Ereignisse angezeigt wird aber vom Öffnen der enthaltenden ods.-Datei an aktivierbar ist / auf Doppelklicks reagiert.)
Das stoppt den Fluss bei der manuellen Eingabe der Daten in die (weiteren) Zellen dieser Zeile.
(Wenn ich die Zelle bei der manuellen Eingabe einfach klicke, kann ich den Wert eintragen ohne die Eingabezeile über der Tabelle zu aktivieren und z.B. mit der [→]-Taste die nächste Zelle auswählen.
(Zwischen dem auslösenden Ereignis und der Auswahl der genannten Zelle ändert das Makro noch Daten an anderen Zellen, passt sie an die Änderung in der auslösenden Zelle an.)
Das Verhalten lässt sich per IDE nicht ohne weiteres beobachten/korrigieren, da an Haltepunkten die IDE aktiviert und die Tabelle deaktiviert wird. Nach anschließendem Klick auf das Tabellenfenster, befindet sich die Zelle im erwünschten Modus.
Frage: Wie kann ich das gewünschte Verhalten erreichen, ggf. die Tabelle per Makro de- & sofort wieder re-aktivieren, ohne den Fluss bei der Eingabe zu unterbrechen?
(Merkwürdig ist auch, dass das Makro "onDblClk" erst nach einigen/etlichen Läufen im Menü Tabelle»Ereignisse angezeigt wird aber vom Öffnen der enthaltenden ods.-Datei an aktivierbar ist / auf Doppelklicks reagiert.)
Zuletzt geändert von nitja am So 24. Mär 2024, 18:42, insgesamt 1-mal geändert.
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO
Re: Basic: Aufruf per Tabellen-Ereignis "DoppelKlick" & nachfolgend Auswahl einer (anderen) Zelle per current controller
hallo
Um dir zu helfen wäre es hilfreich wenn du ein Beispiels_Dokument und das Makro postest!
Um dir zu helfen wäre es hilfreich wenn du ein Beispiels_Dokument und das Makro postest!
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Basic: Aufruf per Tabellen-Ereignis "DoppelKlick" & nachfolgend Auswahl einer (anderen) Zelle per current controller
Dank Dir für Deine Reaktion! … und klar, aber …
da steht schon sehr Persönliches drin, was ich nicht veröffentlichen möchte (per Mail an Einzelne wäre eher möglich).
Um eine neue .ods-Datei mit der Struktur u.s.w. zusammen zu bauen, würde ich mindestens bis morgen Mittag brauchen.
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO
Re: Basic: Aufruf per Tabellen-Ereignis "DoppelKlick" & nachfolgend Auswahl einer (anderen) Zelle per current controller
Hallo
Es geht eigentlich recht schnell reale Daten z.B. per Suchen&ersetzen in »xxxyyyyzzz« zu verwandeln.
Vielleicht erschliesst sich das Problem auch schon nach Ansicht des MakroCodes?
Es geht eigentlich recht schnell reale Daten z.B. per Suchen&ersetzen in »xxxyyyyzzz« zu verwandeln.
Vielleicht erschliesst sich das Problem auch schon nach Ansicht des MakroCodes?
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Basic: Aufruf per Tabellen-Ereignis "DoppelKlick" & nachfolgend Auswahl einer (anderen) Zelle per current controller
Hallo,
bei Doppelklick ist es das Dilemma, dass dieses Ereignis schon im System vergeben ist. Daher muss dem Makro mitgegeben werden, dass es so zu sagen anstellen des Systemereignisses fungiert. Das ist aber recht einfach, denn man muss im nur einen logischen Wert als Ergebnis mitgeben:
bei Doppelklick ist es das Dilemma, dass dieses Ereignis schon im System vergeben ist. Daher muss dem Makro mitgegeben werden, dass es so zu sagen anstellen des Systemereignisses fungiert. Das ist aber recht einfach, denn man muss im nur einen logischen Wert als Ergebnis mitgeben:
Code: Alles auswählen
Sub doppelklick (oevent) as boolean
'dein Code
doppelklick=true
End Sub
Gruß,
mikele
mikele
Re: Basic: Aufruf per Tabellen-Ereignis "DoppelKlick" & nachfolgend Auswahl einer (anderen) Zelle per current controller
oops - das folgende geht @ 'karolus' - 2 posts hier drüber
Schon klar. Ich hatte gehofft, dass hier jemand liest, der schon mal selbst über das beanstandete Verhalten gestolpert ist und (s)eine Lösung parat hat.
Jetzt muss ich den Rechner für ~ 5h verlassen. Wenn ich dann zurück bin, werde ich eine (viel) kleinere Beispiel-.ods-Datei (mit u.a. anderen Gültigkeitsbedingungen, Beschriftungen und Symbolen - mit den reinen Daten ist's nicht erledigt) aufsetzen. Dass ich's noch vor Mitternacht hier posten kann, halt' ich für eher unwahrscheinlich.
Aber morgen ist ja (vermutlich) auch noch ein Tag und da ich seit Wochen (Monaten?) mit dem Projekt kämpfe, kommt's darauf nimmer an.
Schon klar. Ich hatte gehofft, dass hier jemand liest, der schon mal selbst über das beanstandete Verhalten gestolpert ist und (s)eine Lösung parat hat.
Jetzt muss ich den Rechner für ~ 5h verlassen. Wenn ich dann zurück bin, werde ich eine (viel) kleinere Beispiel-.ods-Datei (mit u.a. anderen Gültigkeitsbedingungen, Beschriftungen und Symbolen - mit den reinen Daten ist's nicht erledigt) aufsetzen. Dass ich's noch vor Mitternacht hier posten kann, halt' ich für eher unwahrscheinlich.
Aber morgen ist ja (vermutlich) auch noch ein Tag und da ich seit Wochen (Monaten?) mit dem Projekt kämpfe, kommt's darauf nimmer an.
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO
Re: Basic: Aufruf per Tabellen-Ereignis "DoppelKlick" & nachfolgend Auswahl einer (anderen) Zelle per current controller
mikele hat geschrieben: ↑So 24. Mär 2024, 12:02…Code: Alles auswählen
Sub doppelklick (oevent) as boolean 'dein Code doppelklick=true End Sub


Werde ich zw. 17 und 18h ausprobieren und mich dann wieder melden.
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO
Re: Basic: Aufruf per Tabellen-Ereignis "DoppelKlick" & nachfolgend Auswahl einer (anderen) Zelle per current controller
Das hatte ich geahnt. Und dass ich dem "System" mitteilen muss, dass es erledigt ist. … konnte mich freilich nicht mehr erinnern wie.
Code: Alles auswählen
function onDblClk(oCell as object) as boolean
dim … <lokale Variablen>
onDblClk=true '' Bingo! Volltreffer!
<
… Verarbeitungscode …
>
with oDataSht '' diese Variablen sind für das Modul definiert
oCtrlr.select(.getCellByPosition(iCol,iRow)) '' (neue) iCol, iRow werden in der "Verarbeitung"
end with 'oDataSht '' berechnet
end function 'onDblClk
Also super-fettes Dankeschön an 'mikele'!
… und auch lieben Dank an 'karolus' für die erste, schnelle Reaktion auf diesen Thread!
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO
Re: Basic: Aufruf per Tabellen-Ereignis "DoppelKlick", dann Auswahl einer Zelle per current controller … [gelöst]
Hallo,
schön, dass es funktioniert. Irgendwo habe ich auch mal eine Dokumentation/Erklärung dazu gelesen, aber die finde ich auch nicht mehr.
Um am Ende die Auswahl der Zelle zu beseitigen, gibt es den Trick ein Dummy-Zellobjekt auszuwählen:
siehe: Andrew Pitonyak: BASIC-Makros für OpenOffice und LibreOffice, Kapitel 15.8.1. Ausgewählte Zellen
https://makromador.wordpress.com/oome-o ... explained/
schön, dass es funktioniert. Irgendwo habe ich auch mal eine Dokumentation/Erklärung dazu gelesen, aber die finde ich auch nicht mehr.
Um am Ende die Auswahl der Zelle zu beseitigen, gibt es den Trick ein Dummy-Zellobjekt auszuwählen:
Code: Alles auswählen
with oDataSht '' diese Variablen sind für das Modul definiert
oCtrlr.select(.getCellByPosition(iCol,iRow)) '' (neue) iCol, iRow werden in der "Verarbeitung"
end with 'oDataSht
REM Erzeugt einen leeren Service SheetCellRanges und wählt ihn aus.
REM Dadurch bleibt NUR die aktive Zelle ausgewählt.
oRanges = ThisComponent.createInstance("com.sun.star.sheet.SheetCellRanges")
oCtrlr.Select(oRanges)
https://makromador.wordpress.com/oome-o ... explained/
Gruß,
mikele
mikele
Re: Basic: Aufruf per Tabellen-Ereignis "DoppelKlick", dann Auswahl einer Zelle per current controller … [gelöst]
Die Erweiterung macht tatsächlich die Ästhetik des Makros noch netter.
Das "Listing 478" im genannten Kapitel hatte ich für die Funktion schon angeschaut und Anregungen daraus getestet. Hat nicht funktioniert.
Auf die Idee, das anschließend für die Kosmetik einzusetzen, bin ich ich blöder Weise nicht selbst gekommen. Erst Dein Vorschlag hat mich daran erinnert.
Also auch dafür ein fettes Dankeschön!
LO 24.2.0.3 (X86_64) auf Linux 6.6.26-1-MANJARO, gnome 45.4, (gtk 4) gtk3 für LO
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.