Hallo,
ich versuche eine Schaltfläche mit einem Makro zu hinterlegen, welches ein anderes derselben Datei ansteuert, um danach dort weiterzuarbeiten.
Leider gelingt mit mit dem unten aufgeführten Listing nur ein Sprung zu einer bestimmten Seite als Seitenzahl.
Ich vermute, dass das das ausschlaggebende Moment ist:
args1(0).Name = "Nr"
args1(0).Value = 2
Wenn ich nun aber die Tabellenblätter in ihrer Reihenfolge verändere, verliere ich die Sprungmöglichkeit zu eben dieser bestimmten Seite.
Kann ich das irgendwie ändern? die Seite vielleicht direkt angeben?
Makro:
sub GotoKonto
rem ----------------------------------------------------------------------
rem define variables
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")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args1(0).Value = 2
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())
end sub
Danke und viele Grüße
Melia
Makro als Sprung zu einer bestimmten Tabellenseite
Moderator: Moderatoren
Re: Makro als Sprung zu einer bestimmten Tabellenseite
Hallo,
wahrscheinlich habe ich das richtige gefunden???????
aber wo, an welcher stelle muss ich dann wie den Namen des Tabellenblattes eingeben?
Sub JumpToSheetsName( myDoc as Objekt, sheetsname as String)
myView = myDoc.CurrentController
mySheet = myDoc.Sheets.getByName(sheetsname)
myView.setActiveSheet(mySheet)
End Sub
Ob ich wohl noch einmal eine Erklärung für unwissende erhalten dürfte?
LG
Melia
wahrscheinlich habe ich das richtige gefunden???????
aber wo, an welcher stelle muss ich dann wie den Namen des Tabellenblattes eingeben?
Sub JumpToSheetsName( myDoc as Objekt, sheetsname as String)
myView = myDoc.CurrentController
mySheet = myDoc.Sheets.getByName(sheetsname)
myView.setActiveSheet(mySheet)
End Sub
Ob ich wohl noch einmal eine Erklärung für unwissende erhalten dürfte?
LG
Melia
Re: Makro als Sprung zu einer bestimmten Tabellenseite
Hey Melia,
hmm, deine Funktion ist ja "nur" eine "Unterroutine, also etwas, das du aus einem anderen Makro heraus aufrufst.
Es erwartet zwei Parameter: Das Dokument als Objekt, in dem gesprungen werden soll sowie den Namen der Tabelle, auf die gesprungen werden soll. Die folgende Routine ruft deine Funktion uaf und springt zur "Tabelle3", die auch genau so heisst:
Viele Grüße
Thomas
hmm, deine Funktion ist ja "nur" eine "Unterroutine, also etwas, das du aus einem anderen Makro heraus aufrufst.
Es erwartet zwei Parameter: Das Dokument als Objekt, in dem gesprungen werden soll sowie den Namen der Tabelle, auf die gesprungen werden soll. Die folgende Routine ruft deine Funktion uaf und springt zur "Tabelle3", die auch genau so heisst:
Code: Alles auswählen
sub ZurTabelleSpringen
oDoc = thisComponent
sTabName = "Tabelle3"
JumpToSheetsName(oDoc, sTabName)
end sub
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Re: Makro als Sprung zu einer bestimmten Tabellenseite
Danke für die Antwort, leider führt sie noch nicht zum Ziel, es scheint doch noch etwas
schwieriger zu sein, als ich dachte
(
Wenn ich das Makro:
sub ZurTabelleKontoSpringen
oDoc = thisComponent
sTabName = "Konto"
JumpToSheetsName(oDoc, sTabName)
end sub
ausführe, kommt eine Fehlermeldung:
1. Ein blauer Pfeli vor der Zeile "JumpToSheetsName(oDoc, sTabName)"
2. Fehlermeldung: "Basic Laufzeitfehler Sub- oder Funktion Prozedur nicht definiert"
auch eine Änderung de o.g. Zeile (was mache ich nur, ich stokele nur im Duneln herum) in
"JumpToSheetsName(Konto)"
bringt die gleiche Fehlermeldung
Ein Tabellenblatt "Konto" ist allerdings vorhanden.
... vielleicht noch ne Idee?
lg
Melia
PS: habe übrigens OO 2.3.0, keine Ahnung, ob das jetzt als Info wichtig ist.
schwieriger zu sein, als ich dachte

Wenn ich das Makro:
sub ZurTabelleKontoSpringen
oDoc = thisComponent
sTabName = "Konto"
JumpToSheetsName(oDoc, sTabName)
end sub
ausführe, kommt eine Fehlermeldung:
1. Ein blauer Pfeli vor der Zeile "JumpToSheetsName(oDoc, sTabName)"
2. Fehlermeldung: "Basic Laufzeitfehler Sub- oder Funktion Prozedur nicht definiert"
auch eine Änderung de o.g. Zeile (was mache ich nur, ich stokele nur im Duneln herum) in
"JumpToSheetsName(Konto)"
bringt die gleiche Fehlermeldung
Ein Tabellenblatt "Konto" ist allerdings vorhanden.
... vielleicht noch ne Idee?
lg
Melia
PS: habe übrigens OO 2.3.0, keine Ahnung, ob das jetzt als Info wichtig ist.
Re: Makro als Sprung zu einer bestimmten Tabellenseite
Hallo Melia,
folgender Code sollte das tun was Du möchtest:
Viel Erfolg.
Jürgen
Edit: Thomas hatte natürlich auch recht.
Ich habe das hier nur zusammengesetzt was Thomas meint.
folgender Code sollte das tun was Du möchtest:
Code: Alles auswählen
Sub Tabellenblatt_auswaehlen
myDoc = ThisComponent
myView = myDoc.CurrentController
mySheet = myDoc.Sheets.getByName("Konto")
myView.setActiveSheet(mySheet)
End Sub
Jürgen
Edit: Thomas hatte natürlich auch recht.
Also im Klartext, dieses hier funktioniert genau so:Toxitom hat geschrieben:hmm, deine Funktion ist ja "nur" eine "Unterroutine, also etwas, das du aus einem anderen Makro heraus aufrufst.
Es erwartet zwei Parameter: Das Dokument als Objekt, in dem gesprungen werden soll sowie den Namen der Tabelle, auf die gesprungen werden soll. Die folgende Routine ruft deine Funktion uaf und springt zur "Tabelle3", die auch genau so heisst:
Code: Alles auswählen
sub ZurTabelleSpringen
oDoc = thisComponent
sTabName = "Konto"
JumpToSheetsName(oDoc, sTabName)
end sub
Sub JumpToSheetsName( myDoc as Objekt, sheetsname as String)
myView = myDoc.CurrentController
mySheet = myDoc.Sheets.getByName(sheetsname)
myView.setActiveSheet(mySheet)
End Sub
Zuletzt geändert von turtle47 am Sa, 05.01.2008 20:35, insgesamt 2-mal geändert.
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Makro als Sprung zu einer bestimmten Tabellenseite
Klasse, es funktioniert super
Vielen Dank und liebe Grüße
Melia
Vielen Dank und liebe Grüße
Melia