03.01.2018, 09:15
Guten Morgen,
ich habe hier einen total coolen Code gefunden, der ein Inhaltsverzeichnis mit Hyperlinks macht.
Leider verstehe ich den Code nicht und mein wissen reicht nicht aus um meine Anforderungen umzusetzen.
1. Aktuell erstellt dieser Code ein neues Tabellenblatt mit dem Inhaltsverzeichnis.
Ich hätte dieses Inhaltsverzeichnis gerne in einer Userform, damit ich mir die Userform öffnen kann und durch die Tabellen "springen" kann.
2. Aktuell springt man in dem Ausgewähltem Tabellenblatt über den Hyperlink immer in Zelle A1,
Da die Tabellenblätter ordentlich gefüllt sein werden, wäre es ja doof, wenn man immer wieder runter scrollen müsste.
Wenn ich ein tabellenblatt manuell öffne, sring excel ja in die zuletzt ausgewählte Zelle, ist das mit dem Hyperlink auch möglich?
3. Sortiert es einmal nach Blattnummer und einmal nach alphabet. Ich möchte ja nicht eine riesen Userform da haben, mir würde eine Sortierungsart Reichen.
Also im groben hätte ich gern ein Inhaltsverzeichnis in einer Userform mit Hyperlinks zu den Tabellenblättern, um einfacher durch viele Tabellenblätter zu navigieren.
Dieses Inhaltsverzeichnis, sollte sich beim start der Userform aktualisieren, so dass auch Änderungen (Tabellenblatt löschen, neues erstellen) möglich ist und erfasst wird.
In was lasse ich das am besten in einer Userform einfügen? ComboBox?
Ich erwarte von keinem, dass er mir den Code passend umschreibt (würde mir natürlich die arbeit erleichtern ::D ).
Mir reicht es vollkommen, wenn ich Tips bekomme, welche stellen des Codes ich mir genauer anschauen muss um den code für eine Userform anzupassen.
ich habe hier einen total coolen Code gefunden, der ein Inhaltsverzeichnis mit Hyperlinks macht.
Leider verstehe ich den Code nicht und mein wissen reicht nicht aus um meine Anforderungen umzusetzen.
1. Aktuell erstellt dieser Code ein neues Tabellenblatt mit dem Inhaltsverzeichnis.
Ich hätte dieses Inhaltsverzeichnis gerne in einer Userform, damit ich mir die Userform öffnen kann und durch die Tabellen "springen" kann.
2. Aktuell springt man in dem Ausgewähltem Tabellenblatt über den Hyperlink immer in Zelle A1,
Da die Tabellenblätter ordentlich gefüllt sein werden, wäre es ja doof, wenn man immer wieder runter scrollen müsste.
Wenn ich ein tabellenblatt manuell öffne, sring excel ja in die zuletzt ausgewählte Zelle, ist das mit dem Hyperlink auch möglich?
3. Sortiert es einmal nach Blattnummer und einmal nach alphabet. Ich möchte ja nicht eine riesen Userform da haben, mir würde eine Sortierungsart Reichen.
Also im groben hätte ich gern ein Inhaltsverzeichnis in einer Userform mit Hyperlinks zu den Tabellenblättern, um einfacher durch viele Tabellenblätter zu navigieren.
Dieses Inhaltsverzeichnis, sollte sich beim start der Userform aktualisieren, so dass auch Änderungen (Tabellenblatt löschen, neues erstellen) möglich ist und erfasst wird.
In was lasse ich das am besten in einer Userform einfügen? ComboBox?
Ich erwarte von keinem, dass er mir den Code passend umschreibt (würde mir natürlich die arbeit erleichtern ::D ).
Mir reicht es vollkommen, wenn ich Tips bekomme, welche stellen des Codes ich mir genauer anschauen muss um den code für eine Userform anzupassen.
Code:
Sub inhaltsverzeichnis_erstellen()
'Inhaltsverzeichnis aller Tabellenblätter
'im erten Tabellenblatt ab Zeile A1 einfügen
Dim Blatt As Object
Dim zeile As Double
Dim NewSheet As Worksheet
Dim i As Integer
zeile = 3
'Fehlerhandling
On Error Resume Next
'Abfrage unterdrücken
Application.DisplayAlerts = False
Application.ScreenUpdating = False
'Sheet Inhaltsverzeichnis auf jeden Fall löschen
Sheets("Inhaltsverzeichnis").Delete
'Neues Tabellenblatt mit dem Namen Inhaltsverzeichnis hinzufügen
Set NewSheet = Worksheets.Add
NewSheet.Name = "Inhaltsverzeichnis"
Sheets("Inhaltsverzeichnis").Move before:=Sheets(1) ' = Tabellenblatt als erstes
'Überschrift Einfügen und formatieren
With Sheets("Inhaltsverzeichnis").Range("A1")
.Value = "Inhaltsverzeichnis"
.Font.Name = "Arial"
.Font.Size = "18"
.Font.Bold = True
.Font.ColorIndex = 6
.Interior.ColorIndex = 5
.Interior.Pattern = xlSolid
.Interior.PatternColorIndex = xlAutomatic
.Font.Underline = xlUnderlineStyleSingle
End With
With Cells(1, 2)
.Font.Name = "Arial"
.Font.Size = "18"
.Font.Bold = True
.Font.ColorIndex = 6
.Interior.ColorIndex = 5
.Interior.Pattern = xlSolid
.Interior.PatternColorIndex = xlAutomatic
End With
With Cells(1, 3)
.Font.Name = "Arial"
.Font.Size = "18"
.Font.Bold = True
.Font.ColorIndex = 6
.Interior.ColorIndex = 5
.Interior.Pattern = xlSolid
.Interior.PatternColorIndex = xlAutomatic
End With
With Cells(2, 1)
.Value = "sortiert nach Blatt-Nr."
.Font.Name = "Arial"
.Font.Size = "16"
.Font.Bold = True
.Font.Underline = xlUnderlineStyleSingle
End With
With Cells(2, 5)
.Value = "alphabetisch sortiert"
.Font.Name = "Arial"
.Font.Size = "16"
.Font.Bold = True
.Font.Underline = xlUnderlineStyleSingle
End With
'Laufende Blattnummerierung + Blattname einfügen
For Each Blatt In Sheets
Sheets("Inhaltsverzeichnis").Cells(zeile, 1).Value = "Blatt " & zeile - 2
Sheets("Inhaltsverzeichnis").Cells(zeile, 2).Value = Blatt.Name
Sheets("Inhaltsverzeichnis").Hyperlinks.Add Anchor:=Cells(zeile, 2), Address:="", SubAddress:="'" & _
Blatt.Name & "'!A1", TextToDisplay:=Blatt.Name
zeile = zeile + 1
Next Blatt
ActiveSheet.Columns("B:B").EntireColumn.AutoFit
'Kopiere die zwei erstellten Spalten und sortiere Hyperlinks
Range("A3", Range("B65536").End(xlUp)).Select
Selection.Copy
Range("D3").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("D3", Range("E65536").End(xlUp)).Select
Selection.Sort Key1:=Range("E3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
ActiveSheet.Columns("D:E").EntireColumn.AutoFit
ActiveWindow.DisplayGridlines = False
Range("A3").Select
ActiveWindow.FreezePanes = True
Cells(1, 4).Value = "Diese Datei hat " & Worksheets.Count & " Tabellen"
'Userform ausblenden
'frmInhaltsverz.Hide
'Ursprungszustand wieder herstellen
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub