Seite 1 von 1

Hyperlinks als Sprungziele in großen Mappen

Verfasst: Di, 27.10.2009 21:20
von taraxacum
Hallo *,

ich hatte vor einigen Jahren in Excel Arbeitsmappen gemacht, bei denen in der ersten Tabelle eine Art Inhaltsverzeichnis ist und dahinter bis zu 200 einzelne Tabellen stehen, die mit Nxxx im Namen durchnummeriert sind.
Die Mappen werden über Makros erzeugt, die ich neu machen muss, aber das hat noch etwas Zeit.

In der Inhaltstabelle wird auf die einzelnen Tabellen mit einem Hyperlink verwiesen - und in den Tabellen selbst ist in der Zelle A1 jeweils der Link zum Rücksprung.

Das Problem:
Wenn ich mit OOo die XLS-Mappe öffne funktionieren die Links nicht mehr, weil sie in die Notation mit dem file:// Operator umgewandelt werden, was nicht funktioniert, da die Datei bereits geöffnet ist.
Wenn man die Datei als XLS speichert, ist die Datei auch für Excel unbrauchbar.

Hat jemand eine Idee, wie man da vorgehen kann?
Gibt es eine Möglichkeit, über eine 'Suchen ... Ersetzen'-Funktion oder ein Makro die Links - oder besser den fehlerhaften Teil in den Links - zu ersetzen und somit wenigstens ein funktionierendes Calc-Dokument zu erzeugen?

Re: Hyperlinks als Sprungziele in großen Mappen

Verfasst: Mi, 28.10.2009 09:03
von Karolus
Hallo
Kannst du mal eine reduziertes Dokument (ohne Daten) mit Übersichtsblatt und ein bis zwei weiteren Blättern hier anhängen?
Gruß Karo

Re: Hyperlinks als Sprungziele in großen Mappen

Verfasst: Mi, 28.10.2009 09:52
von komma4
nummerierte Tabellenblätter erstellen
Wenn Du Dir nicht eine solche Calc-Datei als Vorlage einmal erstellen und dann immer wieder nutzen möchtest ... folgender Weg, um eine Reihe von Tabellenblättern zu erstellen:
klick auf die Registerlasche des letzten Blattes ("Tabelle3")
rechter Mausklick>Tabelle einfügen...>Position=nach aktueller Tabelle>Tabelle>Neu erstellen>Anzahl=99
OK-Schaltfläche
Es werden die Tabellenblätter namens "Tabelle4" bis "Tabelle102" hinten an gestellt.
Möchtest Du das mit einem Makro erledigen? Mit einer anderen Namenskonvention?

Code: Alles auswählen

oSheets = ThisComponent.Sheets()
For i = 4 to 99
	sName = "N" & FORMAT( i, "0000" )
	oSheets.insertNewByName( sName, oSheets.Count() ) 
Next i
Hyperlinks zu allen Blättern
Hierzu basteln wir uns erst eine Funktion, welche uns alle Tabellennamen zurück liefert.

Code: Alles auswählen

Function calc_Blattnamen
calc_Blattnamen = ThisComponent.Sheets().getElementNames()
End Function
Als Matrixformel (mit STRG+Umschalt+Enter) auf dem Übersichtsblatt eingegeben, liefert es in horizontaler Ausrichtung alle Namen zurück.
Um die Namen senkrecht untereinander zu bekommen: =Mtrans( calc_Blattnamen() ) , ebenfalls wieder mit STRG+Umschalt+Enter eingeben.
Mit diesen generierten Blattnamen kannst Du Dir Hyperlinks zusammenstellen (Formel zum "Runterziehen"):
=HYPERLINK( VERKETTEN( "#"; B1 ) ; VERKETTEN( "Hyperlink zu Tabelle namens " ; B1 )


Hilft Dir das weiter?

Ich habe nicht verstanden: Du speicherst als XLS und hast dann in Excel damit Probleme?

Re: Hyperlinks als Sprungziele in großen Mappen

Verfasst: Mi, 28.10.2009 21:44
von bauer-ewert
@komma4
Das Thema interessiert mich auch. Ich habe aber wenig Erfahrung mit Makros. Deshalb die "doofe" Frage: was muss ich mit der "Überschrift" Code: Alles auswählen" tun, bzw. wie bekomme ich dein Makro über die Zwischenablage in meine Makrosammlung?

Bernhard

Re: Hyperlinks als Sprungziele in großen Mappen

Verfasst: Mi, 28.10.2009 22:32
von komma4
bauer-ewert hat geschrieben:wie bekomme ich dein Makro über die Zwischenablage in meine Makrosammlung?
Hilft Dir der Eintrag im Wiki: Makros installieren

Hinweis: Solche Funktionen (mit Rückgabe von Werten) für Calc müssen in einer STANDARD-Bibliothek (der Installation oder des Dokuments) gespeichert sein.