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

Inhaltsverzeichnis automatisch

Inhaltsverzeichnis automatisch
21.09.2020 10:18:31
Petr
Hello again,
ich bastel gerade an meinem automatisiertem Inhaltsverzeichnis, bekomme es aber leider nicht hin, dass das Makro die Sheets Hidden und VeryHidden ignoriert.
In dem Workbook anbei sieht man das alte Private Sub Makro und den neuen Versuch darüber in "Tabelle1".
https://www.herber.de/bbs/user/140348.xlsm
Ich freue mich über Hilfe und Ideen.
Grüße
Petr

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhaltsverzeichnis automatisch
21.09.2020 10:37:07
Werner
Hallo,
keine Ahnung was du hast. Die ausgeblendeten Blätter bleiben doch unberücksichtigt.
Dein Zähler intInhaltZaehler muss ins If ws.Visible .... End if.
Es macht heute keinen Sinn mehr Laufvariable as Integer zu deklarieren.
Option Explicit
Private Sub Worksheet_Activate() 'Neue Idee
Dim loInhaltZaehler As Long, ws As Worksheet
loInhaltZaehler = 8
Tabelle1.Range("A6:Z100").Clear
For Each ws In ThisWorkbook.Worksheets
If ws.Index > 1 Then
If ws.Visible = True Then
'Abfrage Name
Tabelle1.Cells(loInhaltZaehler, 2) = ws.Name
'Hyperlinks Name
Tabelle1.Cells(loInhaltZaehler, 2).Hyperlinks.Add Anchor:=Cells(loInhaltZaehler, 2), _
_
Address:="", SubAddress:="'" & ws.Name & "'!A1", TextToDisplay:=ws.Name
'Formatierung Name
With Cells(loInhaltZaehler, 2)
.Font.Color = vbBlack
.Font.Underline = xlUnderlineStyleNone
.Font.Size = 10
End With
'Abfrage Bearbeitungsstand
Tabelle1.Cells(loInhaltZaehler, 3) = ws.Range("E5")
'Formatierung Bearbeitungsstand
If Cells(loInhaltZaehler, 3) = "Offen" Then
With Cells(loInhaltZaehler, 3)
.Font.Color = vbWhite
.Font.Bold = True
.Font.Size = 9
.Interior.ThemeColor = xlThemeColorAccent6
.HorizontalAlignment = xlCenter
End With
ElseIf Cells(loInhaltZaehler, 3) = "Erledigt" Then
With Cells(loInhaltZaehler, 3)
.Font.Bold = True
.Font.Size = 9
.Interior.Color = 5296274
.HorizontalAlignment = xlCenter
End With
Else
Cells(loInhaltZaehler, 3).Clear
End If
'Formatierung Nummerierung
Cells(loInhaltZaehler, 1) = loInhaltZaehler - 7
Cells(loInhaltZaehler, 1).Font.Bold = True
loInhaltZaehler = loInhaltZaehler + 1
End If
End If
Next ws
Range("B7").Value = "Arbeitsblatt"
Range("C7").Value = "Stand"
Range("C7").HorizontalAlignment = xlCenter
Range("B7:C7").Font.Bold = True
Columns("B:C").EntireColumn.AutoFit
End Sub
Gruß Werner
Anzeige
AW: Inhaltsverzeichnis automatisch
21.09.2020 11:53:08
Petr
Na ich hatte eben genau das Problem, dass ich die Variable nicht mit ins If genommen habe. Danke für deine Hilfe Werner!
Auch nehme ich ab sofort Long als Laufvariable.
VG
Petr
Gerne und Danke für die Rückmeldung. o.w.T.
21.09.2020 12:23:46
Werner
AW: Inhaltsverzeichnis automatisch
21.09.2020 16:15:11
Herbert_Grom
Hallo Werner,
du schreibst: Es macht heute keinen Sinn mehr Laufvariable as Integer zu deklarieren.
Da hast du insofern recht, als die Prozessoren heute ein vielfaches an Rechenleistung bieten, als noch die CPU's von vor 10 oder 20 Jahren.
Grundsätzlich belegt "Long" jedoch doppelt so viel Arbeitsspeicher (4 Bytes) als "Integer". Und da im Alltag kaum jemand mehr als 32.767 Zeilen/Datensätze verarbeiten muss, plädiere ich nach wie vor für "Integer", denn ich bin dafür, jedes Quäntchen Geschwindigkeitsgewinn auszunutzen!
Servus
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige