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

Unbenutzte Namensbereiche finden

Unbenutzte Namensbereiche finden
27.02.2024 08:14:48
Ben
Hallo Zusammen,

durch Zusammenführen von Tabellenblättern habe ich Chaos in meinen Namensbereichen bekommen.
Ich habe leider viele unbenutzte Namensbereiche.
Diese möchte ich herausfinden. Geht das überhaupt?
Ich habe folgendes probiert:

Sub FindUnusedNamedRanges()
Dim ws As Worksheet
Dim nm As name
Dim cellAddress As String
Dim isUsed As Boolean

' Arbeitsblatt festlegen
Set ws = ThisWorkbook.Sheets("Welle 3 EU")

' Durch alle benannten Bereiche iterieren
For Each nm In ThisWorkbook.Names
' Standardmäßig davon ausgehen, dass der Bereich nicht verwendet wird
isUsed = False

' Durch jede Zelladresse im benannten Bereich iterieren
For Each cellAddress In Split(nm.RefersTo, ",")
' Überprüfen, ob die Zelladresse Teil des UsedRange des Arbeitsblatts ist
If Not Intersect(ws.Range(cellAddress), ws.UsedRange) Is Nothing Then
isUsed = True
Exit For
End If
Next cellAddress

' Wenn der benannte Bereich nicht verwendet wird, Meldung ausgeben
If Not isUsed Then
MsgBox "Unbenutzter Namensbereich gefunden: " & nm.name

End If
Next nm
End Sub


Findet aber leider nichts, obwohl die Namensbereiche definitv nicht benutzt werden.

Vielen Dank im Voraus!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unbenutzte Namensbereiche finden
27.02.2024 08:28:15
Daniel
Hi

Nach diesem Schema:

For each nm in ThisWorkbook.Names

For each ws in This workbook.Worksheets
Set rng = ws.cells.Find(what:=nm.name, lookin:=xlformulas, lookat:=xlpart)
If rng is nothing then nm.delete
Next
Next


Also schleife über Namen und Tabellenblätter, mit .FIND kannst du feststellen, ob der Name in den Formeln auf dem jeweiligen Tabellenblatt vorkommt.

Beachte aber, das Namen auch in Bedingten Formatierungen, Gültigkeitsprüfungen oder auch anderen Namen verwendet werden können, hiermit hättest du nur die Zellformeln überprüft.

Gruß Daniel
Anzeige
AW: Unbenutzte Namensbereiche finden
27.02.2024 21:08:51
Piet
Hallo

liste dir einfach alle Namen ein eine Tabelle auf, mit Referenz Bezug. Dann kannst du selbst entscheiden welche gelöscht werden sollen.
Zum Löschen in Spalte D ein "#" Zeichen setzen. Dieser Name wird dann gelöscht!

mfg Piet

Sub Namen_auflisten()

Dim j As Integer, Zahl As Integer
Range("A2:D500").ClearContents
Zahl = ThisWorkbook.Names.Count
For j = 1 To Zahl
Cells(j + 1, 1) = k
Cells(j + 1, 2) = ThisWorkbook.Names(j).Name
Cells(j + 1, 3) = "' " & ThisWorkbook.Names(j).RefersTo
Next j
End Sub

'löscht Wb-Namen wenn in Spalte D ein "#" steht
Sub Namen_löschen()
Dim j As Integer, Zahl As Integer, Txt As String
Zahl = ThisWorkbook.Names.Count
For j = Zahl To 2 Step -1
Txt = Cells(j + 1, 2)
If Cells(j + 1, 4) = "#" Then _
ThisWorkbook.Names(Txt).Delete
Next j
Call Namen_auflisten
End Sub
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige