Seite 1 von 1

Curser auf bestimmte Zelle / Bereich in calc setzen

Verfasst: Mi, 09.06.2004 11:59
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

Verfasst: Mi, 09.06.2004 19:01
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

Verfasst: Do, 10.06.2004 12:03
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

Re: Curser auf bestimmte Zelle / Bereich in calc setzen

Verfasst: So, 18.07.2004 21:00
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.

Verfasst: Di, 20.07.2004 10:28
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

Verfasst: Di, 20.07.2004 12:50
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

Verfasst: Di, 20.07.2004 13:44
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

Verfasst: Di, 20.07.2004 22:57
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