Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
764to768
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
764to768
764to768
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

link zum Tabellenblatt automatisch einfuegen

link zum Tabellenblatt automatisch einfuegen
15.05.2006 19:42:14
Marita
Hallo allerseits,
ich habe gerade ein Makro gebastelt, das mir nach einer Abfrage des gewuenschten Tabellenblattnamens ein neues Blatt mit dem eingegebenem Namen einfuegt. Auf einer Uebersichtsseite werden alle Tabellenblattnamen von oben nach unten aufgelistet, so wie die Blaetter in der Datei von links nach rechts positioniert sind.
Bis jetzt wird der Tabellenblattname in der Uebersichtsliste einfach als Wort dargestellt, sollte aber als Link zum jeweiligen Blatt zur Verfuegung stehen.
Wie mache ich das, dass der Blattname als Link in die jeweilige Zelle eingetragen wird?
Danke und Gruss, Marita

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: link zum Tabellenblatt automatisch einfuegen
15.05.2006 20:12:44
Ramses
Hallo
probier mal das Makro aus
Sub Create_Hyperlink_Table_of_Contents()
    '(C) Ramses
    'Erstellt ein Inhaltsverzeichnis auf alle Tabellen einer
    'Mappe mit Hyperlinks auf die jeweiligen Tabellen
    Dim tarWks As Worksheet
    Dim i As Integer, myRow As Integer, tmpCnt As Integer
    'Blattnamen anpassen
    Set tarWks = Worksheets("Inhalt")
    'Bestehenden Inhalt löschen
    tarWks.Columns(1).ClearContents
    tarWks.Cells(1, 1) = "Inhalt"
    'Erstellen des Inhaltsverzeichnisses
    '**************************
    'Vertikal
    For i = 2 To Worksheets.count
        tarWks.Cells(i, 1) = Worksheets(i).name
        Cells(i, 1).Hyperlinks.Add Anchor:=Cells(i, 1), Address:="", SubAddress:="'" & Worksheets(i).name & "'!A1", TextToDisplay:=Worksheets(i).name
    Next i
    'Sortiert das Inhaltsverzeichnis
    tarWks.Columns(1).Sort Key1:=tarWks.Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    '**************************
    'Horizontal
    'tmpCnt = 1
    'myRow = 1
    'For i = 1 To Worksheets.Count
    ' If i Mod 256 = 0 Then
    ' tmpCnt = 1
    ' myRow = myRow + 1
    ' End If
    ' If Worksheets(i).Name <> tarwks.Name Then
    ' tarwks.Cells(myRow, tmpCnt) = Worksheets(i).Name
    ' Cells(myRow, tmpCnt).Hyperlinks.Add Anchor:=Cells(myRow, tmpCnt), Address:="", SubAddress:="'" & Worksheets(i).Name & "'!A1", TextToDisplay:=Worksheets(i).Name
    ' tmpCnt = tmpCnt + 1
    ' End If
    'Next i
End Sub


Gruss Rainer
Anzeige
Variante ohne VBA
15.05.2006 21:19:00
{Boris}
Hi Marita,
das geht auch ohne VBA.
Definiere einen Namen (Strg+F3), Name: Alle
Bezieht sich auf:
=ARBEITSMAPPE.ZUORDNEN(1+0*JETZT())
Jetzt schreibe in deinem Übersichtsblatt in irgendeine Zelle diese Formel und kopier sie so weit runter, wie das Blatt irgendwann mal Blätter haben könnte:
=WENN(ZEILEN($1:1)&gtANZAHL2(Alle);"";HYPERLINK("#'"&INDEX(Alle;ZEILEN($1:1))&"'!A1";TEIL(INDEX(Alle;ZEILEN($1:1));FINDEN("]";INDEX(Alle;ZEILEN($1:1)))+1;31)))
Somit hast du alle Blätter verlinkt. Gelöschte / hinzugefügte Blätter werden automatisch erkannt.
Grüße Boris
Anzeige
danke
15.05.2006 22:06:47
Marita
Hallo Ramses und Boris,
danke fuer eure beiden Loesungen. Ich habe mich jetzt fuer die VBA-Variante entschieden, weil ich die ganz einfach in ein bestehendes Makro einbauen konnte!
Liebe Gruesse, Marita
AW: Variante ohne VBA
15.05.2006 22:30:58
Bertram
Hi Boris,
ich hab's zwar noch nicht getestet, aber bei dir gehe ich davon aus dass es funktioniert. Diese Version kann mir auch noch hilfreich sein.
Wie zum Teufel kommt man auf so geniale Ideen? Brilliant.
Gruß
Bertram
AW: Variante ohne VBA
15.05.2006 23:26:37
{Boris}
Hi Bertram,
das ist quasi eine Standard-Anwendung bei mir. Taucht in jeder Mappe auf, die mehrere Blätter hat und in einem separaten Blatt eine Übersicht benötigt.
Ist wirklich sehr hilfreich.
Der eigentliche Trick liegt in der Anwendung der Excel4Macrofunktion ARBEITSMAPPE.ZUORDNEN - und das "verflüchtigen" mit dem Zusatz 0*JETZT().
Der Rest in der Formel ist im Prinzip reine Indizierung sowie Stringzerlegung.
Grüße Boris
Anzeige

199 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige