Seite 1 von 1

Zelle soll sich anders verhalten

Verfasst: Sa, 19.04.2025 18:32
von MT326
Hallo erst mal...
Ich hab mal eine Frage wenn ich mit einem Makro zu einer Zelle springe,
verhält diese sich anders als wenn ich sie manuell auswähle.
d.h. wenn ich in eine mit Makro ausgewählte Zelle eine Eingabe mache und Enter drücke bleibt der Cursor auf der Zelle.
wenn ich eine Zelle manuell auswähle eine Eingabe mache und Enter drücke geht der Cursor eine Zeile nach unten.
gibt es eine Möglichkeit das sich die Zelle nach einer Auswahl durch ein Makro genauso verhält als hätte ich sie manuell ausgewählt?
Code den ich verwende:
myDoc = thisComponent
myView = myDoc.CurrentController
mysheet = myDoc.sheets(0)
mycell = mysheet.getCellByPosition(0,0)
myView.Select(mycell)

Gruß MT

Re: Zelle soll sich anders verhalten

Verfasst: Sa, 19.04.2025 18:59
von mikeleb
Hallo,
durch .select wird nicht nur zu dieser Zelle gesprungen, sondern diese Zelle komplett ausgewählt (wie ein Zellbereich). Damit ist das Verhalten genau so, als wenn du die Auswahl manuell machen würdest.
Um das zu verhindern gibt es den kleine Trick, einen leeren Service SheetCellRanges auszuwählen:

Code: Alles auswählen

Sub Main
	myDoc = thisComponent
	myView = myDoc.CurrentController
	mysheet = myDoc.sheets(0)
	mycell = mysheet.getCellByPosition(0,0)
	myView.Select(mycell)
	myview.Select(myDoc.createInstance("com.sun.star.sheet.SheetCellRanges"))
End Sub
Allerdings bleibt die Frage offen, wozu das Ganze?

Re: Zelle soll sich anders verhalten

Verfasst: So, 20.04.2025 10:21
von MT326
Vielen Dank,
Das ist genau das was ich gesucht habe.
Gruß MT

Zum Warum das Ganze:
Wir geben in einer Spalte Werte ein,
dabei werden die Zellen sowohl manuell ausgewählt oder auch per Makro angesprungen.
Zur Vermeidung von Fehleingaben ist es von großem Vorteil wenn sich die Zellen immer gleich verhalten wenn man Enter drückt.
Nochmals Vielen Dank

Re: Zelle soll sich anders verhalten

Verfasst: So, 20.04.2025 10:40
von mikeleb
Hallo,
das ist schon klar. Meine Frage bezog sich darauf, warum Zellen per Makro angesprungen werden sollen? Da das Makro auch gestartet werden muss, erscheint es mir zu aufwändig.
Speziell um zu A1 zu springen gäbe es eine Tastenkombination (das wird aber nur ein Beispiel sein). Hyperlinks wären auch eine Möglichkeit um im Dokument hin und her zu springen.