Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Hyperlinks zu allen Tabellen in einer Arbeitsmape

Hyperlinks zu allen Tabellen in einer Arbeitsmape
29.09.2006 15:52:40
Nikolai
Hallo alle zusammen!!!
Ich habe folgendes Problem:
und zwar möchte ich in einer Mappe mit Hilfe von VBA einen Inhaltsverzeichnis anlegen, welches mir die Namen der einzelnen Tabellen auflistet und als Hyperlink darstellt. Da ich aber ein Anfänger bin, klapt es bei mir nicht.
Ich bitte um Hilfe!!!

Sub arbeitstsbelle_anzeigen()
Dim Tabelle As Variant
Dim irow, jrow As Integer
irow = 2
Worksheets("Inhaltsverzeichnis").Activate
ActiveSheet.Hyperlinks.Delete
For Each Tabelle In Worksheets
jrow = jrow + 1
ActiveSheet.Hyperlinks.Add Anchor:=Worksheets  ("Inhaltsverzeichnis").Cells(irow + jrow, 2), Address:= _
"", SubAddress:=Tabelle.Name
Next Tabelle
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hyperlinks zu allen Tabellen in einer Arbeitsmape
29.09.2006 17:19:11
firmus
Hi Nikolai,
hier 2 Beispiele, beide sind getestet.
Gruss,
Firmus

Sub CounterverzeichnisErstellen()
' Macro1 Macro
' Macro recorded 16.02.2004 by niefi01
Dim i, maxzeil, maxspalt As Integer
ActiveWorkbook.Sheets.Add Before:=Worksheets(1)  'create + überschriften
ActiveSheet.Name = "counter"
Range("A1").Value = "Inhaltsverzeichnis"
Range("c1").Value = "maxzeilen"
Range("d1").Value = "maxspalten"
Range("e1").Value = "Überschriftzeilen"
ActiveCell.Offset(2, 0).Select
For i = 2 To ActiveWorkbook.Sheets.Count         'name + maxzeil + maxspalt setzen
Sheets(i).Activate
Range("a1:ax1").Select
Selection.Copy
maxzeil = ActiveSheet.UsedRange.Rows.Count
maxspalt = ActiveSheet.UsedRange.Columns.Count
Sheets("counter").Select
ActiveCell.Value = i - 1
ActiveCell.Offset(0, 1).Value = Sheets(i).Name
ActiveCell.Offset(0, 2).Value = maxzeil
ActiveCell.Offset(0, 3).Value = maxspalt
ActiveCell.Offset(1, 0).Select
Debug.Print i;
Next i
For i = 2 To ActiveWorkbook.Sheets.Count         'Headerline kopieren
Sheets(i).Activate
Range("a1:ax1").Select
Selection.Copy
Sheets("counter").Select
Range("E" + Trim(Str(i + 1))).Select
ActiveSheet.Paste
Debug.Print i;
Next i
Range("B4").Activate
Do Until ActiveCell.Value = ""
ActiveSheet.Hyperlinks.Add Anchor:=ActiveCell, Address:="", SubAddress:= _
ActiveCell.Value & "!A1", TextToDisplay:=ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
End Sub


Sub InhaltsverzeichnisErstellen()
' Macro1 Macro
' Macro recorded 16.02.2004 by niefi01
Dim i As Integer
ActiveWorkbook.Sheets.Add Before:=Worksheets(1)
ActiveSheet.Name = "Inhalt"
Range("A1").Value = "Inhaltsverzeichnis"
ActiveCell.Offset(2, 0).Select
For i = 2 To ActiveWorkbook.Sheets.Count
ActiveCell.Value = i - 1
ActiveCell.Offset(0, 1).Value = Sheets(i).Name
ActiveCell.Offset(1, 0).Select
Next i
Range("B4").Activate
Do Until ActiveCell.Value = ""
ActiveSheet.Hyperlinks.Add Anchor:=ActiveCell, Address:="", SubAddress:= _
ActiveCell.Value & "!A1", TextToDisplay:=ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
End Sub

Anzeige
AW: Hyperlinks zu allen Tabellen in einer Arbeitsmape
30.09.2006 11:37:21
Nikolai
Echt SUPER!!!
Danke dir firmus das werde ich am Montag auf der Arbeit ausprobieren.
Danke! Danke! Danke!
Alternative ohne VBA
29.09.2006 21:51:31
{Boris}
Hi Nikolai,
ich selbst mach das immer ohne VBA.
Definiere den Namen x (Strg+F3) mit Bezug auf:
=ARBEITSMAPPE.ZUORDNEN(1+0*JETZT())
Schreibe anschließend in irgendeine Zelle Deines Übersichtsblattes diese Formel und kopier sie so weit runter wie du meinst, dass Deine Mappe irgendwann mal Blätter haben könnte:
=WENN(ZEILE(A1)&gtANZAHL2(x);"";HYPERLINK("#'"&INDEX(x;ZEILE(A1))&"'!A1";TEIL(INDEX(x;ZEILE(A1));FINDEN("]";INDEX(x;ZEILE(A1)))+1;31)))
Vorteil: Du kannst Blätter hinzufügen und löschen - die Links passen sich immer an.
Grüße Boris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Hyperlinks zu allen Tabellen in einer Arbeitsmappe erstellen


Schritt-für-Schritt-Anleitung

Um ein Excel Inhaltsverzeichnis zu erstellen, das alle Tabellenblätter in einer Arbeitsmappe verlinkt, kannst du die folgende VBA-Makro verwenden:

