Laufzeitfehler
04.05.2020 21:31:08
Hifi
Ich stehe wieder mal vor einem Problem...
Ich brauche ein Inhaltsverzeichnis von (fast) allen Tabellenblättern in der Arbeitsmappe, welche in einer ListBox angezeigt werden sollen. Dazu erstellt das Sub auf dem Hilfsblatt "Grundlagen" eine Tabelle (S1:S100) (S1=Überschrift), welche dann von der ListBox "abgeholt" werden.
Das klappt soweit auch alles gut. Nur wenn die ListBox wieder aufgerufen wird, obwohl sich am Inhaltsverzeichnis nichts geändert hat, kommt die Meldung "Laufzeitfehler '1004': Dieser Name wird bereits verwendet. Verwenden Sie einen anderen".
Dabei handelt es sich um den Namen des Tabellenblatts "Grundlagen". Dieser ist logischerweise schon vergeben, wenn etwas am Inhalt ändert macht das auch nichts.
Hat jemand eine Idee? Ich verzweifle langsam daran...
Public Sub Inhaltsverzeichnis()
Dim Tabelle As Worksheet
Dim i As Integer
ActiveWorkbook.Unprotect ""
ActiveSheet.Name = "Grundlagen"
ActiveSheet.Unprotect ""
Range("s1:s100").ClearContents 'ohne select
Cells(1, 19).Value = "Enthaltene Arbeitsblätter"
i = 2
For Each Tabelle In ActiveWorkbook.Worksheets
If Tabelle.Name "Inhaltsverzeichnis" _
And Tabelle.Name "Prozessliste" _
And Tabelle.Name "Vorlage" _
And Tabelle.Name "Grundlagen" _
And Tabelle.Name "Vorlage (Original)" Then
Cells(i, 19).Value = Tabelle.Name
Tabelle.Hyperlinks.Add Anchor:=Cells(i, 19), _
Address:="", SubAddress:="'" & Tabelle.Name & "'" & _
"!A1", ScreenTip:="zum Tabellenblatt", _
TextToDisplay:=Tabelle.Name
i = i + 1
End If
Next Tabelle
ActiveSheet.Protect ""
ActiveWorkbook.Protect ""
End Sub