[Gelöst] Sichtbaren Cursor in LO-Calc setzen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
G.Man
*
Beiträge: 12
Registriert: Mo, 09.12.2019 18:46

[Gelöst] Sichtbaren Cursor in LO-Calc setzen

Beitrag von G.Man »

Hallo an Alle,
ich möchte bei Änderung des Inhaltes bestimmter Zellen einen "sichtbaren" Cursor auf die Zelle davor setzen. Meine LibreOffice-Beispieldatei --> s. Anlage.
Event in Calc.ods
(79.33 KiB) 119-mal heruntergeladen
Trotz vieler Versuche und intensiven Recherchen im Netz ist mir das bisher nicht gelungen. Alle gefundenen Tips zu einem "sichtbaren" Cursor sind gescheitert, da sie vermutlich nur in Writer-Dokumenten funktionieren.
Mein Ansatz sieht so aus:

Code: Alles auswählen

REM http://www.starbasicfaq.de/WiekannmandenaktuellenCursoraufeineZelle.html
'7.1.9 Wie kann man den aktuellen Cursor auf eine Zelle setzen?
Sub Cursor_Test
'Den aktiven Cursor bekommt man mit
	myDoc = thisComponent
	myView = myDoc.CurrentController
'Diesem muss man dann die gewünschte Zelle zuweisen
	mysheet = myDoc.sheets(0)
	mycell =  mysheet.getCellRangeByName("Test")
	myView.Select(mycell)				'Cursor auf Zelle "Test" setzen
End Sub
Komplette Makros und nähere Beschreibungen im Beispieldokument.
Danke für eure Hilfe
Gruß Gerd
Zuletzt geändert von G.Man am Do, 16.01.2020 12:32, insgesamt 2-mal geändert.
Windows 10 Home V1809, LibreOffice V6.2
OpenOffice & MS Office: gut, VBA: gut, OO-Basic: naja
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Sichtbaren Cursor in LO-Calc setzen

Beitrag von mikeleb »

Hallo,
füge nach

Code: Alles auswählen

myView.Select(mycell)
die Zeilen

Code: Alles auswählen

  	oDummy = myDoc.createInstance("com.sun.star.sheet.SheetCellRanges")
	myView.Select(oDummy)
ein.
Deine zweite Frage kann ich nicht nachvollziehen.
Für die dritte Frage: Setze die Standardwerte mit einem extra Makro, dass an das Öffnen der Datei gebunden wird.
Gruß,
mikeleb
Benutzeravatar
G.Man
*
Beiträge: 12
Registriert: Mo, 09.12.2019 18:46

Re: Sichtbaren Cursor in LO-Calc setzen

Beitrag von G.Man »

Hallo mikeleb,
Frage 1: Dein Zusatz funktioniert wunderbar, habe sowas im Netz einfach nicht gefunden!
Frage 2: Hat sich durch einfügen deines Zusatzes in Makro "Cursor_setzen" gelöst.
Frage 3: Gerade das ist mein Problem. Ich weiß nicht, wie ich das per Makro lösen soll. Kannst du da noch mal weiterhelfen?
Event in Calc-02.ods
(79.23 KiB) 102-mal heruntergeladen
Danke & Gruß
Gerd
Windows 10 Home V1809, LibreOffice V6.2
OpenOffice & MS Office: gut, VBA: gut, OO-Basic: naja
marcel_at_work
****
Beiträge: 195
Registriert: Sa, 24.04.2010 15:51
Wohnort: Basel [CH]

Re: Sichtbaren Cursor in LO-Calc setzen

Beitrag von marcel_at_work »

Hallo Gerd,

ich bin mit Calc etwas eingerostet, aber...

Code: Alles auswählen

Sub ...
	oDoc.Sheets(0).getCellByPosition(x,y).Value = "???"
End Sub
... sollte doch funktionieren, oder?

Und dann Calc > Extras > Anpassen > Ereignisse > Dokument öffnen> Doppelklick und das obige Makro auswählen...

Viele Grüße,

Marcel
[Win 10 Pro x64/Downgrade 7, AOO 4.1.6 und LO 6.3.0.4]
Benutzeravatar
G.Man
*
Beiträge: 12
Registriert: Mo, 09.12.2019 18:46

Re: Sichtbaren Cursor in LO-Calc setzen

Beitrag von G.Man »

Hallo Marcel,
dein Ansatz funktioniert (fast) - danke.

Code: Alles auswählen

Sub ...
	oDoc.Sheets(0).getCellByPosition(x,y).Value = "???"		'da "???" ein String ist --> .String = "???"
End Sub
Da die betreffende Zelle C6 Gültigkeitskriterien enthält und nur definierte Werte aus dem Zellbereich "Schaltungen" zulässt, hätte ich nicht gedacht, das es per Füllung von C6 mit einem String funktioniert. So ganz überzeugt bin ich von dieser Lösung jedoch noch nicht.

Ich habe zur Initialisierung der Startbedingungen noch das Makro "OpenDoc" hinzugefügt und mit dem Ereignis "Dokument öffnen" verknüpft - funktioniert ebenfalls prima.
Event in Calc-03.ods
(80.27 KiB) 106-mal heruntergeladen
Gruß Gerd
Windows 10 Home V1809, LibreOffice V6.2
OpenOffice & MS Office: gut, VBA: gut, OO-Basic: naja
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Sichtbaren Cursor in LO-Calc setzen

Beitrag von mikeleb »

Hallo,
So ganz überzeugt bin ich von dieser Lösung jedoch noch nicht.
Warum nicht? "???" gehört doch zu den zugelassenen Werten?
Unabhängig davon, würden auch andere Wertzuweisungen per Makro funktionieren, da die Gültigkeit nur bei direkter Eingabe geprüft wird. Im Makro muss man selbst aufpassen ... :)
Gruß,
mikeleb
Benutzeravatar
G.Man
*
Beiträge: 12
Registriert: Mo, 09.12.2019 18:46

Re: Sichtbaren Cursor in LO-Calc setzen

Beitrag von G.Man »

Hallo Mike,
das leuchtet ein, dass "???" ein zulässiger Wert ist und die Gültigkeit nur bei der Eingabe geprüft wird. Hätte ich auch selber darauf kommen können. Funktioniert bestens.

Alle meine Fragen wurden mit eurer Hilfe gelöst.
Gruß und Dank auch an alle anderen Helfer
Gerd
Windows 10 Home V1809, LibreOffice V6.2
OpenOffice & MS Office: gut, VBA: gut, OO-Basic: naja
Antworten