Zelle soll sich anders verhalten

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Zelle soll sich anders verhalten

Re: Zelle soll sich anders verhalten

von mikeleb » So, 20.04.2025 10:40

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.

Re: Zelle soll sich anders verhalten

von MT326 » So, 20.04.2025 10:21

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

von mikeleb » Sa, 19.04.2025 18:59

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?

Zelle soll sich anders verhalten

von MT326 » Sa, 19.04.2025 18:32

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

Nach oben