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

Abfragen, ob benannter Bereich gelöscht ist

Abfragen, ob benannter Bereich gelöscht ist
26.03.2009 17:45:59
Peter
Guten Abend
Angenommen, in Tabelle1, Zelle B2 besteht ein mit "Eingabebereich" benannter Bereich.
Im Menu EINFÜGEN - Namen definieren erscheint
"Eingabebereich" bezieht sich auf =Tabelle1!$B$2
Wenn ich nun beispielsweise die Spalte B lösche, bezieht sich dann "Eingabebereich" auf =Tabelle1!#BEZUG!
Nun möchte ich die nachfolgende Funktion erweitern, dass diese nicht nur WAHR zurückgibt, wenn der Namen nicht besteht, sondern auch, wenn der Bezug fehlt.
Wie kann ich dies einbauen?
Danke für eine Antwort.
Gruss, Peter

Public Function NameExists(TheName As String) As Boolean
'überprüft, ob der übergebene Name exisitiert
On Error Resume Next
NameExists = Len(ThisWorkbook.Names(TheName).Name)  0
End Function


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

Betreff
Datum
Anwender
Anzeige
AW: Abfragen, ob benannter Bereich gelöscht ist
26.03.2009 17:54:32
Ramses
Hallo
probier mal
Public Function NameExists(TheName As String) As Boolean
    'überprüft, ob der übergebene Name exisitiert
    Dim i As Long
    With ThisWorkbook
        For i = 1 To .Names.Count
            Debug.Print .Names(i).Name
            If InStr(1, .Names(i).Name, TheName) > 0 Then
                Debug.Print .Names(i).RefersTo
                If InStr(1, .Names(i).RefersTo, "REF") > 0 Then
                    MsgBox "Der Name: " & TheName & " hat keinen Bezug", vbCritical + vbOKOnly, "Fehler"
                End If
            Else
                NameExists = True
                Exit Function
            End If
        Next i
    End With
End Function

Gruss Rainer
Anzeige
AW: Abfragen, ob benannter Bereich gelöscht ist
26.03.2009 21:04:11
Peter
Hallo Rainer
Vielen Dank - das hat mir weitergeholfen. Da ich die zu prüfenden Namen der Funktion übergebe, spuhle ich nicht alle vorhandenen Namen durch, sondern prüfe immer nur einen Namen.
Gruss, Peter

Public Function NameExists(TheName As String) As Boolean
Dim NOREFWERT As Boolean
'überprüft, ob der übergebene Name exisitiert
'und sich gleichzeitig nicht auf einen RERWERT bezieht
On Error Resume Next
'wenn kein REFWERT enthalten, dann TRUE
NOREFWERT = InStr(1, ThisWorkbook.Names(TheName).RefersTo, "REF") = 0
'wenn Name vorhanden, dann TRUE
NameExists = Len(ThisWorkbook.Names(TheName).Name)  0
'wenn eines von beiden FALSE, dann
If NOREFWERT = False Or NameExists = False Then
'Rückgabewert FALSE
NameExists = False
Else
' 'sonst Rückgabewert TRUE
NameExists = True
End If
End Function


Anzeige
AW: Abfragen, ob benannter Bereich gelöscht ist
26.03.2009 22:09:18
Hallo
Hallo
Lass um Himmelswillen dieses blöde "On Error Resume Next" weg.
Bau deinen Code richtig auf, bzw. frag bei dem nach der in dir geschrieben hat, und setz die Logik richtig ein.
Dann ist diese Krücke nicht nötig und dein Code läuft korrekt und nicht in einen Fehler
Gruss Rainer
AW: Abfragen, ob benannter Bereich gelöscht ist
26.03.2009 22:29:12
Peter
Hallo Rainer
Da jetzt die Ref Werte abgefangen werden, sollte ich "ok error" weglassen können.
Grus Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige