Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zellen und Bereiche im VBA mit Namen ansprechen

Zellen und Bereiche im VBA mit Namen ansprechen
braleta
Hallo Excel-lianer,
im Forum habe ich über dieses Thema nur einen vagen Hinweis (unerledigt) bekommen, darum bitte ich hier um Hilfe.
Wie kann ich mit VBA in einem Workbook mit mehreren Worksheets bestimmte Zellen und/oder Bereiche, denen ich einen Namen gegeben habe, ansprechen?
Meine einzelnen Arbeitsblätter werden - gesteuert durch VBA - durch den Endbenutzer geändert, d.h. Zeilen kommen dazu oder fallen weg, Bereiche werden verschoben, und so weiter.
Bestimmte Zellen und/oder Breiche aber brauche ich; sie bleiben durch den Endbenutzer unberührt, verschieben sich aber durch seine Aktionen.
Damit ich diese Änderungen nicht immer mitprotokollieren muss, will ich diesen Zellen/Bereichen Namen geben, über die ich sie immer wieder aufrufen kann.
Kann ich das machen, und wenn ja, wie mache ich das?
Vielen Dank im Voraus
...bruno
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Zellen und Bereiche im VBA mit Namen ansprechen
09.04.2010 13:04:27
Daniel
Hi
ja, kannst du machen.
die Namen vergibst du über die Excelfunktion EINFÜGEN - NAMEN - DEFINIEREN
dim Makro kanns du diese Namen dann auf 2 Verschiedene Arten verwenden:
RANGE("DeinName").Value
oder
ActiveWorkbook.Names("DeinName").RefersTorRange.Value
Der Nachteil der ersten Variante ist, wenn du mit mehreren Mappen arbeitest und vollständig Referenzierst, dann musst du auch den Sheet-Namen wissen, in dem sich der Name befindet, sonst geht die Range-Funktion nicht.
Gruß, Daniel
Anzeige
AW: Zellen und Bereiche im VBA mit Namen ansprechen
09.04.2010 13:44:21
braleta
Daniel,
danke, das ist super!
So kann ich jetzt einfach Bereiche oder Zellen per vergebenen Namen ansprechen und brauche durchgeführte Änderungen nicht zu loggen!
...bruno
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellen und Bereiche im VBA mit Namen ansprechen


Schritt-für-Schritt-Anleitung

  1. Namen definieren: Öffne Excel und gehe zu EINFÜGEN > NAMEN > DEFINIEREN. Hier kannst du den gewünschten Namen für deine Zelle oder deinen Bereich eingeben.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Modul hinzufügen: Klicke im Projekt-Explorer mit der rechten Maustaste auf dein Workbook und wähle Einfügen > Modul.

  4. VBA-Code schreiben: Verwende den folgenden Code, um eine benannte Zelle anzusprechen:

    Sub Beispiel()
       Dim wert As Variant
       wert = Range("DeinName").Value 'Zelle mit Namen ansprechen
       MsgBox wert
    End Sub

    Alternativ kannst du den Namen auch so ansprechen:

    Sub BeispielMitActiveWorkbook()
       Dim wert As Variant
       wert = ActiveWorkbook.Names("DeinName").RefersToRange.Value 'Benannte Zelle ansprechen
       MsgBox wert
    End Sub
  5. Makro ausführen: Schließe den VBA-Editor und führe dein Makro über Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Fehler: "Der Name ist nicht definiert"
    Lösung: Stelle sicher, dass der Name korrekt definiert wurde und dass du den richtigen Namen im VBA-Code verwendet hast.

  • Fehler: "Typen sind inkompatibel"
    Lösung: Überprüfe, ob der Wert in der benannten Zelle tatsächlich dem Datentyp entspricht, den du in deinem VBA-Code erwartest.


Alternative Methoden

  • Excel Namensfeld verwenden: Du kannst das Namensfeld (links von der Formelleiste) nutzen, um schnell auf benannte Zellen zuzugreifen. Klicke einfach auf den Namen, um zur entsprechenden Zelle zu springen.

  • Benannte Bereiche in Formeln: Du kannst benannte Zellen auch direkt in Excel-Formeln verwenden, indem du einfach ihren Namen in die Formel eingibst, z.B. =DeinName * 2.


Praktische Beispiele

Beispiel 1: Benannte Zelle für Berechnungen verwenden

Sub Berechnung()
    Dim ergebnis As Double
    ergebnis = Range("Verkaufspreis").Value * 1.19 'Preis inkl. MwSt
    MsgBox "Der Preis inkl. MwSt beträgt: " & ergebnis
End Sub

Beispiel 2: Zellenbereich benennen

Sub BereichAnsprechen()
    Dim gesamtSumme As Double
    gesamtSumme = Application.WorksheetFunction.Sum(Range("UmsatzBereich")) 'Benannter Bereich ansprechen
    MsgBox "Die Gesamtsumme beträgt: " & gesamtSumme
End Sub

Tipps für Profis

  • Namen organisieren: Verwende prägnante und aussagekräftige Namen, um die Übersichtlichkeit zu erhöhen. Namenskonventionen wie Prefix_SheetName können hilfreich sein.

  • Namen ändern oder löschen: Du kannst Namen jederzeit über EINFÜGEN > NAMEN > VERWALTEN ändern oder löschen, um deine Arbeitsmappe sauber zu halten.

  • Mit VBA dynamisch benannte Bereiche erstellen: Du kannst auch dynamische Bereiche erstellen, die sich basierend auf Daten in deinem Workbook anpassen. Dies kann mit OFFSET und COUNTA kombiniert werden.


FAQ: Häufige Fragen

1. Wie kann ich das Excel Namensfeld anzeigen?
Das Namensfeld wird standardmäßig links von der Formelleiste angezeigt. Wenn es nicht sichtbar ist, überprüfe deine Excel-Einstellungen.

2. Wie viele Namen kann ich in Excel definieren?
Du kannst in Excel eine nahezu unbegrenzte Anzahl von Namen definieren, allerdings kann die Gesamtanzahl von Namen je nach Version und System variieren.

3. Kann ich benannte Zellen in anderen Arbeitsblättern verwenden?
Ja, du kannst benannte Zellen in anderen Arbeitsblättern verwenden, indem du den Arbeitsblattnamen vor dem Namen angibst: Sheet1!DeinName.

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