Curser auf bestimmte Zelle / Bereich in calc setzen

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

Moderator: Moderatoren

Wolfgang Lampert
****
Beiträge: 102
Registriert: Do, 13.05.2004 16:24
Wohnort: Neuss

Curser auf bestimmte Zelle / Bereich in calc setzen

Beitrag von Wolfgang Lampert »

Hi,
ich möchte den aktuellen Cursor auf
a) z.B. Zelle "A1"
b) z.B. Bereich "A1:C3"
legen.
Nehme an, hierzu benötige ich
.createCursor() oder .createCursorByCellName() oder .createCursorByRange()

? Wer gibt mir ein Beispiel
mfg Wolf
Wolfgang Lampert
****
Beiträge: 102
Registriert: Do, 13.05.2004 16:24
Wohnort: Neuss

Beitrag von Wolfgang Lampert »

Hi Stephan,
sorry, wenn ich mich nicht deutlich ausgedrückt habe. Es waren zwei unterschiedliche Fragen.
Was ich möchte, ist den Cursor per Makro auf eine bestimmte Zelle zu setzen.
Ich hatte gedacht, Dein Threat von gestern "sCalc - letzt Zelle bestimmen" würde das auch beinhalten - kam aber damit nicht klar.
Gruss Wolf
Wolfgang Lampert
****
Beiträge: 102
Registriert: Do, 13.05.2004 16:24
Wohnort: Neuss

Beitrag von Wolfgang Lampert »

Hi Stephan,
auch wenn ich mich wiederhole: Du bist einfach Gold wert.
Deine Erläuterungen habe ich (aus meiner Sicht) generalisiert und meine Werkzeuge um ein Tool erweitert:
sub Cursor_zu_Zelle_oder_Bereich
oDoc = StarDesktop.CurrentComponent.getCurrentController
oCell = oDoc.ActiveSheet.getCellRangeByName("a2") REM Zell-Bestimmung
REM oCell = oDoc.ActiveSheet.getCellByPosition(0,1) REM alternative Zell-Bestimmung (A2)
REM oCell = oDoc.ActiveSheet.getCellRangeByName("a1:c5") REM alternative Bereichs-Bestimmung
REM oCell = oDoc.ActiveSheet.getCellRangeByPosition(0,1,3,4) REM alternative Bereichs-Bestimmung (0,1=A2) (3,4=D5)
oDoc.Select(oCell)
end sub
Hiermit bin ich nun in der Lage, Zellen oder Bereich mit dem Cursor beliebig anzusteuern.
Gruss Wolf
Benutzeravatar
Wolf
****
Beiträge: 118
Registriert: Fr, 23.04.2004 06:48

Re: Curser auf bestimmte Zelle / Bereich in calc setzen

Beitrag von Wolf »

Hallo Wolfgang,

Ich habe folgendes Makro erstellt/aufgezeichnet um meinen Cursor an jede beliebige Stelle des Tabellenkalkulationsblattes zu setzen:



Sub ZellSprung (Zelle as String)
rem ----------------------------------------------------------------------
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

dim args(0) as new com.sun.star.beans.PropertyValue

args(0).Name = "ToPoint"
args(0).Value = Zelle

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args())

End Sub


Funktioniert sehr gut. Einfach das Makro aufrufen:


ZellSprung "A10"

und der Cursor flitzt an die entsprechende Stelle.
Wolfgang Lampert
****
Beiträge: 102
Registriert: Do, 13.05.2004 16:24
Wohnort: Neuss

Beitrag von Wolfgang Lampert »

Hi NoName,
danke für die Antwort. Leider habe ich Probleme, das Makro laufen zu lassen. Kannst Du mir sagen, wie ich ein Makro mit Parameter "A10" starte?
mfg Wolf
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Hallo Wolfgang,
Kannst Du mir sagen, wie ich ein Makro mit Parameter "A10" starte?
Der andere User schlägt vor mit:

ZellSprung "A10"

zu starten, das sollte wohl aber ZellSprung ("A10") (oder ...(A10) ) heißen damit es funktioniert.


P.S. lange nichts gehört von Dir, warst Du in Urlaub?


Gruß
Stephan
Wolfgang Lampert
****
Beiträge: 102
Registriert: Do, 13.05.2004 16:24
Wohnort: Neuss

Beitrag von Wolfgang Lampert »

Hi Stephan,
fahre erst Freitag - 3 Wochen Toskana <.)

Der Grund, warum ich in den letzten Wochen nicht so sehr mit Problemchen genervt hatte war, dass ich den Einstieg in LAMP (Linux-Apache-MySQL-PHP) gesucht habe.
Aber das funktioniert noch nicht so richtig. Aber sobald das einigermaßen hinhaut, möchte ich von LAMP nach LAMPOO ((LAMP) + OO).
Und dann geht's ans Eingemachte.
Bis Ende August - Wolf
Benutzeravatar
Wolf
****
Beiträge: 118
Registriert: Fr, 23.04.2004 06:48

Beitrag von Wolf »

Hallo Wolfgang,

Hier ein Beispielmakro, wie man das Makro "ZellSprung" recht gut in den Griff bekommt:

Code: Alles auswählen

Sub GeheZuZelle
'**************************************************************
' Einfaches Makro um zu einer Zelle zu Springen
'**************************************************************
Dim sZelle as String
Dim mldg as String

	mldg = "Bitte geben Sie die gewuenschte Zelladresse ein: "+chr(13)
	mldg = mldg + "Beispiel: A10"
	sZelle = InputBox (mldg,"Gehe zu Zelle..") 
	If sZelle>"" then '....wenn nicht Abbruch gedrueckt
			Zellsprung sZelle '...dann führe den Sprung zur angegebenen Zelle aus
	End if		

End Sub
Das habe ich getestet und funktioniert. Also unter >Extras >Anpassen dann entweder einen Menüeintrag erstellen und/oder dem MAkro ein Tastaturkürzel zuordnen und los geht's.

Viel Erfolg

Wolf
Antworten