Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1528to1532
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
Inhaltsverzeichnis

Makro aktualisieren

Makro aktualisieren
01.12.2016 10:13:53
JakobNiedermaier
Hallo ihr Lieben,
Ich weiß gerade nicht weiter, wahrscheinlich ist die Lösung jedoch sehr simpel.
Ich habe folgenden Code und hätte gerne, dass sich das Verzeichnis, welches damit erstellt wird, automatisch aktualisiert wenn ein neues Tabellenblatt hinzukommt.
Sub Inhaltsverzeichnis()
Dim intTab As Integer
Dim tbl As Worksheet
Dim intZeile As Integer
Set tbl = Worksheets.Add(before:=Worksheets(1))
intZeile = 2
' eingefügtes Blatt "Inhaltsverzeichnis" nennen
Worksheets(1).Name = "Inhaltsverzeichnis"
ActiveSheet.Name = Worksheets(1).Name
Cells(1, 1).Value = "Enthaltene Blätter"
For intTab = 2 To ActiveWorkbook.Worksheets.Count
tbl.Cells(intZeile, 1).Value = Worksheets(intTab).Name
tbl.Cells(intZeile, 1).Hyperlinks.Add _
Anchor:=tbl.Cells(intZeile, 1), Address:="", SubAddress:= _
"'" & Worksheets(intTab).Name & "'!A1", _
ScreenTip:="Klicken Sie um zur Tabelle zu gelangen", _
TextToDisplay:=Worksheets(intTab).Name
intZeile = intZeile + 1
Next intTab
' Spaltenbreite fixieren
Worksheets(1).Cells.EntireColumn.AutoFit
End Sub

Wäre super wenn jemand helfen könnte.
Danke und Liebe Grüße
Jakob

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

Betreff
Datum
Anwender
Anzeige
AW: Makro aktualisieren
01.12.2016 11:37:18
Mathias
Hallo! Wenn du den Code bei DieseArbeitesmappe reinkopiert, sollte dies den Wunsch erfüllen. Ich lösche dabei erst die Eintragungen in INhaltsverzeichnis und schreibe sie dann neu. Hat den Vorteil, dass man auch Änderungen der Namen von anderen Tabellenblättern abfängt. VG Matthias
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Dim intTab As Long
Dim intZeile As Long
intZeile = 2
Worksheets("Inhaltsverzeichnis").Cells.Clear
Worksheets("Inhaltsverzeichnis").Cells(1, 1).Value = "Enthaltene Blätter"
For intTab = 2 To ActiveWorkbook.Worksheets.Count
Worksheets("Inhaltsverzeichnis").Cells(intZeile, 1).Value = Worksheets(intTab).Name
Worksheets("Inhaltsverzeichnis").Cells(intZeile, 1).Hyperlinks.Add _
Anchor:=Worksheets("Inhaltsverzeichnis").Cells(intZeile, 1), Address:="", SubAddress:= _
"'" & Worksheets(intTab).Name & "'!A1", _
ScreenTip:="Klicken Sie um zur Tabelle zu gelangen", _
TextToDisplay:=Worksheets(intTab).Name
intZeile = intZeile + 1
Next intTab
' Spaltenbreite fixieren
Worksheets("Inhaltsverzeichnis").Cells.EntireColumn.AutoFit
End Sub

Anzeige
AW: Makro aktualisieren
01.12.2016 12:02:24
JakobNiedermaier
Hallo Matthias,
Danke erstmal für die Hilfe.
Stehe leider am Schlauch... habs eingefügt und es tut sich nichts...
Auf eine Schaltfläche krieg ich es zu Testzwecken auch nicht.
Sollte sich das Verzeichnis nun automatisch aktualisieren/löschen und neu schreiben? Bei welcher Aktion geschieht das?
Danke dir vielmals
Liebe Grüße
Jakob
AW: Makro aktualisieren
01.12.2016 15:50:06
ExtremeExceling
Hallo Jakob,
du must den VBA-Code in die Arbeitsmappe einfügen,
Dieses gibt an das es sich um ein WOrkbook handelt
Workbook_NewSheet(ByVal Sh As Object)
Das was nach einem Unterstrich in einer Sub deklaration kommt definiert ein, "Event" bzw. "Ereignis" in VBA, das Ereibnis ist in dem Fall "NewSheet", also wenn ein neues Tabellenblatt hinzugefügt wird.
Das heißt das Makro startet von selbst, d musst du nix dran machen.
Wichtig ist das der code im VBA editor in das, Workbook bzw "DieseArbeitsmappen" bereich kommt.
bzw. in "Diese Arbeitmappe" eingefügt wird, da es sich um ein event handelt das für die Arbeitsmappe(Datei gilt).
Das folgende Bild veranschaulicht das.
Userbild
vielleicht hilft das.
Gruß
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige