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.
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:
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
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.
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?
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.
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 ...
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