Sub InhaltsverzeichnisErstellen()
    Dim i As Integer
    ActiveWorkbook.Sheets.Add Before:=Worksheets(1)
    ActiveSheet.Name = "Inhaltsverzeichnis"
    Range("A1").Value = "Inhaltsverzeichnis"
    ActiveCell.Offset(2, 0).Select
    For i = 2 To ActiveWorkbook.Sheets.Count
        ActiveCell.Value = i - 1
        ActiveCell.Offset(0, 1).Value = Sheets(i).Name
        ActiveCell.Offset(1, 0).Select
    Next i
    Range("B4").Activate
    Do Until ActiveCell.Value = ""
        ActiveSheet.Hyperlinks.Add Anchor:=ActiveCell, Address:="", SubAddress:= _
        ActiveCell.Value & "!A1", TextToDisplay:=ActiveCell.Value
        ActiveCell.Offset(1, 0).Select
    Loop
End Sub

Dieses Makro erstellt ein Inhaltsverzeichnis, das alle Tabellenblätter auflistet und Hyperlinks zu den entsprechenden Blättern hinzufügt. Achte darauf, dass du das Makro in einer Excel-Version verwendest, die die VBA-Funktionalität unterstützt.


Häufige Fehler und Lösungen

  1. Fehler: "Laufzeitfehler 9: Index außerhalb des gültigen Bereichs"

    • Lösung: Überprüfe, ob das Arbeitsblatt "Inhaltsverzeichnis" bereits existiert. Wenn ja, benenne es um oder lösche es, bevor du das Makro ausführst.
  2. Fehler: Hyperlinks werden nicht erstellt

    • Lösung: Stelle sicher, dass der Code in einem Modul eingefügt ist und dass du die richtige Syntax verwendest. Achte darauf, dass die Tabelle, auf die verwiesen wird, existiert.

Alternative Methoden

Wenn du Excel inhaltsverzeichnis ohne VBA erstellen möchtest, kannst du die folgende Formel verwenden:

  1. Definiere einen Namen x (Strg+F3) mit Bezug auf:
    =ARBEITSMAPPE.ZUORDNEN(1+0*JETZT())
  2. Schreibe in eine Zelle deines Übersichtsblattes diese Formel und kopiere sie nach unten:
    =WENN(ZEILE(A1)>ANZAHL2(x);"";HYPERLINK("#'"&INDEX(x;ZEILE(A1))&"'!A1";TEIL(INDEX(x;ZEILE(A1));FINDEN("]";INDEX(x;ZEILE(A1)))+1;31)))

Diese Methode ermöglicht es dir, Excel Tabs zu verlinken, ohne VBA zu verwenden. Die Links passen sich automatisch an, wenn du Blätter hinzufügst oder löscht.


Praktische Beispiele

Hier sind einige Beispiele für die Verwendung von Hyperlinks in Excel:

  • Einfaches Inhaltsverzeichnis erstellen:

    • Verwende das oben genannte VBA-Makro, um ein einfaches Inhaltsverzeichnis zu erstellen, das alle Blätter auflistet.
  • Counter für Blätter erstellen:

    • Mit dem folgenden Makro kannst du die Anzahl der Zeilen und Spalten jedes Blattes auflisten:
    Sub CounterverzeichnisErstellen()
        Dim i, maxzeil, maxspalt As Integer
        ActiveWorkbook.Sheets.Add Before:=Worksheets(1)
        ActiveSheet.Name = "counter"
        Range("A1").Value = "Inhaltsverzeichnis"
        ActiveCell.Offset(2, 0).Select
        For i = 2 To ActiveWorkbook.Sheets.Count
            Sheets(i).Activate
            maxzeil = ActiveSheet.UsedRange.Rows.Count
            maxspalt = ActiveSheet.UsedRange.Columns.Count
            Sheets("counter").Select
            ActiveCell.Value = i - 1
            ActiveCell.Offset(0, 1).Value = Sheets(i).Name
            ActiveCell.Offset(0, 2).Value = maxzeil
            ActiveCell.Offset(0, 3).Value = maxspalt
            ActiveCell.Offset(1, 0).Select
        Next i
    End Sub

Tipps für Profis

  • Verwende activesheet.hyperlinks, um Hyperlinks programmgesteuert hinzuzufügen.
  • Experimentiere mit ActiveCell.Offset für präzise Platzierung der Hyperlinks in deinem Inhaltsverzeichnis.
  • Du kannst auch texttodisplay in VBA verwenden, um den angezeigten Text der Links anzupassen.

FAQ: Häufige Fragen

1. Wie erstelle ich ein Inhaltsverzeichnis für alle Tabellenblätter in Excel? Du kannst ein VBA-Makro verwenden, um alle Tabellenblätter aufzulisten und Hyperlinks zu erstellen. Alternativ kannst du eine Formel verwenden, um ein Inhaltsverzeichnis ohne VBA zu erstellen.

2. Kann ich Hyperlinks zu bestimmten Zellen auf einem Tabellenblatt erstellen? Ja, du kannst den SubAddress-Parameter in der Hyperlinks.Add-Methode anpassen, um auf eine bestimmte Zelle zu verlinken, z.B. ActiveCell.Value & "!B2".

3. Welche Excel-Version benötige ich für die Verwendung von VBA? Die meisten modernen Excel-Versionen (Excel 2007 und höher) unterstützen VBA. Achte darauf, dass die Makros in den Excel-Optionen aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige