Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1756to1760
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

Laufzeitfehler

Laufzeitfehler
04.05.2020 21:31:08
Hifi
Guten Tag zusammen
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

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler
04.05.2020 21:35:46
onur
Du kanst keine reservierten Wörter wie z.B. Tabelle als Variablenname verewenden!
AW: Laufzeitfehler
04.05.2020 21:41:03
Hifi
Hallo onur
Da komm ich jetzt nicht draus...
AW: Laufzeitfehler
04.05.2020 21:47:26
onur
Ich habe zu schnell geschossen - sorry.
Bist du sicher, dass der Fehler in diesem Modul ist?
Hast du mal "Debuggen" angeklickt?
AW: Laufzeitfehler
04.05.2020 21:56:12
Hifi
Sicher bin ich nicht aber beim debuggen markiert es mir immer ActiveSheet.Name = "Grundlagen", daher gehe ich davon aus, dass dies der Auslöser für den Laufzeitfehler ist...
AW: Laufzeitfehler
04.05.2020 22:06:21
onur
Weisst du eigentlich, was
ActiveSheet.Name = "Grundlagen"
macht?
Das z.Zt. aktive Blatt wird UMBENANNT auf "Grundlagen" !
Da aber schon ein Blatt mit diesem Namen existiert, kommt die Meldung.
Du wolltest wahrscheinlich das Blatt zum ActiveSheet machen - das geht aber SO:
Worksheets("Grundlagen").Select (oder .Activate).
Anzeige
AW: Laufzeitfehler
04.05.2020 22:10:10
GerdL
Moin,
ich habe auf deinen Verdacht hin versucht, das Makro anzupassen.
Public Sub Inhaltsverzeichnis()
Dim Tabelle As Worksheet, Grund As Worksheet
Dim i As Long
ActiveWorkbook.Unprotect ""
On Error Resume Next
Set Grund = Worksheets("Grundlagen")
On Error GoTo 0
If Not Grund Is Nothing Then
Tabelle.Activate
Set Grund = Nothing
Else
ActiveSheet.Name = "Grundlagen"
End If
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

Gruß Gerd
Anzeige
AW: Laufzeitfehler
04.05.2020 22:14:47
onur
Hi Gerd,
Bei
Tabelle.Activate
ist die Variable "Tabelle" zwar dimensioniert, aber noch gar nicht besetzt.
AW: Laufzeitfehler
04.05.2020 22:52:27
Hifi
Hallo zusammen
Wieder einmal konnte mir onur helfen. Vielen Dank dafür!
AW: Laufzeitfehler
04.05.2020 22:52:29
Hifi
Hallo zusammen
Wieder einmal konnte mir onur helfen. Vielen Dank dafür!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige