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.
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