Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hat Zelle einen Namen

Forumthread: Hat Zelle einen Namen

Hat Zelle einen Namen
06.07.2007 07:51:59
eres
Guten Morgen Excel-Freunde,
kann ich in VBA prüfen, ob eine ausgewählte Zelle einen Namen hat ?
also so etwas wie "if hasname(cells1,1)"
Vielen Dank im voraus für jede Hilfe.
Gruss ans SuperForum
erwin

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Hat Zelle einen Namen
06.07.2007 07:59:00
Lukas
Hallo erwin
Vielleicht sowas:
[code]

Function HasName(Verweis As String) As Boolean
On Error GoTo ende
Dim aName As String
aName = ActiveWorkbook.Names(RefersTo:=Verweis).Name
HasName = True
On Error GoTo 0
Exit Function
ende:
HasName = False
On Error GoTo 0
End Function



Sub asdf()
Dim x As Boolean
x = HasName("=Tabelle1!$A$2")
End Sub

[/code]
Freundliche Grüsse
Lukas

Anzeige
AW: Hat Zelle einen Namen
06.07.2007 08:02:13
eres
Vielen Dank Lukas,
natürlich so geht's.
Die UDF's vergesse ich immer wieder.
Gruss aus Köln
erwin

AW: Hat Zelle einen Namen
06.07.2007 08:04:08
Hajo_Zi
Hallo Erwin,
die Zelle könnte auch zu einem Bereich gehören der einen Nmaen hat.

Sub Name_ermitteln()
Dim nm As Name
For Each nm In ActiveWorkbook.Names
If Not Application.Intersect(ActiveCell, Range(nm.RefersToRange.Address)) Is Nothing Then
MsgBox nm.Name
Exit Sub
End If
Next
MsgBox "Aktive Zelle gehört zu keinem mit Namen versehenen Bereich"
End Sub


Von Martin Beck

Anzeige
Vielen Dank Hajo (o.T.), Prima Lösung
06.07.2007 08:06:14
eres
.
;
Anzeige

Infobox / Tutorial

Zellen in Excel auf Namen prüfen


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA zu prüfen, ob eine ausgewählte Zelle einen Namen hat, kannst du folgende Schritte durchführen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Einfügen eines Moduls:

    • Rechtsklicke im Projektfenster auf dein Arbeitsbuch und wähle Einfügen > Modul.
  3. Füge den folgenden Code ein:

    Function HasName(Verweis As String) As Boolean
       On Error GoTo ende
       Dim aName As String
       aName = ActiveWorkbook.Names(RefersTo:=Verweis).Name
       HasName = True
       On Error GoTo 0
       Exit Function
    ende:
       HasName = False
       On Error GoTo 0
    End Function
  4. Verwende die Funktion:

    • Du kannst die Funktion wie folgt in einem weiteren Sub verwenden:
      Sub CheckCellName()
      Dim x As Boolean
      x = HasName("=Tabelle1!$A$2")
      MsgBox x
      End Sub
  5. Führe das Makro aus:

    • Drücke F5, um das Makro auszuführen und das Ergebnis in einer MessageBox zu sehen.

Häufige Fehler und Lösungen

  • Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt"
    Lösung: Stelle sicher, dass der angegebene Zellverweis korrekt ist.

  • Fehler: "Der Name ist nicht definiert"
    Lösung: Überprüfe, ob der Name in der Arbeitsmappe tatsächlich existiert.

  • Fehler: "Typenvergleich nicht möglich"
    Lösung: Achte darauf, dass du den richtigen Datentyp verwendest, insbesondere bei der Übergabe von Zellreferenzen.


Alternative Methoden

Eine andere Methode, um zu prüfen, ob eine Zelle Teil eines benannten Bereichs ist, ist wie folgt:

Sub Name_ermitteln()
    Dim nm As Name
    For Each nm In ActiveWorkbook.Names
        If Not Application.Intersect(ActiveCell, Range(nm.RefersToRange.Address)) Is Nothing Then
            MsgBox nm.Name
            Exit Sub
        End If
    Next
    MsgBox "Aktive Zelle gehört zu keinem mit Namen versehenen Bereich"
End Sub

Diese Methode sucht nach Namen, die auf die aktive Zelle verweisen.


Praktische Beispiele

  1. Prüfung einer Zelle auf einen Namen:

    • Angenommen, du möchtest prüfen, ob die Zelle A2 in "Tabelle1" einen Namen hat. Verwende:
      Dim result As Boolean
      result = HasName("=Tabelle1!$A$2")
  2. Überprüfung aller Zellen in einem Bereich:

    • Du kannst auch eine Schleife verwenden, um mehrere Zellen zu überprüfen und die Namen anzuzeigen.

Tipps für Profis

  • Namen verwalten: Nutze den Namensmanager in Excel (Formeln > Namensmanager), um eine Übersicht über alle benannten Bereiche zu erhalten.
  • UDF optimieren: Erstelle benutzerdefinierte Funktionen (UDFs), die wiederverwendbar sind, um die Effizienz deiner VBA-Projekte zu steigern.
  • Fehlerbehandlung: Implementiere eine robuste Fehlerbehandlung in deinen Funktionen, um Abstürze zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich alle benannten Bereiche in einer Arbeitsmappe auflisten?
Du kannst durch alle Names in der Arbeitsmappe iterieren und sie in einer Liste anzeigen.

2. Funktioniert das auch in Excel 365?
Ja, die beschriebenen Methoden sind auch in Excel 365 anwendbar. Achte darauf, dass du die richtige VBA-Version nutzt.

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