Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Abfrage, ob benannter Bereich existiert

Forumthread: Abfrage, ob benannter Bereich existiert

Abfrage, ob benannter Bereich existiert
11.04.2006 08:35:04
specke
Hallo Experten,
ich möchte abfragen, ob in einem Blatt 1 ein benannter Bereich mit dem Namen, der auf Blatt 2 in Spalte B steht, existiert und dann eine Dropdown-Liste mit dem Inhalt dieses benannten Bereiches erstellen. Wenn es keinen solchen Bereich gibt, soll die Dropdown-Liste aus dem benannten Bereich "sonst" erstellt werden.
Dazu habe ich mir folgendes gedacht:

Sub setGenehmiger(Zeile)
Dim nam As Name
For Each nam In Worksheets("Blatt1").Names
If nam = "_" & Cells(Zeile, 2) Then
Cells(Zeile, 10).Validation.Modify Type:=xlValidateList, Operator:=xlBetween, Formula1:="=_" & Cells(Zeile, 2)
Else
Cells(Zeile, 10).Validation.Modify Type:=xlValidateList, Operator:=xlBetween, Formula1:="=sonst"
End If
Next
End Sub

Obwohl es in Blatt 1 mehrere benannte Bereiche gibt, durchläuft er die Schleife nicht. Wo liegt der Fehler?
Noch lieber wäre mir, wenn ich abfragen könnte, ob ein benannter Bereich leer ist.
Gruß specke
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Abfrage, ob benannter Bereich existiert
11.04.2006 09:13:55
u_
Hallo,
du verlässt die Schleife nicht, nachdem der Name gefunden wurde.
Versuch das (ungetestet)

Sub setGenehmiger(Zeile)
If NameExists(Worksheets("Blatt1"), "_" & Cells(Zeile, 2)) Then
Cells(Zeile, 10).Validation.Modify Type:=xlValidateList, Operator:=xlBetween, Formula1:="=_" & Cells(Zeile, 2)
Else
Cells(Zeile, 10).Validation.Modify Type:=xlValidateList, Operator:=xlBetween, Formula1:="=sonst"
End If
End Sub


Function NameExists(wks As Worksheet, strName As String) As Boolean
Dim Nam As Name
For Each Nam In wks.Names
If Nam = strName Then
NameExists = True
Exit For
End If
Next
End Function

Gruß
Geist ist geil!
Anzeige
AW: Abfrage, ob benannter Bereich existiert
11.04.2006 09:14:29
IngGi
Hallo Specke,
benannte Bereiche sind keine Objekte des Arbeitsblattes, sondern Objekte der Arbeitsmappe. Daher:
For Each nam In ThisWorkbook.Names
Gruß Ingolf
AW: Abfrage, ob benannter Bereich existiert
11.04.2006 09:32:54
Luschi
Hallo specke,
wenn man den Namen ganz normal definiert, dann gehört dem Workbook-Objekt der Name und nicht dem Worksheet-Objekt.
Nur wenn man bei der Namensvergabe den Tabellennamen voranstellt, dann besitzt auch die Tabelle eine Namensliste.
Name: abc         - Name wird im Workbook-Objekt geführt.
Name: Blatt1!abc  - Name wird im Workbook-Objekt und im entsprechenden Worksheet-Objekt geführt.
Also muß die Prozedur jetzt so aussehen:
Sub setGenehmiger(Zeile)
Dim nam As Name, ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Blatt1")
For Each nam In ThisWorkbook.Names
If InStr(1, nam.RefersTo, ws.Name, vbTextCompare) > 0 Then
'Name zeigt auf einen Bereich in Tabelle "Blatt1"
If nam = "_" & ws.Cells(Zeile, 2) Then
ws.Cells(Zeile, 10).Validation.Modify Type:=xlValidateList, Operator:=xlBetween, Formula1:="=_" & ws.Cells(Zeile, 2)
Else
ws.Cells(Zeile, 10).Validation.Modify Type:=xlValidateList, Operator:=xlBetween, Formula1:="=sonst"
End If
Next nam
Set nam = Nothing
Set ws = Nothing
End Sub
Gruß von Luschi
aus klein-Paris
PS: bei Verwendung von Cells und Range immer die Tabellen-Referenz davorsetzen, um sicher zu gehen, daß auf die richtige Tabelle zugegriffen wird.
Anzeige
Danke!
11.04.2006 09:46:23
specke
Hallo,
Danke für eure Hilfe. Mit ThisWorkbook.Names funktioniert es!
Gruß specke
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige