Seite 1 von 1

Tabelleblatt mit Makro aktivieren

Verfasst: Di 18. Sep 2018, 21:03
von Helles58
Hallo zusammen

ich versuche mittels Makro Tabellenblätter zu aktivieren.
Ich möchte einen Makro verwenden dem ich die Tabellenblattnummer als Variable mittels einer Schaltfläche übergeben kann.
So bräuchte ich nur ein Makro für alle Aufrufe.
Hat da jemand eine Idee wie man das lösen kann?
Bin für jede Hilfe dankbar.

Gruß Helles58

Re: Tabelleblatt mit Makro aktivieren

Verfasst: Di 18. Sep 2018, 21:52
von mikele
Hallo,
ich versuche mittels Makro Tabellenblätter zu aktivieren.
Wie soll ich mir das vorstellen (vor allem im Zusammenhang mit der Schaltfläche von der du sprichst)?
Von wo soll das Makro aufgerufen werden und wodurch?

Re: Tabelleblatt mit Makro aktivieren

Verfasst: Mi 19. Sep 2018, 17:40
von Helmut_S
Hallo Helles58, auch mir ist nicht recht klar, was du mit "aktivieren" meinst?
Hier zwei Vorschläge aus der Starbasic-FAQ von Michael Dannenhöfer als Hyperlinks.
http://www.dannenhoefer.de/faqstarbasic ... l#Zweig204

Das Tabellenblatt nach Namen aktiveren:
http://www.dannenhoefer.de/faqstarbasic ... l#Zweig354

oder das TB-BL. nach Nummer aktivieren:
http://www.dannenhoefer.de/faqstarbasic ... l#Zweig355

Du musst nur noch mittels der Funktion InputBox den Wert für das zu aktivierende Tabellenblatt ein eine Variable einlesen und eine Schaltfläche (auf dem ersten Tab.-Blatt - nehme ich mal an) mit dem Makro verbinden.
Gruß Helmut

Re: Tabelleblatt mit Makro aktivieren

Verfasst: Mi 19. Sep 2018, 20:18
von Helles58
Hallo Mikele, Hallo Helmut

danke für eure Antworten.
Der Aufruf eines Tabellenblattes soll mit je einer Schaltfläche für jede Tabelle erfolgen.
Aufgerufen wird immer dasselbe Makro dem dann eine Variable (Tabellennummer) übergeben wird.
In meiner Testdatei (im Anhang) habe ich das nur mit je einem Makro pro Tabelle hinbekommen.
Ginge das auch ohne die InputBox zu verwenden?

Gruß Helles58

Re: Tabelleblatt mit Makro aktivieren

Verfasst: Mi 19. Sep 2018, 21:10
von Helmut_S
Hallo, so mit Beispieltabelle lichtet sich der Nebel des Unverständnisses ein wenig. Schau dir die Tabelle an, wenn ich dich richtig verstanden habe, müsste es so ungefähr passen.
Test_Tabellenaufruf.ods
(77.56 KiB) 226-mal heruntergeladen
Gruß Helmut

Re: Tabelleblatt mit Makro aktivieren

Verfasst: Mi 19. Sep 2018, 23:22
von mikele
Hallo,
dafür benötigst du gar kein Makro. Bei den Schaltflächen wählst du als Aktion "Dokument/Webseite öffnen" und als URL dann den Tabellennamen mit vorangestelltem #.

Re: Tabelleblatt mit Makro aktivieren

Verfasst: Do 20. Sep 2018, 08:27
von Helmut_S
Hallo nochmal, wenn wir schon beim Vereinfachen sind: Falls es bei der Anzahl an Tabellen bleibt, die in der Beispieltab. vorhanden sind und man/frau die Tabellenreiter eingeblendet lässt, bräuchte es eigentlich gar nichts. Klick auf den Tabellenreiter oder auf eine Schaltfläche - ;) wo ist der Unterschied an Arbeitsaufwand?
Gruß, Helmut

Re: Tabelleblatt mit Makro aktivieren

Verfasst: So 30. Sep 2018, 20:10
von Helles58
Hallo Mikele

danke für das Beispiel.
Dann wird für jeden Aufruf ein Makro benötigt.
Ginge das auch mit einem Makro dem die Blattnummer als Variable übergeben wird?
Wenn nicht mache ich das so wie vorgeschlagen.
Das Ganze soll nur die Bedienung erleichtern. Ich will ein Blatt als Hauptmenü
nutzen das auch wieder von allen anderen Blättern angewählt werden kann.
Es werden auch nicht alle vorhandenen Tab's angewählt.
Danke nochmal für deine Hilfe.

Gruß Helles68

Re: Tabelleblatt mit Makro aktivieren

Verfasst: So 30. Sep 2018, 20:47
von mikele
Hallo,
Dann wird für jeden Aufruf ein Makro benötigt.
Nein! Es wird überhaupt kein Makro benötigt.

Re: Tabelleblatt mit Makro aktivieren - GELÖST

Verfasst: Sa 6. Okt 2018, 20:19
von Helles58
Hallo Mikele

ich hab wohl die Begriffe verwechselt.
Das Problem ist jetzt aber gelöst

Mit dieser Sub funktioniert die Übergabe des Tabellennamens mittels der Zusatzinformation der Schaltfläche.

Sub aktiviereTabelle_NummerX( SF) 'mit Übergabe Variable SF=Schaltfläche

Dim myDoc As Object
Dim myView As Object
Dim mysheet As Object
DIM sheetsname As String
sheetsname = SF.Source.Model.tag

myDoc = ThisComponent
myView = myDoc.CurrentController
mySheet = myDoc.Sheets.getByName(sheetsname)
myView.setActiveSheet(mySheet)


End Sub

Danke nochmal für deine Hilfe.

Gruß
Helles58